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);
}
}