Class FreeMarkerLoginFormsProvider
- java.lang.Object
- 
- org.keycloak.forms.login.freemarker.FreeMarkerLoginFormsProvider
 
- 
- All Implemented Interfaces:
- LoginFormsProvider,- Provider
 
 public class FreeMarkerLoginFormsProvider extends Object implements LoginFormsProvider - Author:
- Stian Thorgersen
 
- 
- 
Field SummaryFields Modifier and Type Field Description protected StringaccessCodeprotected URIactionUriprotected Map<String,Object>attributesprotected AuthenticationSessionModelauthenticationSessionauthenticationSession can be null for some renderings, mainly error pagesprotected ClientModelclientprotected List<AuthorizationDetails>clientScopesRequestedprotected AuthenticationFlowContextcontextprotected Stringexecutionprotected javax.ws.rs.core.MultivaluedMap<String,String>formDataprotected FreeMarkerProviderfreeMarkerprotected Map<String,String>httpResponseHeadersprotected List<FormMessage>messagesprotected MessageTypemessageTypeprotected RealmModelrealmprotected KeycloakSessionsessionprotected javax.ws.rs.core.Response.Statusstatusprotected javax.ws.rs.core.UriInfouriInfoprotected UserModeluser- 
Fields inherited from interface org.keycloak.forms.login.LoginFormsProviderIDENTITY_PROVIDER_BROKER_CONTEXT, REGISTRATION_DISABLED, UPDATE_PROFILE_CONTEXT_ATTR, USERNAME_HIDDEN
 
- 
 - 
Constructor SummaryConstructors Constructor Description FreeMarkerLoginFormsProvider(KeycloakSession session)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description LoginFormsProvideraddError(FormMessage errorMessage)voidaddScript(String scriptUrl)Adds a script to the html headerLoginFormsProvideraddSuccess(FormMessage errorMessage)Add a success message to the formvoidclose()javax.ws.rs.core.ResponsecreateCode()protected voidcreateCommonAttributes(Theme theme, Locale locale, Properties messagesBundle, javax.ws.rs.core.UriBuilder baseUriBuilder, LoginFormsPages page)Create common attributes used in all templates.javax.ws.rs.core.ResponsecreateErrorPage(javax.ws.rs.core.Response.Status status)javax.ws.rs.core.ResponsecreateForm(String form)javax.ws.rs.core.ResponsecreateFrontChannelLogoutPage()javax.ws.rs.core.ResponsecreateIdpLinkConfirmLinkPage()javax.ws.rs.core.ResponsecreateIdpLinkEmailPage()javax.ws.rs.core.ResponsecreateInfoPage()javax.ws.rs.core.ResponsecreateLoginExpiredPage()javax.ws.rs.core.ResponsecreateLoginPassword()javax.ws.rs.core.ResponsecreateLoginRecoveryAuthnCode()javax.ws.rs.core.ResponsecreateLoginTotp()javax.ws.rs.core.ResponsecreateLoginUsername()javax.ws.rs.core.ResponsecreateLoginUsernamePassword()javax.ws.rs.core.ResponsecreateLoginWebAuthn()javax.ws.rs.core.ResponsecreateLogoutConfirmPage()javax.ws.rs.core.ResponsecreateOAuth2DeviceVerifyUserCodePage()javax.ws.rs.core.ResponsecreateOAuthGrant()javax.ws.rs.core.ResponsecreatePasswordReset()javax.ws.rs.core.ResponsecreateRegistration()protected javax.ws.rs.core.ResponsecreateResponse(LoginFormsPages page)javax.ws.rs.core.ResponsecreateResponse(UserModel.RequiredAction action)javax.ws.rs.core.ResponsecreateSamlPostForm()javax.ws.rs.core.ResponsecreateSelectAuthenticator()javax.ws.rs.core.ResponsecreateUpdateProfilePage()javax.ws.rs.core.ResponsecreateWebAuthnErrorPage()javax.ws.rs.core.ResponsecreateX509ConfirmPage()protected StringformatMessage(FormMessage message, Properties messagesBundle, Locale locale)protected StringgetFirstMessageUnformatted()StringgetMessage(String message)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 javax.ws.rs.core.UriBuilderprepareBaseUriBuilder(boolean resetRequestUriParams)Prepare base uri builder for later useprotected javax.ws.rs.core.ResponseprocessTemplate(Theme theme, String templateName, Locale locale)Process FreeMarker template and prepare Response.LoginFormsProvidersetAccessRequest(List<AuthorizationDetails> clientScopesRequested)LoginFormsProvidersetActionUri(URI actionUri)LoginFormsProvidersetAttribute(String name, Object value)LoginFormsProvidersetAuthContext(AuthenticationFlowContext context)LoginFormsProvidersetAuthenticationSession(AuthenticationSessionModel authenticationSession)LoginFormsProvidersetClientSessionCode(String accessCode)FreeMarkerLoginFormsProvidersetError(String message, Object... parameters)Set one global error message.LoginFormsProvidersetErrors(List<FormMessage> messages)Set multiple error messages.LoginFormsProvidersetExecution(String execution)FreeMarkerLoginFormsProvidersetFormData(javax.ws.rs.core.MultivaluedMap<String,String> formData)FreeMarkerLoginFormsProvidersetInfo(String message, Object... parameters)protected voidsetMessage(MessageType type, String message, Object... parameters)LoginFormsProvidersetResponseHeader(String headerName, String headerValue)LoginFormsProvidersetStatus(javax.ws.rs.core.Response.Status status)FreeMarkerLoginFormsProvidersetSuccess(String message, Object... parameters)FreeMarkerLoginFormsProvidersetUser(UserModel user)
 
- 
- 
- 
Field Detail- 
accessCodeprotected String accessCode 
 - 
statusprotected javax.ws.rs.core.Response.Status status 
 - 
clientScopesRequestedprotected List<AuthorizationDetails> clientScopesRequested 
 - 
actionUriprotected URI actionUri 
 - 
executionprotected String execution 
 - 
contextprotected AuthenticationFlowContext context 
 - 
messagesprotected List<FormMessage> messages 
 - 
messageTypeprotected MessageType messageType 
 - 
sessionprotected KeycloakSession session 
 - 
authenticationSessionprotected AuthenticationSessionModel authenticationSession authenticationSession can be null for some renderings, mainly error pages
 - 
realmprotected RealmModel realm 
 - 
clientprotected ClientModel client 
 - 
uriInfoprotected javax.ws.rs.core.UriInfo uriInfo 
 - 
freeMarkerprotected FreeMarkerProvider freeMarker 
 - 
userprotected UserModel user 
 
- 
 - 
Constructor Detail- 
FreeMarkerLoginFormsProviderpublic FreeMarkerLoginFormsProvider(KeycloakSession session) 
 
- 
 - 
Method Detail- 
addScriptpublic void addScript(String scriptUrl) Description copied from interface:LoginFormsProviderAdds a script to the html header- Specified by:
- addScriptin interface- LoginFormsProvider
 
 - 
createResponsepublic javax.ws.rs.core.Response createResponse(UserModel.RequiredAction action) - Specified by:
- createResponsein interface- LoginFormsProvider
 
 - 
createResponseprotected javax.ws.rs.core.Response createResponse(LoginFormsPages page) 
 - 
createFormpublic javax.ws.rs.core.Response createForm(String form) - Specified by:
- createFormin interface- LoginFormsProvider
 
 - 
prepareBaseUriBuilderprotected javax.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
 
 - 
getThemeprotected Theme getTheme() throws IOException Get Theme used for page rendering.- Returns:
- theme for page rendering, never null
- Throws:
- IOException- in case of Theme loading problem
 
 - 
handleThemeResourcesprotected Properties handleThemeResources(Theme theme, Locale locale) Load message bundle and place it intomsgtemplate attribute. Also load Theme properties and place them intopropertiestemplate attribute.- Parameters:
- theme- actual Theme to load bundle from
- locale- to load bundle for
- Returns:
- message bundle for other use
 
 - 
handleMessagesprotected void handleMessages(Locale locale, Properties messagesBundle) Handle messages to be shown on the page - set them to template attributes- Parameters:
- locale- to be used for message text loading
- messagesBundle- to be used for message text loading
- See Also:
- messageType,- messages
 
 - 
getMessagepublic String getMessage(String message) - Specified by:
- getMessagein interface- LoginFormsProvider
 
 - 
createCommonAttributesprotected void createCommonAttributes(Theme theme, Locale locale, Properties messagesBundle, javax.ws.rs.core.UriBuilder baseUriBuilder, LoginFormsPages page) Create common attributes used in all templates.- Parameters:
- theme- actual Theme used (provided by- getTheme())
- locale- actual locale
- messagesBundle- actual message bundle (provided by- handleThemeResources())
- baseUriBuilder- actual base uri builder (provided by- prepareBaseUriBuilder())
- page- in case if common page is rendered, is null if called from- createForm()
 
 - 
processTemplateprotected javax.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 by- getTheme())
- templateName- name of the template to be rendered
- locale- to be used
- Returns:
- Response object to be returned to the browser, never null
 
 - 
createLoginUsernamePasswordpublic javax.ws.rs.core.Response createLoginUsernamePassword() - Specified by:
- createLoginUsernamePasswordin interface- LoginFormsProvider
 
 - 
createLoginUsernamepublic javax.ws.rs.core.Response createLoginUsername() - Specified by:
- createLoginUsernamein interface- LoginFormsProvider
 
 - 
createLoginPasswordpublic javax.ws.rs.core.Response createLoginPassword() - Specified by:
- createLoginPasswordin interface- LoginFormsProvider
 
 - 
createPasswordResetpublic javax.ws.rs.core.Response createPasswordReset() - Specified by:
- createPasswordResetin interface- LoginFormsProvider
 
 - 
createLoginTotppublic javax.ws.rs.core.Response createLoginTotp() - Specified by:
- createLoginTotpin interface- LoginFormsProvider
 
 - 
createLoginRecoveryAuthnCodepublic javax.ws.rs.core.Response createLoginRecoveryAuthnCode() - Specified by:
- createLoginRecoveryAuthnCodein interface- LoginFormsProvider
 
 - 
createLoginWebAuthnpublic javax.ws.rs.core.Response createLoginWebAuthn() - Specified by:
- createLoginWebAuthnin interface- LoginFormsProvider
 
 - 
createRegistrationpublic javax.ws.rs.core.Response createRegistration() - Specified by:
- createRegistrationin interface- LoginFormsProvider
 
 - 
createInfoPagepublic javax.ws.rs.core.Response createInfoPage() - Specified by:
- createInfoPagein interface- LoginFormsProvider
 
 - 
createUpdateProfilePagepublic javax.ws.rs.core.Response createUpdateProfilePage() - Specified by:
- createUpdateProfilePagein interface- LoginFormsProvider
 
 - 
createIdpLinkConfirmLinkPagepublic javax.ws.rs.core.Response createIdpLinkConfirmLinkPage() - Specified by:
- createIdpLinkConfirmLinkPagein interface- LoginFormsProvider
 
 - 
createLoginExpiredPagepublic javax.ws.rs.core.Response createLoginExpiredPage() - Specified by:
- createLoginExpiredPagein interface- LoginFormsProvider
 
 - 
createIdpLinkEmailPagepublic javax.ws.rs.core.Response createIdpLinkEmailPage() - Specified by:
- createIdpLinkEmailPagein interface- LoginFormsProvider
 
 - 
createErrorPagepublic javax.ws.rs.core.Response createErrorPage(javax.ws.rs.core.Response.Status status) - Specified by:
- createErrorPagein interface- LoginFormsProvider
 
 - 
createWebAuthnErrorPagepublic javax.ws.rs.core.Response createWebAuthnErrorPage() - Specified by:
- createWebAuthnErrorPagein interface- LoginFormsProvider
 
 - 
createOAuthGrantpublic javax.ws.rs.core.Response createOAuthGrant() - Specified by:
- createOAuthGrantin interface- LoginFormsProvider
 
 - 
createSelectAuthenticatorpublic javax.ws.rs.core.Response createSelectAuthenticator() - Specified by:
- createSelectAuthenticatorin interface- LoginFormsProvider
 
 - 
createOAuth2DeviceVerifyUserCodePagepublic javax.ws.rs.core.Response createOAuth2DeviceVerifyUserCodePage() - Specified by:
- createOAuth2DeviceVerifyUserCodePagein interface- LoginFormsProvider
 
 - 
createCodepublic javax.ws.rs.core.Response createCode() - Specified by:
- createCodein interface- LoginFormsProvider
 
 - 
createX509ConfirmPagepublic javax.ws.rs.core.Response createX509ConfirmPage() - Specified by:
- createX509ConfirmPagein interface- LoginFormsProvider
 
 - 
createSamlPostFormpublic javax.ws.rs.core.Response createSamlPostForm() - Specified by:
- createSamlPostFormin interface- LoginFormsProvider
 
 - 
createFrontChannelLogoutPagepublic javax.ws.rs.core.Response createFrontChannelLogoutPage() - Specified by:
- createFrontChannelLogoutPagein interface- LoginFormsProvider
 
 - 
createLogoutConfirmPagepublic javax.ws.rs.core.Response createLogoutConfirmPage() - Specified by:
- createLogoutConfirmPagein interface- LoginFormsProvider
 
 - 
setMessageprotected void setMessage(MessageType type, String message, Object... parameters) 
 - 
getFirstMessageUnformattedprotected String getFirstMessageUnformatted() 
 - 
formatMessageprotected String formatMessage(FormMessage message, Properties messagesBundle, Locale locale) 
 - 
setErrorpublic FreeMarkerLoginFormsProvider setError(String message, Object... parameters) Description copied from interface:LoginFormsProviderSet one global error message.- Specified by:
- setErrorin interface- LoginFormsProvider
- Parameters:
- message- key of message
- parameters- to be formatted into message
 
 - 
setErrorspublic LoginFormsProvider setErrors(List<FormMessage> messages) Description copied from interface:LoginFormsProviderSet multiple error messages.- Specified by:
- setErrorsin interface- LoginFormsProvider
- Parameters:
- messages- to be set
 
 - 
addErrorpublic LoginFormsProvider addError(FormMessage errorMessage) - Specified by:
- addErrorin interface- LoginFormsProvider
 
 - 
addSuccesspublic LoginFormsProvider addSuccess(FormMessage errorMessage) Description copied from interface:LoginFormsProviderAdd a success message to the form- Specified by:
- addSuccessin interface- LoginFormsProvider
- Returns:
 
 - 
setSuccesspublic FreeMarkerLoginFormsProvider setSuccess(String message, Object... parameters) - Specified by:
- setSuccessin interface- LoginFormsProvider
 
 - 
setInfopublic FreeMarkerLoginFormsProvider setInfo(String message, Object... parameters) - Specified by:
- setInfoin interface- LoginFormsProvider
 
 - 
setAuthenticationSessionpublic LoginFormsProvider setAuthenticationSession(AuthenticationSessionModel authenticationSession) - Specified by:
- setAuthenticationSessionin interface- LoginFormsProvider
 
 - 
setUserpublic FreeMarkerLoginFormsProvider setUser(UserModel user) - Specified by:
- setUserin interface- LoginFormsProvider
 
 - 
setFormDatapublic FreeMarkerLoginFormsProvider setFormData(javax.ws.rs.core.MultivaluedMap<String,String> formData) - Specified by:
- setFormDatain interface- LoginFormsProvider
 
 - 
setClientSessionCodepublic LoginFormsProvider setClientSessionCode(String accessCode) - Specified by:
- setClientSessionCodein interface- LoginFormsProvider
 
 - 
setAccessRequestpublic LoginFormsProvider setAccessRequest(List<AuthorizationDetails> clientScopesRequested) - Specified by:
- setAccessRequestin interface- LoginFormsProvider
 
 - 
setAttributepublic LoginFormsProvider setAttribute(String name, Object value) - Specified by:
- setAttributein interface- LoginFormsProvider
 
 - 
setStatuspublic LoginFormsProvider setStatus(javax.ws.rs.core.Response.Status status) - Specified by:
- setStatusin interface- LoginFormsProvider
 
 - 
setActionUripublic LoginFormsProvider setActionUri(URI actionUri) - Specified by:
- setActionUriin interface- LoginFormsProvider
 
 - 
setExecutionpublic LoginFormsProvider setExecution(String execution) - Specified by:
- setExecutionin interface- LoginFormsProvider
 
 - 
setResponseHeaderpublic LoginFormsProvider setResponseHeader(String headerName, String headerValue) - Specified by:
- setResponseHeaderin interface- LoginFormsProvider
 
 - 
setAuthContextpublic LoginFormsProvider setAuthContext(AuthenticationFlowContext context) - Specified by:
- setAuthContextin interface- LoginFormsProvider
 
 
- 
 
-