Class FreeMarkerAccountProvider
- java.lang.Object
-
- org.keycloak.forms.account.freemarker.FreeMarkerAccountProvider
-
- All Implemented Interfaces:
AccountProvider,Provider
public class FreeMarkerAccountProvider extends Object implements AccountProvider
- Author:
- Stian Thorgersen
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,Object>attributesprotected List<Event>eventsprotected booleaneventsEnabledprotected FreeMarkerProviderfreeMarkerprotected javax.ws.rs.core.HttpHeadersheadersprotected booleanidentityProviderEnabledprotected StringidTokenHintprotected List<FormMessage>messagesprotected MessageTypemessageTypeprotected booleanpasswordSetprotected booleanpasswordUpdateSupportedprotected javax.ws.rs.core.MultivaluedMap<String,String>profileFormDataprotected RealmModelrealmprotected String[]referrerprotected KeycloakSessionsessionprotected List<UserSessionModel>sessionsprotected StringstateCheckerprotected javax.ws.rs.core.Response.Statusstatusprotected javax.ws.rs.core.UriInfouriInfoprotected UserModeluser
-
Constructor Summary
Constructors Constructor Description FreeMarkerAccountProvider(KeycloakSession session)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()javax.ws.rs.core.ResponsecreateResponse(AccountPages page)protected StringformatMessage(FormMessage message, Properties messagesBundle, Locale locale)protected ThemegetTheme()Get Theme used for page rendering.protected voidhandleMessages(Locale locale, Properties messagesBundle, Map<String,Object> attributes)Handle messages to be shown on the page - set them to template attributesprotected PropertieshandleThemeResources(Theme theme, Locale locale, Map<String,Object> attributes)Load message bundle and place it intomsgtemplate attribute.protected javax.ws.rs.core.ResponseprocessTemplate(Theme theme, AccountPages page, Map<String,Object> attributes, Locale locale)Process FreeMarker template and prepare Response.AccountProvidersetAttribute(String key, String value)AccountProvidersetError(javax.ws.rs.core.Response.Status status, String message, Object... parameters)AccountProvidersetErrors(javax.ws.rs.core.Response.Status status, List<FormMessage> messages)AccountProvidersetEvents(List<Event> events)AccountProvidersetFeatures(boolean identityProviderEnabled, boolean eventsEnabled, boolean passwordUpdateSupported, boolean authorizationSupported)AccountProvidersetHttpHeaders(javax.ws.rs.core.HttpHeaders httpHeaders)AccountProvidersetIdTokenHint(String idTokenHint)protected voidsetMessage(MessageType type, String message, Object... parameters)AccountProvidersetPasswordSet(boolean passwordSet)AccountProvidersetProfileFormData(javax.ws.rs.core.MultivaluedMap<String,String> formData)AccountProvidersetRealm(RealmModel realm)AccountProvidersetReferrer(String[] referrer)AccountProvidersetSessions(List<UserSessionModel> sessions)AccountProvidersetStateChecker(String stateChecker)AccountProvidersetSuccess(String message, Object... parameters)AccountProvidersetUriInfo(javax.ws.rs.core.UriInfo uriInfo)AccountProvidersetUser(UserModel user)AccountProvidersetWarning(String message, Object... parameters)
-
-
-
Field Detail
-
user
protected UserModel user
-
status
protected javax.ws.rs.core.Response.Status status
-
realm
protected RealmModel realm
-
referrer
protected String[] referrer
-
stateChecker
protected String stateChecker
-
idTokenHint
protected String idTokenHint
-
sessions
protected List<UserSessionModel> sessions
-
identityProviderEnabled
protected boolean identityProviderEnabled
-
eventsEnabled
protected boolean eventsEnabled
-
passwordUpdateSupported
protected boolean passwordUpdateSupported
-
passwordSet
protected boolean passwordSet
-
session
protected KeycloakSession session
-
freeMarker
protected FreeMarkerProvider freeMarker
-
headers
protected javax.ws.rs.core.HttpHeaders headers
-
uriInfo
protected javax.ws.rs.core.UriInfo uriInfo
-
messages
protected List<FormMessage> messages
-
messageType
protected MessageType messageType
-
-
Constructor Detail
-
FreeMarkerAccountProvider
public FreeMarkerAccountProvider(KeycloakSession session)
-
-
Method Detail
-
setUriInfo
public AccountProvider setUriInfo(javax.ws.rs.core.UriInfo uriInfo)
- Specified by:
setUriInfoin interfaceAccountProvider
-
setHttpHeaders
public AccountProvider setHttpHeaders(javax.ws.rs.core.HttpHeaders httpHeaders)
- Specified by:
setHttpHeadersin interfaceAccountProvider
-
createResponse
public javax.ws.rs.core.Response createResponse(AccountPages page)
- Specified by:
createResponsein interfaceAccountProvider
-
getTheme
protected 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(Theme theme, Locale locale, Map<String,Object> attributes)
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 forattributes- template attributes to add resources to- Returns:
- message bundle for other use
-
handleMessages
protected void handleMessages(Locale locale, Properties messagesBundle, Map<String,Object> attributes)
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 loadingattributes- template attributes to messages related info to- See Also:
messageType,messages
-
processTemplate
protected javax.ws.rs.core.Response processTemplate(Theme theme, AccountPages page, Map<String,Object> attributes, Locale locale)
Process FreeMarker template and prepare Response. Some fields are used for rendering also.- Parameters:
theme- to be used (provided bygetTheme())page- to be renderedattributes- pushed to the templatelocale- to be used- Returns:
- Response object to be returned to the browser, never null
-
setPasswordSet
public AccountProvider setPasswordSet(boolean passwordSet)
- Specified by:
setPasswordSetin interfaceAccountProvider
-
setMessage
protected void setMessage(MessageType type, String message, Object... parameters)
-
formatMessage
protected String formatMessage(FormMessage message, Properties messagesBundle, Locale locale)
-
setErrors
public AccountProvider setErrors(javax.ws.rs.core.Response.Status status, List<FormMessage> messages)
- Specified by:
setErrorsin interfaceAccountProvider
-
setError
public AccountProvider setError(javax.ws.rs.core.Response.Status status, String message, Object... parameters)
- Specified by:
setErrorin interfaceAccountProvider
-
setSuccess
public AccountProvider setSuccess(String message, Object... parameters)
- Specified by:
setSuccessin interfaceAccountProvider
-
setWarning
public AccountProvider setWarning(String message, Object... parameters)
- Specified by:
setWarningin interfaceAccountProvider
-
setUser
public AccountProvider setUser(UserModel user)
- Specified by:
setUserin interfaceAccountProvider
-
setProfileFormData
public AccountProvider setProfileFormData(javax.ws.rs.core.MultivaluedMap<String,String> formData)
- Specified by:
setProfileFormDatain interfaceAccountProvider
-
setRealm
public AccountProvider setRealm(RealmModel realm)
- Specified by:
setRealmin interfaceAccountProvider
-
setReferrer
public AccountProvider setReferrer(String[] referrer)
- Specified by:
setReferrerin interfaceAccountProvider
-
setEvents
public AccountProvider setEvents(List<Event> events)
- Specified by:
setEventsin interfaceAccountProvider
-
setSessions
public AccountProvider setSessions(List<UserSessionModel> sessions)
- Specified by:
setSessionsin interfaceAccountProvider
-
setStateChecker
public AccountProvider setStateChecker(String stateChecker)
- Specified by:
setStateCheckerin interfaceAccountProvider
-
setIdTokenHint
public AccountProvider setIdTokenHint(String idTokenHint)
- Specified by:
setIdTokenHintin interfaceAccountProvider
-
setFeatures
public AccountProvider setFeatures(boolean identityProviderEnabled, boolean eventsEnabled, boolean passwordUpdateSupported, boolean authorizationSupported)
- Specified by:
setFeaturesin interfaceAccountProvider
-
setAttribute
public AccountProvider setAttribute(String key, String value)
- Specified by:
setAttributein interfaceAccountProvider
-
-