keycloak-memoizeit

KEYCLOAK-8454 KeycloakHttpServerAuthenticationMechanism

10/17/2018 10:03:56 AM

Details

diff --git a/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/KeycloakHttpServerAuthenticationMechanism.java b/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/KeycloakHttpServerAuthenticationMechanism.java
index 7acad7e..4d4c830 100644
--- a/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/KeycloakHttpServerAuthenticationMechanism.java
+++ b/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/KeycloakHttpServerAuthenticationMechanism.java
@@ -22,6 +22,7 @@ import java.util.Map;
 import java.util.regex.Pattern;
 
 import javax.security.auth.callback.CallbackHandler;
+import javax.servlet.http.HttpServletResponse;
 
 import org.jboss.logging.Logger;
 import org.keycloak.adapters.saml.SamlAuthenticator;
@@ -138,9 +139,7 @@ class KeycloakHttpServerAuthenticationMechanism implements HttpServerAuthenticat
     }
 
     protected void redirectLogout(SamlDeployment deployment, ElytronHttpFacade exchange) {
-        String page = deployment.getLogoutPage();
-        sendRedirect(exchange, page);
-        exchange.getResponse().setStatus(302);
+        sendRedirect(exchange, deployment.getLogoutPage());
     }
 
     private static final Pattern PROTOCOL_PATTERN = Pattern.compile("^[a-zA-Z][a-zA-Z0-9+.-]*:");
@@ -148,7 +147,7 @@ class KeycloakHttpServerAuthenticationMechanism implements HttpServerAuthenticat
     static void sendRedirect(final ElytronHttpFacade exchange, final String location) {
         if (location == null) {
             LOGGER.warn("Logout page not set.");
-            exchange.getResponse().setStatus(302);
+            exchange.getResponse().setStatus(HttpServletResponse.SC_NOT_FOUND);
             return;
         }
         if (PROTOCOL_PATTERN.matcher(location).find()) {
@@ -161,5 +160,6 @@ class KeycloakHttpServerAuthenticationMechanism implements HttpServerAuthenticat
             String loc = exchange.getURI().getScheme() + "://" + exchange.getURI().getHost() + ":" + exchange.getURI().getPort() + contextPath + location;
             exchange.getResponse().setHeader("Location", loc);
         }
+        exchange.getResponse().setStatus(HttpServletResponse.SC_FOUND);
     }
 }