keycloak-uncached

relative logout

8/4/2014 5:17:35 PM

Details

diff --git a/services/src/main/java/org/keycloak/services/resources/TokenService.java b/services/src/main/java/org/keycloak/services/resources/TokenService.java
index db6df78..67d29bb 100755
--- a/services/src/main/java/org/keycloak/services/resources/TokenService.java
+++ b/services/src/main/java/org/keycloak/services/resources/TokenService.java
@@ -1069,6 +1069,11 @@ public class TokenService {
 
         if (redirectUri != null) {
             // todo manage legal redirects
+            if (redirectUri.startsWith("/")) { // handle relative uri
+                UriBuilder builder = uriInfo.getAbsolutePathBuilder();
+                builder.replacePath(redirectUri);
+                return Response.status(302).location(builder.build()).build();
+            }
             return Response.status(302).location(UriBuilder.fromUri(redirectUri).build()).build();
         } else {
             return Response.ok().build();