keycloak-scim/topics/oidc/java/adapter_error_handling.adoc

34 lines
1.1 KiB
Text
Raw Normal View History

2016-04-18 19:10:32 +00:00
[[_adapter_error_handling]]
2016-06-01 11:02:44 +00:00
=== Error Handling
2016-04-18 19:10:32 +00:00
2016-06-03 10:35:36 +00:00
{{book.project.name}} has some error handling facilities for servlet based client adapters.
When an error is encountered in authentication, {{book.project.title}} will call `HttpServletResponse.sendError()`.
2016-04-18 19:10:32 +00:00
You can set up an error-page within your `web.xml` file to handle the error however you want.
2016-06-03 10:35:36 +00:00
{{book.project.title}} may throw 400, 401, 403, and 500 errors.
2016-04-18 19:10:32 +00:00
2016-06-03 10:35:36 +00:00
[source,xml]
2016-04-18 19:10:32 +00:00
----
<error-page>
<error-code>404</error-code>
<location>/ErrorHandler</location>
</error-page>
----
2016-06-03 10:35:36 +00:00
{{book.project.name}} also sets a `HttpServletRequest` attribute that you can retrieve.
The attribute name is `org.keycloak.adapters.spi.AuthenticationError`, which should be casted to `org.keycloak.adapters.OIDCAuthenticationError`.
2016-04-18 19:10:32 +00:00
2016-06-03 10:35:36 +00:00
For example:
2016-04-18 19:10:32 +00:00
2016-06-03 10:35:36 +00:00
[source,java]
2016-04-18 19:10:32 +00:00
----
2016-06-03 10:35:36 +00:00
import org.keycloak.adapters.OIDCAuthenticationError;
import org.keycloak.adapters.OIDCAuthenticationError.Reason;
...
OIDCAuthenticationError error = (OIDCAuthenticationError) httpServletRequest
.getAttribute('org.keycloak.adapters.spi.AuthenticationError');
2016-04-18 19:10:32 +00:00
2016-06-03 10:35:36 +00:00
Reason reason = error.getReason();
System.out.println(reason.name());
----