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
Fields Modifier and Type Field Description protected StringaccessCodeprotected URIactionUriprotected Map<String,Object>attributesprotected org.keycloak.sessions.AuthenticationSessionModelauthenticationSessionauthenticationSession can be null for some renderings, mainly error pagesprotected org.keycloak.models.ClientModelclientprotected List<org.keycloak.rar.AuthorizationDetails>clientScopesRequestedprotected org.keycloak.authentication.AuthenticationFlowContextcontextprotected Stringexecutionprotected javax.ws.rs.core.MultivaluedMap<String,String>formDataprotected FreeMarkerProviderfreeMarkerprotected Map<String,String>httpResponseHeadersprotected List<org.keycloak.models.utils.FormMessage>messagesprotected MessageTypemessageTypeprotected org.keycloak.models.RealmModelrealmprotected org.keycloak.models.KeycloakSessionsessionprotected javax.ws.rs.core.Response.Statusstatusprotected javax.ws.rs.core.UriInfouriInfoprotected org.keycloak.models.UserModeluser
-
Constructor Summary
Constructors Constructor Description FreeMarkerLoginFormsProvider(org.keycloak.models.KeycloakSession session)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.keycloak.forms.login.LoginFormsProvideraddError(org.keycloak.models.utils.FormMessage errorMessage)voidaddScript(String scriptUrl)org.keycloak.forms.login.LoginFormsProvideraddSuccess(org.keycloak.models.utils.FormMessage errorMessage)voidclose()javax.ws.rs.core.ResponsecreateCode()protected voidcreateCommonAttributes(org.keycloak.theme.Theme theme, Locale locale, Properties messagesBundle, javax.ws.rs.core.UriBuilder baseUriBuilder, org.keycloak.forms.login.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(org.keycloak.forms.login.LoginFormsPages page)javax.ws.rs.core.ResponsecreateResponse(org.keycloak.models.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(org.keycloak.models.utils.FormMessage message, Properties messagesBundle, Locale locale)protected StringgetFirstMessageUnformatted()StringgetMessage(String message)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 javax.ws.rs.core.UriBuilderprepareBaseUriBuilder(boolean resetRequestUriParams)Prepare base uri builder for later useprotected javax.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.LoginFormsProvidersetAuthContext(org.keycloak.authentication.AuthenticationFlowContext context)org.keycloak.forms.login.LoginFormsProvidersetAuthenticationSession(org.keycloak.sessions.AuthenticationSessionModel authenticationSession)org.keycloak.forms.login.LoginFormsProvidersetClientSessionCode(String accessCode)FreeMarkerLoginFormsProvidersetError(String message, Object... parameters)org.keycloak.forms.login.LoginFormsProvidersetErrors(List<org.keycloak.models.utils.FormMessage> messages)org.keycloak.forms.login.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)org.keycloak.forms.login.LoginFormsProvidersetResponseHeader(String headerName, String headerValue)org.keycloak.forms.login.LoginFormsProvidersetStatus(javax.ws.rs.core.Response.Status status)FreeMarkerLoginFormsProvidersetSuccess(String message, Object... parameters)FreeMarkerLoginFormsProvidersetUser(org.keycloak.models.UserModel user)
-
-
-
Field Detail
-
accessCode
protected String accessCode
-
status
protected javax.ws.rs.core.Response.Status status
-
clientScopesRequested
protected List<org.keycloak.rar.AuthorizationDetails> clientScopesRequested
-
actionUri
protected URI actionUri
-
execution
protected String execution
-
context
protected org.keycloak.authentication.AuthenticationFlowContext context
-
messages
protected List<org.keycloak.models.utils.FormMessage> messages
-
messageType
protected MessageType messageType
-
session
protected org.keycloak.models.KeycloakSession session
-
authenticationSession
protected org.keycloak.sessions.AuthenticationSessionModel authenticationSession
authenticationSession 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 javax.ws.rs.core.UriInfo uriInfo
-
freeMarker
protected FreeMarkerProvider freeMarker
-
user
protected org.keycloak.models.UserModel user
-
-
Method Detail
-
addScript
public void addScript(String scriptUrl)
- Specified by:
addScriptin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createResponse
public javax.ws.rs.core.Response createResponse(org.keycloak.models.UserModel.RequiredAction action)
- Specified by:
createResponsein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createResponse
protected javax.ws.rs.core.Response createResponse(org.keycloak.forms.login.LoginFormsPages page)
-
createForm
public javax.ws.rs.core.Response createForm(String form)
- Specified by:
createFormin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
prepareBaseUriBuilder
protected 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
-
getTheme
protected org.keycloak.theme.Theme getTheme() throws IOExceptionGet Theme used for page rendering.- Returns:
- theme for page rendering, never null
- Throws:
IOException- in case of Theme loading problem
-
handleThemeResources
protected Properties handleThemeResources(org.keycloak.theme.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 fromlocale- to load bundle for- Returns:
- message bundle for other use
-
handleMessages
protected 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 loadingmessagesBundle- to be used for message text loading- See Also:
messageType,messages
-
getMessage
public String getMessage(String message)
- Specified by:
getMessagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createCommonAttributes
protected void createCommonAttributes(org.keycloak.theme.Theme theme, Locale locale, Properties messagesBundle, javax.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 javax.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 javax.ws.rs.core.Response createLoginUsernamePassword()
- Specified by:
createLoginUsernamePasswordin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginUsername
public javax.ws.rs.core.Response createLoginUsername()
- Specified by:
createLoginUsernamein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginPassword
public javax.ws.rs.core.Response createLoginPassword()
- Specified by:
createLoginPasswordin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createPasswordReset
public javax.ws.rs.core.Response createPasswordReset()
- Specified by:
createPasswordResetin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginTotp
public javax.ws.rs.core.Response createLoginTotp()
- Specified by:
createLoginTotpin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginRecoveryAuthnCode
public javax.ws.rs.core.Response createLoginRecoveryAuthnCode()
- Specified by:
createLoginRecoveryAuthnCodein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginWebAuthn
public javax.ws.rs.core.Response createLoginWebAuthn()
- Specified by:
createLoginWebAuthnin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createRegistration
public javax.ws.rs.core.Response createRegistration()
- Specified by:
createRegistrationin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createInfoPage
public javax.ws.rs.core.Response createInfoPage()
- Specified by:
createInfoPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createUpdateProfilePage
public javax.ws.rs.core.Response createUpdateProfilePage()
- Specified by:
createUpdateProfilePagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createIdpLinkConfirmLinkPage
public javax.ws.rs.core.Response createIdpLinkConfirmLinkPage()
- Specified by:
createIdpLinkConfirmLinkPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginExpiredPage
public javax.ws.rs.core.Response createLoginExpiredPage()
- Specified by:
createLoginExpiredPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createIdpLinkEmailPage
public javax.ws.rs.core.Response createIdpLinkEmailPage()
- Specified by:
createIdpLinkEmailPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createErrorPage
public javax.ws.rs.core.Response createErrorPage(javax.ws.rs.core.Response.Status status)
- Specified by:
createErrorPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createWebAuthnErrorPage
public javax.ws.rs.core.Response createWebAuthnErrorPage()
- Specified by:
createWebAuthnErrorPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createOAuthGrant
public javax.ws.rs.core.Response createOAuthGrant()
- Specified by:
createOAuthGrantin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createSelectAuthenticator
public javax.ws.rs.core.Response createSelectAuthenticator()
- Specified by:
createSelectAuthenticatorin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createOAuth2DeviceVerifyUserCodePage
public javax.ws.rs.core.Response createOAuth2DeviceVerifyUserCodePage()
- Specified by:
createOAuth2DeviceVerifyUserCodePagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createCode
public javax.ws.rs.core.Response createCode()
- Specified by:
createCodein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createX509ConfirmPage
public javax.ws.rs.core.Response createX509ConfirmPage()
- Specified by:
createX509ConfirmPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createSamlPostForm
public javax.ws.rs.core.Response createSamlPostForm()
- Specified by:
createSamlPostFormin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createFrontChannelLogoutPage
public javax.ws.rs.core.Response createFrontChannelLogoutPage()
- Specified by:
createFrontChannelLogoutPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLogoutConfirmPage
public javax.ws.rs.core.Response createLogoutConfirmPage()
- Specified by:
createLogoutConfirmPagein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setMessage
protected void setMessage(MessageType type, String message, Object... parameters)
-
getFirstMessageUnformatted
protected String getFirstMessageUnformatted()
-
formatMessage
protected String formatMessage(org.keycloak.models.utils.FormMessage message, Properties messagesBundle, Locale locale)
-
setError
public FreeMarkerLoginFormsProvider setError(String message, Object... parameters)
- 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
public FreeMarkerLoginFormsProvider setSuccess(String message, Object... parameters)
- Specified by:
setSuccessin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setInfo
public FreeMarkerLoginFormsProvider setInfo(String message, Object... parameters)
- Specified by:
setInfoin 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
public FreeMarkerLoginFormsProvider setUser(org.keycloak.models.UserModel user)
- Specified by:
setUserin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setFormData
public FreeMarkerLoginFormsProvider setFormData(javax.ws.rs.core.MultivaluedMap<String,String> formData)
- Specified by:
setFormDatain interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setClientSessionCode
public org.keycloak.forms.login.LoginFormsProvider setClientSessionCode(String accessCode)
- 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
public org.keycloak.forms.login.LoginFormsProvider setAttribute(String name, Object value)
- Specified by:
setAttributein interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setStatus
public org.keycloak.forms.login.LoginFormsProvider setStatus(javax.ws.rs.core.Response.Status status)
- Specified by:
setStatusin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setActionUri
public org.keycloak.forms.login.LoginFormsProvider setActionUri(URI actionUri)
- Specified by:
setActionUriin interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setExecution
public org.keycloak.forms.login.LoginFormsProvider setExecution(String execution)
- 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
-
close
public void close()
- Specified by:
closein interfaceorg.keycloak.provider.Provider
-
-