Class FreeMarkerLoginFormsProvider
java.lang.Object
org.keycloak.forms.login.freemarker.FreeMarkerLoginFormsProvider
- All Implemented Interfaces:
LoginFormsProvider,Provider
- Author:
- Stian Thorgersen
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Stringprotected URIprotected AuthenticationSessionModelauthenticationSession can be null for some renderings, mainly error pagesprotected ClientModelprotected List<AuthorizationDetails>protected AuthenticationFlowContextprotected booleanprotected Stringprotected FreeMarkerProviderprotected Stringprotected List<FormMessage>protected MessageTypeprotected RealmModelprotected KeycloakSessionprotected jakarta.ws.rs.core.Response.Statusprotected jakarta.ws.rs.core.UriInfoprotected 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 TypeMethodDescriptionaddError(FormMessage errorMessage) voidAdds a script to the html headeraddSuccess(FormMessage errorMessage) Add a success message to the formvoidclose()jakarta.ws.rs.core.Responseprotected voidcreateCommonAttributes(Theme theme, Locale locale, Properties messagesBundle, jakarta.ws.rs.core.UriBuilder baseUriBuilder, 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.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 StringformatMessage(FormMessage message) protected StringformatMessage(FormMessage message, Properties messagesBundle, Locale locale) protected StringgetMessage(String message, Object... parameters) protected 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(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(Theme theme, String templateName, Locale locale) Process FreeMarker template and prepare Response.setAccessRequest(List<AuthorizationDetails> clientScopesRequested) setActionUri(URI actionUri) setAttribute(String name, Object value) setAuthContext(AuthenticationFlowContext context) setAuthenticationSession(AuthenticationSessionModel authenticationSession) setClientSessionCode(String accessCode) Used when authenticationSession was already removed for this browser session and hence we don't have any authenticationSession or user data.Set one global error message.setErrors(List<FormMessage> messages) Set multiple error messages.setExecution(String execution) setFormData(jakarta.ws.rs.core.MultivaluedMap<String, String> formData) setMessage(MessageType type, String message, Object... parameters) setResponseHeader(String headerName, String headerValue) setStatus(jakarta.ws.rs.core.Response.Status status) setSuccess(String message, Object... parameters)
-
Field Details
-
accessCode
-
status
protected jakarta.ws.rs.core.Response.Status status -
clientScopesRequested
-
httpResponseHeaders
-
actionUri
-
execution
-
context
-
messages
-
messageType
-
formData
-
detachedAuthSession
protected boolean detachedAuthSession -
session
-
authenticationSession
authenticationSession can be null for some renderings, mainly error pages -
realm
-
client
-
uriInfo
protected jakarta.ws.rs.core.UriInfo uriInfo -
freeMarker
-
user
-
lang
-
attributes
-
-
Constructor Details
-
FreeMarkerLoginFormsProvider
-
-
Method Details
-
addScript
Description copied from interface:LoginFormsProviderAdds a script to the html header- Specified by:
addScriptin interfaceLoginFormsProvider
-
createResponse
- Specified by:
createResponsein interfaceLoginFormsProvider
-
createResponse
-
createForm
- Specified by:
createFormin interfaceLoginFormsProvider
-
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 interfaceLoginFormsProvider
-
createCommonAttributes
protected void createCommonAttributes(Theme theme, Locale locale, Properties messagesBundle, jakarta.ws.rs.core.UriBuilder baseUriBuilder, 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(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 interfaceLoginFormsProvider
-
createLoginUsername
public jakarta.ws.rs.core.Response createLoginUsername()- Specified by:
createLoginUsernamein interfaceLoginFormsProvider
-
createLoginPassword
public jakarta.ws.rs.core.Response createLoginPassword()- Specified by:
createLoginPasswordin interfaceLoginFormsProvider
-
createPasswordReset
public jakarta.ws.rs.core.Response createPasswordReset()- Specified by:
createPasswordResetin interfaceLoginFormsProvider
-
createOtpReset
public jakarta.ws.rs.core.Response createOtpReset()- Specified by:
createOtpResetin interfaceLoginFormsProvider
-
createLoginTotp
public jakarta.ws.rs.core.Response createLoginTotp()- Specified by:
createLoginTotpin interfaceLoginFormsProvider
-
createLoginRecoveryAuthnCode
public jakarta.ws.rs.core.Response createLoginRecoveryAuthnCode()- Specified by:
createLoginRecoveryAuthnCodein interfaceLoginFormsProvider
-
createLoginWebAuthn
public jakarta.ws.rs.core.Response createLoginWebAuthn()- Specified by:
createLoginWebAuthnin interfaceLoginFormsProvider
-
createRegistration
public jakarta.ws.rs.core.Response createRegistration()- Specified by:
createRegistrationin interfaceLoginFormsProvider
-
createInfoPage
public jakarta.ws.rs.core.Response createInfoPage()- Specified by:
createInfoPagein interfaceLoginFormsProvider
-
createUpdateProfilePage
public jakarta.ws.rs.core.Response createUpdateProfilePage()- Specified by:
createUpdateProfilePagein interfaceLoginFormsProvider
-
createIdpLinkConfirmLinkPage
public jakarta.ws.rs.core.Response createIdpLinkConfirmLinkPage()- Specified by:
createIdpLinkConfirmLinkPagein interfaceLoginFormsProvider
-
createIdpLinkConfirmOverrideLinkPage
public jakarta.ws.rs.core.Response createIdpLinkConfirmOverrideLinkPage()- Specified by:
createIdpLinkConfirmOverrideLinkPagein interfaceLoginFormsProvider
-
createLoginExpiredPage
public jakarta.ws.rs.core.Response createLoginExpiredPage()- Specified by:
createLoginExpiredPagein interfaceLoginFormsProvider
-
createIdpLinkEmailPage
public jakarta.ws.rs.core.Response createIdpLinkEmailPage()- Specified by:
createIdpLinkEmailPagein interfaceLoginFormsProvider
-
createErrorPage
public jakarta.ws.rs.core.Response createErrorPage(jakarta.ws.rs.core.Response.Status status) - Specified by:
createErrorPagein interfaceLoginFormsProvider
-
createWebAuthnErrorPage
public jakarta.ws.rs.core.Response createWebAuthnErrorPage()- Specified by:
createWebAuthnErrorPagein interfaceLoginFormsProvider
-
createOAuthGrant
public jakarta.ws.rs.core.Response createOAuthGrant()- Specified by:
createOAuthGrantin interfaceLoginFormsProvider
-
createSelectAuthenticator
public jakarta.ws.rs.core.Response createSelectAuthenticator()- Specified by:
createSelectAuthenticatorin interfaceLoginFormsProvider
-
createOAuth2DeviceVerifyUserCodePage
public jakarta.ws.rs.core.Response createOAuth2DeviceVerifyUserCodePage()- Specified by:
createOAuth2DeviceVerifyUserCodePagein interfaceLoginFormsProvider
-
createCode
public jakarta.ws.rs.core.Response createCode()- Specified by:
createCodein interfaceLoginFormsProvider
-
createX509ConfirmPage
public jakarta.ws.rs.core.Response createX509ConfirmPage()- Specified by:
createX509ConfirmPagein interfaceLoginFormsProvider
-
createSamlPostForm
public jakarta.ws.rs.core.Response createSamlPostForm()- Specified by:
createSamlPostFormin interfaceLoginFormsProvider
-
createFrontChannelLogoutPage
public jakarta.ws.rs.core.Response createFrontChannelLogoutPage()- Specified by:
createFrontChannelLogoutPagein interfaceLoginFormsProvider
-
createLogoutConfirmPage
public jakarta.ws.rs.core.Response createLogoutConfirmPage()- Specified by:
createLogoutConfirmPagein interfaceLoginFormsProvider
-
setMessage
- Specified by:
setMessagein interfaceLoginFormsProvider
-
getFirstMessageUnformatted
-
formatMessage
-
formatMessage
-
setError
Description copied from interface:LoginFormsProviderSet one global error message.- Specified by:
setErrorin interfaceLoginFormsProvider- Parameters:
message- key of messageparameters- to be formatted into message
-
setErrors
Description copied from interface:LoginFormsProviderSet multiple error messages.- Specified by:
setErrorsin interfaceLoginFormsProvider- Parameters:
messages- to be set
-
addError
- Specified by:
addErrorin interfaceLoginFormsProvider
-
addSuccess
Description copied from interface:LoginFormsProviderAdd a success message to the form- Specified by:
addSuccessin interfaceLoginFormsProvider- Returns:
-
setSuccess
- Specified by:
setSuccessin interfaceLoginFormsProvider
-
setInfo
- Specified by:
setInfoin interfaceLoginFormsProvider
-
setDetachedAuthSession
Description copied from interface:LoginFormsProviderUsed when authenticationSession was already removed for this browser session and hence we don't have any authenticationSession or user data. Would just repeat previous info/error page after language is changed- Specified by:
setDetachedAuthSessionin interfaceLoginFormsProvider
-
setAuthenticationSession
public LoginFormsProvider setAuthenticationSession(AuthenticationSessionModel authenticationSession) - Specified by:
setAuthenticationSessionin interfaceLoginFormsProvider
-
setUser
- Specified by:
setUserin interfaceLoginFormsProvider
-
setFormData
public FreeMarkerLoginFormsProvider setFormData(jakarta.ws.rs.core.MultivaluedMap<String, String> formData) - Specified by:
setFormDatain interfaceLoginFormsProvider
-
setClientSessionCode
- Specified by:
setClientSessionCodein interfaceLoginFormsProvider
-
setAccessRequest
- Specified by:
setAccessRequestin interfaceLoginFormsProvider
-
setAttribute
- Specified by:
setAttributein interfaceLoginFormsProvider
-
setStatus
- Specified by:
setStatusin interfaceLoginFormsProvider
-
setActionUri
- Specified by:
setActionUriin interfaceLoginFormsProvider
-
setExecution
- Specified by:
setExecutionin interfaceLoginFormsProvider
-
setResponseHeader
- Specified by:
setResponseHeaderin interfaceLoginFormsProvider
-
setAuthContext
- Specified by:
setAuthContextin interfaceLoginFormsProvider
-
setAttributeMapper
public LoginFormsProvider setAttributeMapper(Function<Map<String, Object>, Map<String, Object>> mapper) - Specified by:
setAttributeMapperin interfaceLoginFormsProvider
-
close
public void close()
-