Class FreeMarkerLoginFormsProvider
java.lang.Object
org.keycloak.forms.login.freemarker.FreeMarkerLoginFormsProvider
- All Implemented Interfaces:
org.keycloak.forms.login.LoginFormsProvider,org.keycloak.provider.Provider
public class FreeMarkerLoginFormsProvider
extends Object
implements org.keycloak.forms.login.LoginFormsProvider
- Author:
- Stian Thorgersen
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Stringprotected URIprotected org.keycloak.sessions.AuthenticationSessionModelauthenticationSession can be null for some renderings, mainly error pagesprotected org.keycloak.models.ClientModelprotected List<org.keycloak.rar.AuthorizationDetails>protected org.keycloak.authentication.AuthenticationFlowContextprotected booleanprotected Stringprotected FreeMarkerProviderprotected Stringprotected List<org.keycloak.models.utils.FormMessage>protected org.keycloak.forms.login.MessageTypeprotected org.keycloak.models.RealmModelprotected org.keycloak.models.KeycloakSessionprotected jakarta.ws.rs.core.Response.Statusprotected org.keycloak.tracing.TracingProviderprotected jakarta.ws.rs.core.UriInfoprotected org.keycloak.models.UserModelFields inherited from interface org.keycloak.forms.login.LoginFormsProvider
IDENTITY_PROVIDER_BROKER_CONTEXT, REGISTRATION_DISABLED, UPDATE_PROFILE_CONTEXT_ATTR, USERNAME_HIDDEN -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.keycloak.forms.login.LoginFormsProvideraddError(org.keycloak.models.utils.FormMessage errorMessage) voidorg.keycloak.forms.login.LoginFormsProvideraddSuccess(org.keycloak.models.utils.FormMessage errorMessage) voidclose()jakarta.ws.rs.core.Responseprotected voidcreateCommonAttributes(org.keycloak.theme.Theme theme, Locale locale, Properties messagesBundle, jakarta.ws.rs.core.UriBuilder baseUriBuilder, org.keycloak.forms.login.LoginFormsPages page) Create common attributes used in all templates.jakarta.ws.rs.core.ResponsecreateErrorPage(jakarta.ws.rs.core.Response.Status status) jakarta.ws.rs.core.ResponsecreateForm(String form) jakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responseprotected jakarta.ws.rs.core.ResponsecreateResponse(org.keycloak.forms.login.LoginFormsPages page) jakarta.ws.rs.core.ResponsecreateResponse(org.keycloak.models.UserModel.RequiredAction action) jakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responsejakarta.ws.rs.core.Responseprotected StringformatMessage(org.keycloak.models.utils.FormMessage message) protected StringformatMessage(org.keycloak.models.utils.FormMessage message, Properties messagesBundle, Locale locale) protected StringgetMessage(String message, Object... parameters) protected org.keycloak.theme.ThemegetTheme()Get Theme used for page rendering.protected voidhandleMessages(Locale locale, Properties messagesBundle) Handle messages to be shown on the page - set them to template attributesprotected PropertieshandleThemeResources(org.keycloak.theme.Theme theme, Locale locale) Load message bundle and place it intomsgtemplate attribute.protected jakarta.ws.rs.core.UriBuilderprepareBaseUriBuilder(boolean resetRequestUriParams) Prepare base uri builder for later useprotected jakarta.ws.rs.core.ResponseprocessTemplate(org.keycloak.theme.Theme theme, String templateName, Locale locale) Process FreeMarker template and prepare Response.org.keycloak.forms.login.LoginFormsProvidersetAccessRequest(List<org.keycloak.rar.AuthorizationDetails> clientScopesRequested) org.keycloak.forms.login.LoginFormsProvidersetActionUri(URI actionUri) org.keycloak.forms.login.LoginFormsProvidersetAttribute(String name, Object value) org.keycloak.forms.login.LoginFormsProviderorg.keycloak.forms.login.LoginFormsProvidersetAuthContext(org.keycloak.authentication.AuthenticationFlowContext context) org.keycloak.forms.login.LoginFormsProvidersetAuthenticationSession(org.keycloak.sessions.AuthenticationSessionModel authenticationSession) org.keycloak.forms.login.LoginFormsProvidersetClientSessionCode(String accessCode) org.keycloak.forms.login.LoginFormsProviderorg.keycloak.forms.login.LoginFormsProviderorg.keycloak.forms.login.LoginFormsProvidersetExecution(String execution) setFormData(jakarta.ws.rs.core.MultivaluedMap<String, String> formData) org.keycloak.forms.login.LoginFormsProvidersetMessage(org.keycloak.forms.login.MessageType type, String message, Object... parameters) org.keycloak.forms.login.LoginFormsProvidersetResponseHeader(String headerName, String headerValue) org.keycloak.forms.login.LoginFormsProvidersetStatus(jakarta.ws.rs.core.Response.Status status) setSuccess(String message, Object... parameters) setUser(org.keycloak.models.UserModel user)
-
Field Details
-
accessCode
-
status
protected jakarta.ws.rs.core.Response.Status status -
clientScopesRequested
-
httpResponseHeaders
-
actionUri
-
execution
-
context
protected org.keycloak.authentication.AuthenticationFlowContext context -
messages
-
messageType
protected org.keycloak.forms.login.MessageType messageType -
formData
-
detachedAuthSession
protected boolean detachedAuthSession -
session
protected org.keycloak.models.KeycloakSession session -
authenticationSession
protected org.keycloak.sessions.AuthenticationSessionModel authenticationSessionauthenticationSession can be null for some renderings, mainly error pages -
realm
protected org.keycloak.models.RealmModel realm -
client
protected org.keycloak.models.ClientModel client -
uriInfo
protected jakarta.ws.rs.core.UriInfo uriInfo -
freeMarker
-
tracing
protected org.keycloak.tracing.TracingProvider tracing -
user
protected org.keycloak.models.UserModel user -
lang
-
attributes
-
-
Constructor Details
-
FreeMarkerLoginFormsProvider
public FreeMarkerLoginFormsProvider(org.keycloak.models.KeycloakSession session)
-
-
Method Details
-
addScript
- Specified by:
addScriptin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createResponse
public jakarta.ws.rs.core.Response createResponse(org.keycloak.models.UserModel.RequiredAction action) - Specified by:
createResponsein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createResponse
protected jakarta.ws.rs.core.Response createResponse(org.keycloak.forms.login.LoginFormsPages page) -
createForm
- Specified by:
createFormin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
prepareBaseUriBuilder
protected jakarta.ws.rs.core.UriBuilder prepareBaseUriBuilder(boolean resetRequestUriParams) Prepare base uri builder for later use- Parameters:
resetRequestUriParams- - for some reason Resteasy 2.3.7 doesn't like query params and form params with the same name and will null out the code form param, so we have to reset them for some pages- Returns:
- base uri builder
-
getTheme
Get Theme used for page rendering.- Returns:
- theme for page rendering, never null
- Throws:
IOException- in case of Theme loading problem
-
handleThemeResources
Load message bundle and place it intomsgtemplate attribute. Also load Theme properties and place them intopropertiestemplate attribute.- Parameters:
theme- actual Theme to load bundle fromlocale- to load bundle for- Returns:
- message bundle for other use
-
handleMessages
Handle messages to be shown on the page - set them to template attributes- Parameters:
locale- to be used for message text loadingmessagesBundle- to be used for message text loading- See Also:
-
getMessage
- Specified by:
getMessagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createCommonAttributes
protected void createCommonAttributes(org.keycloak.theme.Theme theme, Locale locale, Properties messagesBundle, jakarta.ws.rs.core.UriBuilder baseUriBuilder, org.keycloak.forms.login.LoginFormsPages page) Create common attributes used in all templates.- Parameters:
theme- actual Theme used (provided bygetTheme())locale- actual localemessagesBundle- actual message bundle (provided byhandleThemeResources())baseUriBuilder- actual base uri builder (provided byprepareBaseUriBuilder())page- in case if common page is rendered, is null if called fromcreateForm()
-
processTemplate
protected jakarta.ws.rs.core.Response processTemplate(org.keycloak.theme.Theme theme, String templateName, Locale locale) Process FreeMarker template and prepare Response. Some fields are used for rendering also.- Parameters:
theme- to be used (provided bygetTheme())templateName- name of the template to be renderedlocale- to be used- Returns:
- Response object to be returned to the browser, never null
-
createLoginUsernamePassword
public jakarta.ws.rs.core.Response createLoginUsernamePassword()- Specified by:
createLoginUsernamePasswordin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginUsername
public jakarta.ws.rs.core.Response createLoginUsername()- Specified by:
createLoginUsernamein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginPassword
public jakarta.ws.rs.core.Response createLoginPassword()- Specified by:
createLoginPasswordin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createPasswordReset
public jakarta.ws.rs.core.Response createPasswordReset()- Specified by:
createPasswordResetin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createOtpReset
public jakarta.ws.rs.core.Response createOtpReset()- Specified by:
createOtpResetin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginTotp
public jakarta.ws.rs.core.Response createLoginTotp()- Specified by:
createLoginTotpin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginRecoveryAuthnCode
public jakarta.ws.rs.core.Response createLoginRecoveryAuthnCode()- Specified by:
createLoginRecoveryAuthnCodein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginWebAuthn
public jakarta.ws.rs.core.Response createLoginWebAuthn()- Specified by:
createLoginWebAuthnin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createRegistration
public jakarta.ws.rs.core.Response createRegistration()- Specified by:
createRegistrationin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createInfoPage
public jakarta.ws.rs.core.Response createInfoPage()- Specified by:
createInfoPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createUpdateProfilePage
public jakarta.ws.rs.core.Response createUpdateProfilePage()- Specified by:
createUpdateProfilePagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createIdpLinkConfirmLinkPage
public jakarta.ws.rs.core.Response createIdpLinkConfirmLinkPage()- Specified by:
createIdpLinkConfirmLinkPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createIdpLinkConfirmOverrideLinkPage
public jakarta.ws.rs.core.Response createIdpLinkConfirmOverrideLinkPage()- Specified by:
createIdpLinkConfirmOverrideLinkPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginExpiredPage
public jakarta.ws.rs.core.Response createLoginExpiredPage()- Specified by:
createLoginExpiredPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createIdpLinkEmailPage
public jakarta.ws.rs.core.Response createIdpLinkEmailPage()- Specified by:
createIdpLinkEmailPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createErrorPage
public jakarta.ws.rs.core.Response createErrorPage(jakarta.ws.rs.core.Response.Status status) - Specified by:
createErrorPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createWebAuthnErrorPage
public jakarta.ws.rs.core.Response createWebAuthnErrorPage()- Specified by:
createWebAuthnErrorPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createOAuthGrant
public jakarta.ws.rs.core.Response createOAuthGrant()- Specified by:
createOAuthGrantin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createSelectAuthenticator
public jakarta.ws.rs.core.Response createSelectAuthenticator()- Specified by:
createSelectAuthenticatorin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createOAuth2DeviceVerifyUserCodePage
public jakarta.ws.rs.core.Response createOAuth2DeviceVerifyUserCodePage()- Specified by:
createOAuth2DeviceVerifyUserCodePagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createCode
public jakarta.ws.rs.core.Response createCode()- Specified by:
createCodein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createX509ConfirmPage
public jakarta.ws.rs.core.Response createX509ConfirmPage()- Specified by:
createX509ConfirmPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createSamlPostForm
public jakarta.ws.rs.core.Response createSamlPostForm()- Specified by:
createSamlPostFormin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createFrontChannelLogoutPage
public jakarta.ws.rs.core.Response createFrontChannelLogoutPage()- Specified by:
createFrontChannelLogoutPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLogoutConfirmPage
public jakarta.ws.rs.core.Response createLogoutConfirmPage()- Specified by:
createLogoutConfirmPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setMessage
public org.keycloak.forms.login.LoginFormsProvider setMessage(org.keycloak.forms.login.MessageType type, String message, Object... parameters) - Specified by:
setMessagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
getFirstMessageUnformatted
-
formatMessage
-
formatMessage
protected String formatMessage(org.keycloak.models.utils.FormMessage message, Properties messagesBundle, Locale locale) -
setError
- Specified by:
setErrorin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setErrors
public org.keycloak.forms.login.LoginFormsProvider setErrors(List<org.keycloak.models.utils.FormMessage> messages) - Specified by:
setErrorsin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
addError
public org.keycloak.forms.login.LoginFormsProvider addError(org.keycloak.models.utils.FormMessage errorMessage) - Specified by:
addErrorin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
addSuccess
public org.keycloak.forms.login.LoginFormsProvider addSuccess(org.keycloak.models.utils.FormMessage errorMessage) - Specified by:
addSuccessin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setSuccess
- Specified by:
setSuccessin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setInfo
- Specified by:
setInfoin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setDetachedAuthSession
public org.keycloak.forms.login.LoginFormsProvider setDetachedAuthSession()- Specified by:
setDetachedAuthSessionin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setAuthenticationSession
public org.keycloak.forms.login.LoginFormsProvider setAuthenticationSession(org.keycloak.sessions.AuthenticationSessionModel authenticationSession) - Specified by:
setAuthenticationSessionin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setUser
- Specified by:
setUserin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setFormData
public FreeMarkerLoginFormsProvider setFormData(jakarta.ws.rs.core.MultivaluedMap<String, String> formData) - Specified by:
setFormDatain interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setClientSessionCode
- Specified by:
setClientSessionCodein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setAccessRequest
public org.keycloak.forms.login.LoginFormsProvider setAccessRequest(List<org.keycloak.rar.AuthorizationDetails> clientScopesRequested) - Specified by:
setAccessRequestin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setAttribute
- Specified by:
setAttributein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setStatus
public org.keycloak.forms.login.LoginFormsProvider setStatus(jakarta.ws.rs.core.Response.Status status) - Specified by:
setStatusin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setActionUri
- Specified by:
setActionUriin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setExecution
- Specified by:
setExecutionin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setResponseHeader
public org.keycloak.forms.login.LoginFormsProvider setResponseHeader(String headerName, String headerValue) - Specified by:
setResponseHeaderin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setAuthContext
public org.keycloak.forms.login.LoginFormsProvider setAuthContext(org.keycloak.authentication.AuthenticationFlowContext context) - Specified by:
setAuthContextin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setAttributeMapper
public org.keycloak.forms.login.LoginFormsProvider setAttributeMapper(Function<Map<String, Object>, Map<String, Object>> mapper) - Specified by:
setAttributeMapperin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
close
public void close()- Specified by:
closein interfaceorg.keycloak.provider.Provider
-