6.6. 错误处理
红帽构建的 Keycloak 有一些错误处理功能,用于基于 servlet 的客户端适配器。在身份验证中遇到错误时,客户端适配器将调用 HttpServletResponse.sendError ()
。您可以在 web.xml
文件中设置一个 error-page
,以处理这个错误。客户端适配器可以抛出 400、401、403 和 500 错误。
<error-page> <error-code>403</error-code> <location>/ErrorHandler</location> </error-page>
<error-page>
<error-code>403</error-code>
<location>/ErrorHandler</location>
</error-page>
客户端适配器还设置您可以检索的 HttpServletRequest
属性。属性名称为 org.keycloak.adapters.spi.AuthenticationError
。Typecast this object to: org.keycloak.adapters.saml.SamlAuthenticationError
.此类可以告诉您的确切发生情况。如果没有设置此属性,则适配器不会负责错误代码。
public class SamlAuthenticationError implements AuthenticationError { public static enum Reason { EXTRACTION_FAILURE, INVALID_SIGNATURE, ERROR_STATUS } public Reason getReason() { return reason; } public StatusResponseType getStatus() { return status; } }
public class SamlAuthenticationError implements AuthenticationError {
public static enum Reason {
EXTRACTION_FAILURE,
INVALID_SIGNATURE,
ERROR_STATUS
}
public Reason getReason() {
return reason;
}
public StatusResponseType getStatus() {
return status;
}
}