diff --git a/core/src/main/java/google/registry/flows/CookieSessionMetadata.java b/core/src/main/java/google/registry/flows/CookieSessionMetadata.java index f3344b9f3..1ed774ec6 100644 --- a/core/src/main/java/google/registry/flows/CookieSessionMetadata.java +++ b/core/src/main/java/google/registry/flows/CookieSessionMetadata.java @@ -103,7 +103,7 @@ public class CookieSessionMetadata extends SessionMetadata { @Override public Set getServiceExtensionUris() { return Optional.ofNullable(data.getOrDefault(SERVICE_EXTENSIONS, null)) - .map(s -> Splitter.on('.').splitToList(s)) + .map(s -> Splitter.on(URI_SEPARATOR).splitToList(s)) .map(ImmutableSet::copyOf) .orElse(ImmutableSet.of()); } @@ -125,7 +125,7 @@ public class CookieSessionMetadata extends SessionMetadata { if (serviceExtensionUris == null || serviceExtensionUris.isEmpty()) { data.remove(SERVICE_EXTENSIONS); } else { - data.put(SERVICE_EXTENSIONS, Joiner.on('.').join(serviceExtensionUris)); + data.put(SERVICE_EXTENSIONS, Joiner.on(URI_SEPARATOR).join(serviceExtensionUris)); } } diff --git a/core/src/main/java/google/registry/flows/SessionMetadata.java b/core/src/main/java/google/registry/flows/SessionMetadata.java index 6f410e44c..0b44233ae 100644 --- a/core/src/main/java/google/registry/flows/SessionMetadata.java +++ b/core/src/main/java/google/registry/flows/SessionMetadata.java @@ -24,6 +24,8 @@ import java.util.Set; /** Object to allow setting and retrieving session information in flows. */ public abstract class SessionMetadata { + protected static final char URI_SEPARATOR = '|'; + /** * Invalidates the session. A new instance must be created after this for future sessions. * Attempts to invoke methods of this class after this method has been called will throw {@code @@ -50,7 +52,9 @@ public abstract class SessionMetadata { return toStringHelper(getClass()) .add("clientId", getRegistrarId()) .add("failedLoginAttempts", getFailedLoginAttempts()) - .add("serviceExtensionUris", Joiner.on('.').join(nullToEmpty(getServiceExtensionUris()))) + .add( + "serviceExtensionUris", + Joiner.on(URI_SEPARATOR).join(nullToEmpty(getServiceExtensionUris()))) .toString(); } diff --git a/core/src/test/java/google/registry/flows/CookieSessionMetadataTest.java b/core/src/test/java/google/registry/flows/CookieSessionMetadataTest.java index 82335fb71..f9fe74999 100644 --- a/core/src/test/java/google/registry/flows/CookieSessionMetadataTest.java +++ b/core/src/test/java/google/registry/flows/CookieSessionMetadataTest.java @@ -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}"); } }