Use pipe as extension URI separator (#2737)

It turns out period can be used in the URI, such as in
"urn:ietf:params:xml:ns:fee-0.12". I don't think pipe is used, at least
not according to EPP URI namespace naming convention.

Ideally we'd use serialization, but using the default serialization runs
the risk of it being platform/JDK dependent, so a new deployment might
not be able to deserialize existing cookies. A custom serializer that
guarantees stability would have been needed.
This commit is contained in:
Lai Jiang
2025-04-02 13:21:13 +00:00
committed by GitHub
parent a64dc21f96
commit c5132c04be
3 changed files with 13 additions and 8 deletions
@@ -47,7 +47,7 @@ public class CookieSessionMetadataTest {
"THIS_COOKIE=foo; SESSION_INFO="
+ encode(
"CookieSessionMetadata{clientId=test_registrar, failedLoginAttempts=5, "
+ " serviceExtensionUris=A.B.C}")
+ " serviceExtensionUris=A|B|C}")
+ "; THAT_COOKIE=bar");
cookieSessionMetadata = new CookieSessionMetadata(request);
assertThat(cookieSessionMetadata.getRegistrarId()).isEqualTo("test_registrar");
@@ -62,7 +62,7 @@ public class CookieSessionMetadataTest {
"SESSION_INFO="
+ encode(
"CookieSessionMetadata{clientId=null, failedLoginAttempts=5, "
+ " serviceExtensionUris=A.B.C}"));
+ " serviceExtensionUris=A|B|C}"));
cookieSessionMetadata = new CookieSessionMetadata(request);
assertThat(cookieSessionMetadata.getRegistrarId()).isNull();
assertThat(cookieSessionMetadata.getFailedLoginAttempts()).isEqualTo(5);
@@ -151,10 +151,11 @@ public class CookieSessionMetadataTest {
"CookieSessionMetadata{clientId=test_registrar, failedLoginAttempts=5, "
+ " serviceExtensionUris=Foo}"));
cookieSessionMetadata = new CookieSessionMetadata(request);
cookieSessionMetadata.setServiceExtensionUris(ImmutableSet.of("Bar", "Baz"));
cookieSessionMetadata.setServiceExtensionUris(ImmutableSet.of("Bar", "Baz", "foo:bar:baz-1.3"));
assertThat(cookieSessionMetadata.getRegistrarId()).isEqualTo("test_registrar");
assertThat(cookieSessionMetadata.getFailedLoginAttempts()).isEqualTo(5);
assertThat(cookieSessionMetadata.getServiceExtensionUris()).containsExactly("Bar", "Baz");
assertThat(cookieSessionMetadata.getServiceExtensionUris())
.containsExactly("Bar", "Baz", "foo:bar:baz-1.3");
}
@Test
@@ -206,6 +207,6 @@ public class CookieSessionMetadataTest {
assertThat(value)
.isEqualTo(
"CookieSessionMetadata{clientId=new_registrar, failedLoginAttempts=1,"
+ " serviceExtensionUris=Bar.Baz}");
+ " serviceExtensionUris=Bar|Baz}");
}
}