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 String
accessCode
protected URI
actionUri
protected Map<String,Object>
attributes
protected org.keycloak.sessions.AuthenticationSessionModel
authenticationSession
authenticationSession can be null for some renderings, mainly error pagesprotected org.keycloak.models.ClientModel
client
protected List<org.keycloak.rar.AuthorizationDetails>
clientScopesRequested
protected org.keycloak.authentication.AuthenticationFlowContext
context
protected String
execution
protected javax.ws.rs.core.MultivaluedMap<String,String>
formData
protected FreeMarkerProvider
freeMarker
protected Map<String,String>
httpResponseHeaders
protected List<org.keycloak.models.utils.FormMessage>
messages
protected MessageType
messageType
protected org.keycloak.models.RealmModel
realm
protected org.keycloak.models.KeycloakSession
session
protected javax.ws.rs.core.Response.Status
status
protected javax.ws.rs.core.UriInfo
uriInfo
protected org.keycloak.models.UserModel
user
-
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.LoginFormsProvider
addError(org.keycloak.models.utils.FormMessage errorMessage)
void
addScript(String scriptUrl)
org.keycloak.forms.login.LoginFormsProvider
addSuccess(org.keycloak.models.utils.FormMessage errorMessage)
void
close()
javax.ws.rs.core.Response
createCode()
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.javax.ws.rs.core.Response
createErrorPage(javax.ws.rs.core.Response.Status status)
javax.ws.rs.core.Response
createForm(String form)
javax.ws.rs.core.Response
createFrontChannelLogoutPage()
javax.ws.rs.core.Response
createIdpLinkConfirmLinkPage()
javax.ws.rs.core.Response
createIdpLinkEmailPage()
javax.ws.rs.core.Response
createInfoPage()
javax.ws.rs.core.Response
createLoginExpiredPage()
javax.ws.rs.core.Response
createLoginPassword()
javax.ws.rs.core.Response
createLoginRecoveryAuthnCode()
javax.ws.rs.core.Response
createLoginTotp()
javax.ws.rs.core.Response
createLoginUsername()
javax.ws.rs.core.Response
createLoginUsernamePassword()
javax.ws.rs.core.Response
createLoginWebAuthn()
javax.ws.rs.core.Response
createLogoutConfirmPage()
javax.ws.rs.core.Response
createOAuth2DeviceVerifyUserCodePage()
javax.ws.rs.core.Response
createOAuthGrant()
javax.ws.rs.core.Response
createPasswordReset()
javax.ws.rs.core.Response
createRegistration()
protected javax.ws.rs.core.Response
createResponse(org.keycloak.forms.login.LoginFormsPages page)
javax.ws.rs.core.Response
createResponse(org.keycloak.models.UserModel.RequiredAction action)
javax.ws.rs.core.Response
createSamlPostForm()
javax.ws.rs.core.Response
createSelectAuthenticator()
javax.ws.rs.core.Response
createUpdateProfilePage()
javax.ws.rs.core.Response
createWebAuthnErrorPage()
javax.ws.rs.core.Response
createX509ConfirmPage()
protected String
formatMessage(org.keycloak.models.utils.FormMessage message, Properties messagesBundle, Locale locale)
protected String
getFirstMessageUnformatted()
String
getMessage(String message)
protected org.keycloak.theme.Theme
getTheme()
Get Theme used for page rendering.protected void
handleMessages(Locale locale, Properties messagesBundle)
Handle messages to be shown on the page - set them to template attributesprotected Properties
handleThemeResources(org.keycloak.theme.Theme theme, Locale locale)
Load message bundle and place it intomsg
template attribute.protected javax.ws.rs.core.UriBuilder
prepareBaseUriBuilder(boolean resetRequestUriParams)
Prepare base uri builder for later useprotected javax.ws.rs.core.Response
processTemplate(org.keycloak.theme.Theme theme, String templateName, Locale locale)
Process FreeMarker template and prepare Response.org.keycloak.forms.login.LoginFormsProvider
setAccessRequest(List<org.keycloak.rar.AuthorizationDetails> clientScopesRequested)
org.keycloak.forms.login.LoginFormsProvider
setActionUri(URI actionUri)
org.keycloak.forms.login.LoginFormsProvider
setAttribute(String name, Object value)
org.keycloak.forms.login.LoginFormsProvider
setAuthContext(org.keycloak.authentication.AuthenticationFlowContext context)
org.keycloak.forms.login.LoginFormsProvider
setAuthenticationSession(org.keycloak.sessions.AuthenticationSessionModel authenticationSession)
org.keycloak.forms.login.LoginFormsProvider
setClientSessionCode(String accessCode)
FreeMarkerLoginFormsProvider
setError(String message, Object... parameters)
org.keycloak.forms.login.LoginFormsProvider
setErrors(List<org.keycloak.models.utils.FormMessage> messages)
org.keycloak.forms.login.LoginFormsProvider
setExecution(String execution)
FreeMarkerLoginFormsProvider
setFormData(javax.ws.rs.core.MultivaluedMap<String,String> formData)
FreeMarkerLoginFormsProvider
setInfo(String message, Object... parameters)
protected void
setMessage(MessageType type, String message, Object... parameters)
org.keycloak.forms.login.LoginFormsProvider
setResponseHeader(String headerName, String headerValue)
org.keycloak.forms.login.LoginFormsProvider
setStatus(javax.ws.rs.core.Response.Status status)
FreeMarkerLoginFormsProvider
setSuccess(String message, Object... parameters)
FreeMarkerLoginFormsProvider
setUser(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:
addScript
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createResponse
public javax.ws.rs.core.Response createResponse(org.keycloak.models.UserModel.RequiredAction action)
- Specified by:
createResponse
in 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:
createForm
in 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 IOException
Get 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 intomsg
template attribute. Also load Theme properties and place them intoproperties
template 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:
getMessage
in 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:
createLoginUsernamePassword
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginUsername
public javax.ws.rs.core.Response createLoginUsername()
- Specified by:
createLoginUsername
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginPassword
public javax.ws.rs.core.Response createLoginPassword()
- Specified by:
createLoginPassword
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createPasswordReset
public javax.ws.rs.core.Response createPasswordReset()
- Specified by:
createPasswordReset
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginTotp
public javax.ws.rs.core.Response createLoginTotp()
- Specified by:
createLoginTotp
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginRecoveryAuthnCode
public javax.ws.rs.core.Response createLoginRecoveryAuthnCode()
- Specified by:
createLoginRecoveryAuthnCode
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginWebAuthn
public javax.ws.rs.core.Response createLoginWebAuthn()
- Specified by:
createLoginWebAuthn
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createRegistration
public javax.ws.rs.core.Response createRegistration()
- Specified by:
createRegistration
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createInfoPage
public javax.ws.rs.core.Response createInfoPage()
- Specified by:
createInfoPage
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createUpdateProfilePage
public javax.ws.rs.core.Response createUpdateProfilePage()
- Specified by:
createUpdateProfilePage
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createIdpLinkConfirmLinkPage
public javax.ws.rs.core.Response createIdpLinkConfirmLinkPage()
- Specified by:
createIdpLinkConfirmLinkPage
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLoginExpiredPage
public javax.ws.rs.core.Response createLoginExpiredPage()
- Specified by:
createLoginExpiredPage
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createIdpLinkEmailPage
public javax.ws.rs.core.Response createIdpLinkEmailPage()
- Specified by:
createIdpLinkEmailPage
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createErrorPage
public javax.ws.rs.core.Response createErrorPage(javax.ws.rs.core.Response.Status status)
- Specified by:
createErrorPage
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createWebAuthnErrorPage
public javax.ws.rs.core.Response createWebAuthnErrorPage()
- Specified by:
createWebAuthnErrorPage
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createOAuthGrant
public javax.ws.rs.core.Response createOAuthGrant()
- Specified by:
createOAuthGrant
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createSelectAuthenticator
public javax.ws.rs.core.Response createSelectAuthenticator()
- Specified by:
createSelectAuthenticator
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createOAuth2DeviceVerifyUserCodePage
public javax.ws.rs.core.Response createOAuth2DeviceVerifyUserCodePage()
- Specified by:
createOAuth2DeviceVerifyUserCodePage
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createCode
public javax.ws.rs.core.Response createCode()
- Specified by:
createCode
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createX509ConfirmPage
public javax.ws.rs.core.Response createX509ConfirmPage()
- Specified by:
createX509ConfirmPage
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createSamlPostForm
public javax.ws.rs.core.Response createSamlPostForm()
- Specified by:
createSamlPostForm
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createFrontChannelLogoutPage
public javax.ws.rs.core.Response createFrontChannelLogoutPage()
- Specified by:
createFrontChannelLogoutPage
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
createLogoutConfirmPage
public javax.ws.rs.core.Response createLogoutConfirmPage()
- Specified by:
createLogoutConfirmPage
in 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:
setError
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setErrors
public org.keycloak.forms.login.LoginFormsProvider setErrors(List<org.keycloak.models.utils.FormMessage> messages)
- Specified by:
setErrors
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
addError
public org.keycloak.forms.login.LoginFormsProvider addError(org.keycloak.models.utils.FormMessage errorMessage)
- Specified by:
addError
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
addSuccess
public org.keycloak.forms.login.LoginFormsProvider addSuccess(org.keycloak.models.utils.FormMessage errorMessage)
- Specified by:
addSuccess
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setSuccess
public FreeMarkerLoginFormsProvider setSuccess(String message, Object... parameters)
- Specified by:
setSuccess
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setInfo
public FreeMarkerLoginFormsProvider setInfo(String message, Object... parameters)
- Specified by:
setInfo
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setAuthenticationSession
public org.keycloak.forms.login.LoginFormsProvider setAuthenticationSession(org.keycloak.sessions.AuthenticationSessionModel authenticationSession)
- Specified by:
setAuthenticationSession
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setUser
public FreeMarkerLoginFormsProvider setUser(org.keycloak.models.UserModel user)
- Specified by:
setUser
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setFormData
public FreeMarkerLoginFormsProvider setFormData(javax.ws.rs.core.MultivaluedMap<String,String> formData)
- Specified by:
setFormData
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setClientSessionCode
public org.keycloak.forms.login.LoginFormsProvider setClientSessionCode(String accessCode)
- Specified by:
setClientSessionCode
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setAccessRequest
public org.keycloak.forms.login.LoginFormsProvider setAccessRequest(List<org.keycloak.rar.AuthorizationDetails> clientScopesRequested)
- Specified by:
setAccessRequest
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setAttribute
public org.keycloak.forms.login.LoginFormsProvider setAttribute(String name, Object value)
- Specified by:
setAttribute
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setStatus
public org.keycloak.forms.login.LoginFormsProvider setStatus(javax.ws.rs.core.Response.Status status)
- Specified by:
setStatus
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setActionUri
public org.keycloak.forms.login.LoginFormsProvider setActionUri(URI actionUri)
- Specified by:
setActionUri
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setExecution
public org.keycloak.forms.login.LoginFormsProvider setExecution(String execution)
- Specified by:
setExecution
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setResponseHeader
public org.keycloak.forms.login.LoginFormsProvider setResponseHeader(String headerName, String headerValue)
- Specified by:
setResponseHeader
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
setAuthContext
public org.keycloak.forms.login.LoginFormsProvider setAuthContext(org.keycloak.authentication.AuthenticationFlowContext context)
- Specified by:
setAuthContext
in interfaceorg.keycloak.forms.login.LoginFormsProvider
-
close
public void close()
- Specified by:
close
in interfaceorg.keycloak.provider.Provider
-
-