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 Details

    • accessCode

      protected String accessCode
    • status

      protected jakarta.ws.rs.core.Response.Status status
    • clientScopesRequested

      protected List<org.keycloak.rar.AuthorizationDetails> clientScopesRequested
    • httpResponseHeaders

      protected Map<String,String> httpResponseHeaders
    • 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 org.keycloak.forms.login.MessageType messageType
    • formData

      protected jakarta.ws.rs.core.MultivaluedMap<String,String> formData
    • detachedAuthSession

      protected boolean detachedAuthSession
    • 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 jakarta.ws.rs.core.UriInfo uriInfo
    • freeMarker

      protected FreeMarkerProvider freeMarker
    • tracing

      protected org.keycloak.tracing.TracingProvider tracing
    • user

      protected org.keycloak.models.UserModel user
    • lang

      protected String lang
    • attributes

      protected final Map<String,Object> attributes
  • Constructor Details

    • FreeMarkerLoginFormsProvider

      public FreeMarkerLoginFormsProvider(org.keycloak.models.KeycloakSession session)
  • Method Details

    • addScript

      public void addScript(String scriptUrl)
      Specified by:
      addScript in interface org.keycloak.forms.login.LoginFormsProvider
    • createResponse

      public jakarta.ws.rs.core.Response createResponse(org.keycloak.models.UserModel.RequiredAction action)
      Specified by:
      createResponse in interface org.keycloak.forms.login.LoginFormsProvider
    • createResponse

      protected jakarta.ws.rs.core.Response createResponse(org.keycloak.forms.login.LoginFormsPages page)
    • createForm

      public jakarta.ws.rs.core.Response createForm(String form)
      Specified by:
      createForm in interface org.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

      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 into msg template attribute. Also load Theme properties and place them into properties template attribute.
      Parameters:
      theme - actual Theme to load bundle from
      locale - 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 loading
      messagesBundle - to be used for message text loading
      See Also:
    • getMessage

      public String getMessage(String message, Object... parameters)
      Specified by:
      getMessage in interface org.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 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()
    • 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 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
    • createLoginUsernamePassword

      public jakarta.ws.rs.core.Response createLoginUsernamePassword()
      Specified by:
      createLoginUsernamePassword in interface org.keycloak.forms.login.LoginFormsProvider
    • createLoginUsername

      public jakarta.ws.rs.core.Response createLoginUsername()
      Specified by:
      createLoginUsername in interface org.keycloak.forms.login.LoginFormsProvider
    • createLoginPassword

      public jakarta.ws.rs.core.Response createLoginPassword()
      Specified by:
      createLoginPassword in interface org.keycloak.forms.login.LoginFormsProvider
    • createPasswordReset

      public jakarta.ws.rs.core.Response createPasswordReset()
      Specified by:
      createPasswordReset in interface org.keycloak.forms.login.LoginFormsProvider
    • createOtpReset

      public jakarta.ws.rs.core.Response createOtpReset()
      Specified by:
      createOtpReset in interface org.keycloak.forms.login.LoginFormsProvider
    • createLoginTotp

      public jakarta.ws.rs.core.Response createLoginTotp()
      Specified by:
      createLoginTotp in interface org.keycloak.forms.login.LoginFormsProvider
    • createLoginRecoveryAuthnCode

      public jakarta.ws.rs.core.Response createLoginRecoveryAuthnCode()
      Specified by:
      createLoginRecoveryAuthnCode in interface org.keycloak.forms.login.LoginFormsProvider
    • createLoginWebAuthn

      public jakarta.ws.rs.core.Response createLoginWebAuthn()
      Specified by:
      createLoginWebAuthn in interface org.keycloak.forms.login.LoginFormsProvider
    • createRegistration

      public jakarta.ws.rs.core.Response createRegistration()
      Specified by:
      createRegistration in interface org.keycloak.forms.login.LoginFormsProvider
    • createInfoPage

      public jakarta.ws.rs.core.Response createInfoPage()
      Specified by:
      createInfoPage in interface org.keycloak.forms.login.LoginFormsProvider
    • createUpdateProfilePage

      public jakarta.ws.rs.core.Response createUpdateProfilePage()
      Specified by:
      createUpdateProfilePage in interface org.keycloak.forms.login.LoginFormsProvider
    • createIdpLinkConfirmLinkPage

      public jakarta.ws.rs.core.Response createIdpLinkConfirmLinkPage()
      Specified by:
      createIdpLinkConfirmLinkPage in interface org.keycloak.forms.login.LoginFormsProvider
    • createIdpLinkConfirmOverrideLinkPage

      public jakarta.ws.rs.core.Response createIdpLinkConfirmOverrideLinkPage()
      Specified by:
      createIdpLinkConfirmOverrideLinkPage in interface org.keycloak.forms.login.LoginFormsProvider
    • createLoginExpiredPage

      public jakarta.ws.rs.core.Response createLoginExpiredPage()
      Specified by:
      createLoginExpiredPage in interface org.keycloak.forms.login.LoginFormsProvider
    • createIdpLinkEmailPage

      public jakarta.ws.rs.core.Response createIdpLinkEmailPage()
      Specified by:
      createIdpLinkEmailPage in interface org.keycloak.forms.login.LoginFormsProvider
    • createErrorPage

      public jakarta.ws.rs.core.Response createErrorPage(jakarta.ws.rs.core.Response.Status status)
      Specified by:
      createErrorPage in interface org.keycloak.forms.login.LoginFormsProvider
    • createWebAuthnErrorPage

      public jakarta.ws.rs.core.Response createWebAuthnErrorPage()
      Specified by:
      createWebAuthnErrorPage in interface org.keycloak.forms.login.LoginFormsProvider
    • createOAuthGrant

      public jakarta.ws.rs.core.Response createOAuthGrant()
      Specified by:
      createOAuthGrant in interface org.keycloak.forms.login.LoginFormsProvider
    • createSelectAuthenticator

      public jakarta.ws.rs.core.Response createSelectAuthenticator()
      Specified by:
      createSelectAuthenticator in interface org.keycloak.forms.login.LoginFormsProvider
    • createOAuth2DeviceVerifyUserCodePage

      public jakarta.ws.rs.core.Response createOAuth2DeviceVerifyUserCodePage()
      Specified by:
      createOAuth2DeviceVerifyUserCodePage in interface org.keycloak.forms.login.LoginFormsProvider
    • createCode

      public jakarta.ws.rs.core.Response createCode()
      Specified by:
      createCode in interface org.keycloak.forms.login.LoginFormsProvider
    • createX509ConfirmPage

      public jakarta.ws.rs.core.Response createX509ConfirmPage()
      Specified by:
      createX509ConfirmPage in interface org.keycloak.forms.login.LoginFormsProvider
    • createSamlPostForm

      public jakarta.ws.rs.core.Response createSamlPostForm()
      Specified by:
      createSamlPostForm in interface org.keycloak.forms.login.LoginFormsProvider
    • createFrontChannelLogoutPage

      public jakarta.ws.rs.core.Response createFrontChannelLogoutPage()
      Specified by:
      createFrontChannelLogoutPage in interface org.keycloak.forms.login.LoginFormsProvider
    • createLogoutConfirmPage

      public jakarta.ws.rs.core.Response createLogoutConfirmPage()
      Specified by:
      createLogoutConfirmPage in interface org.keycloak.forms.login.LoginFormsProvider
    • setMessage

      public org.keycloak.forms.login.LoginFormsProvider setMessage(org.keycloak.forms.login.MessageType type, String message, Object... parameters)
      Specified by:
      setMessage in interface org.keycloak.forms.login.LoginFormsProvider
    • getFirstMessageUnformatted

      protected String getFirstMessageUnformatted()
    • formatMessage

      protected String formatMessage(org.keycloak.models.utils.FormMessage message)
    • 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 interface org.keycloak.forms.login.LoginFormsProvider
    • setErrors

      public org.keycloak.forms.login.LoginFormsProvider setErrors(List<org.keycloak.models.utils.FormMessage> messages)
      Specified by:
      setErrors in interface org.keycloak.forms.login.LoginFormsProvider
    • addError

      public org.keycloak.forms.login.LoginFormsProvider addError(org.keycloak.models.utils.FormMessage errorMessage)
      Specified by:
      addError in interface org.keycloak.forms.login.LoginFormsProvider
    • addSuccess

      public org.keycloak.forms.login.LoginFormsProvider addSuccess(org.keycloak.models.utils.FormMessage errorMessage)
      Specified by:
      addSuccess in interface org.keycloak.forms.login.LoginFormsProvider
    • setSuccess

      public FreeMarkerLoginFormsProvider setSuccess(String message, Object... parameters)
      Specified by:
      setSuccess in interface org.keycloak.forms.login.LoginFormsProvider
    • setInfo

      public FreeMarkerLoginFormsProvider setInfo(String message, Object... parameters)
      Specified by:
      setInfo in interface org.keycloak.forms.login.LoginFormsProvider
    • setDetachedAuthSession

      public org.keycloak.forms.login.LoginFormsProvider setDetachedAuthSession()
      Specified by:
      setDetachedAuthSession in interface org.keycloak.forms.login.LoginFormsProvider
    • setAuthenticationSession

      public org.keycloak.forms.login.LoginFormsProvider setAuthenticationSession(org.keycloak.sessions.AuthenticationSessionModel authenticationSession)
      Specified by:
      setAuthenticationSession in interface org.keycloak.forms.login.LoginFormsProvider
    • setUser

      public FreeMarkerLoginFormsProvider setUser(org.keycloak.models.UserModel user)
      Specified by:
      setUser in interface org.keycloak.forms.login.LoginFormsProvider
    • setFormData

      public FreeMarkerLoginFormsProvider setFormData(jakarta.ws.rs.core.MultivaluedMap<String,String> formData)
      Specified by:
      setFormData in interface org.keycloak.forms.login.LoginFormsProvider
    • setClientSessionCode

      public org.keycloak.forms.login.LoginFormsProvider setClientSessionCode(String accessCode)
      Specified by:
      setClientSessionCode in interface org.keycloak.forms.login.LoginFormsProvider
    • setAccessRequest

      public org.keycloak.forms.login.LoginFormsProvider setAccessRequest(List<org.keycloak.rar.AuthorizationDetails> clientScopesRequested)
      Specified by:
      setAccessRequest in interface org.keycloak.forms.login.LoginFormsProvider
    • setAttribute

      public org.keycloak.forms.login.LoginFormsProvider setAttribute(String name, Object value)
      Specified by:
      setAttribute in interface org.keycloak.forms.login.LoginFormsProvider
    • setStatus

      public org.keycloak.forms.login.LoginFormsProvider setStatus(jakarta.ws.rs.core.Response.Status status)
      Specified by:
      setStatus in interface org.keycloak.forms.login.LoginFormsProvider
    • setActionUri

      public org.keycloak.forms.login.LoginFormsProvider setActionUri(URI actionUri)
      Specified by:
      setActionUri in interface org.keycloak.forms.login.LoginFormsProvider
    • setExecution

      public org.keycloak.forms.login.LoginFormsProvider setExecution(String execution)
      Specified by:
      setExecution in interface org.keycloak.forms.login.LoginFormsProvider
    • setResponseHeader

      public org.keycloak.forms.login.LoginFormsProvider setResponseHeader(String headerName, String headerValue)
      Specified by:
      setResponseHeader in interface org.keycloak.forms.login.LoginFormsProvider
    • setAuthContext

      public org.keycloak.forms.login.LoginFormsProvider setAuthContext(org.keycloak.authentication.AuthenticationFlowContext context)
      Specified by:
      setAuthContext in interface org.keycloak.forms.login.LoginFormsProvider
    • setAttributeMapper

      public org.keycloak.forms.login.LoginFormsProvider setAttributeMapper(Function<Map<String,Object>,Map<String,Object>> mapper)
      Specified by:
      setAttributeMapper in interface org.keycloak.forms.login.LoginFormsProvider
    • close

      public void close()
      Specified by:
      close in interface org.keycloak.provider.Provider