55 KeycloakTransaction tx = ResteasyProviderFactory.getContextData(KeycloakTransaction.class);
60 if (statusCode >= 500 && statusCode <= 599) {
61 logger.error(
"Uncaught server error", throwable);
64 if (!MediaTypeMatcher.isHtmlRequest(
headers)) {
65 return Response.status(statusCode).build();
75 FreeMarkerUtil freeMarker =
new FreeMarkerUtil();
76 Map<String, Object> attributes =
initAttributes(realm, theme, locale, statusCode);
78 String templateName =
"error.ftl";
80 String content = freeMarker.processTemplate(attributes, templateName, theme);
81 return Response.status(statusCode).type(MediaType.TEXT_HTML_UTF_8_TYPE).entity(content).build();
82 }
catch (Throwable t) {
83 logger.error(
"Failed to create error page", t);
84 return Response.serverError().build();
KeycloakContext getContext()
KeycloakSession session
Definition: KeycloakErrorHandler.java:45
static final Logger logger
Definition: KeycloakErrorHandler.java:40
RealmModel resolveRealm()
Definition: KeycloakErrorHandler.java:101
Map< String, Object > initAttributes(RealmModel realm, Theme theme, Locale locale, int statusCode)
Definition: KeycloakErrorHandler.java:122
Theme getTheme(Theme.Type type)
HttpHeaders headers
Definition: KeycloakErrorHandler.java:48
int getStatusCode(Throwable throwable)
Definition: KeycloakErrorHandler.java:88
Locale resolveLocale(UserModel user)