public class FreeMarkerLoginFormsProvider extends Object implements LoginFormsProvider
Modifier and Type | Field and Description |
---|---|
protected String |
accessCode |
protected URI |
actionUri |
protected Map<String,Object> |
attributes |
protected AuthenticationSessionModel |
authenticationSession
authenticationSession can be null for some renderings, mainly error pages
|
protected ClientModel |
client |
protected List<ClientScopeModel> |
clientScopesRequested |
protected javax.ws.rs.core.MediaType |
contentType |
protected AuthenticationFlowContext |
context |
protected String |
execution |
protected javax.ws.rs.core.MultivaluedMap<String,String> |
formData |
protected FreeMarkerUtil |
freeMarker |
protected Map<String,String> |
httpResponseHeaders |
protected List<FormMessage> |
messages |
protected MessageType |
messageType |
protected RealmModel |
realm |
protected KeycloakSession |
session |
protected javax.ws.rs.core.Response.Status |
status |
protected javax.ws.rs.core.UriInfo |
uriInfo |
protected UserModel |
user |
IDENTITY_PROVIDER_BROKER_CONTEXT, REGISTRATION_DISABLED, UPDATE_PROFILE_CONTEXT_ATTR, USERNAME_EDIT_DISABLED
Constructor and Description |
---|
FreeMarkerLoginFormsProvider(KeycloakSession session,
FreeMarkerUtil freeMarker) |
Modifier and Type | Method and Description |
---|---|
LoginFormsProvider |
addError(FormMessage errorMessage) |
void |
addScript(String scriptUrl)
Adds a script to the html header
|
LoginFormsProvider |
addSuccess(FormMessage errorMessage)
Add a success message to the form
|
void |
close() |
javax.ws.rs.core.Response |
createCode() |
protected void |
createCommonAttributes(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.Response |
createErrorPage(javax.ws.rs.core.Response.Status status) |
javax.ws.rs.core.Response |
createForm(String form) |
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 |
createLoginTotp() |
javax.ws.rs.core.Response |
createLoginUsername() |
javax.ws.rs.core.Response |
createLoginUsernamePassword() |
javax.ws.rs.core.Response |
createLoginWebAuthn() |
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(LoginFormsPages page) |
javax.ws.rs.core.Response |
createResponse(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(FormMessage message,
Properties messagesBundle,
Locale locale) |
protected String |
getFirstMessageUnformatted() |
String |
getMessage(String message) |
String |
getMessage(String message,
String... parameters) |
protected 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 attributes
|
protected Properties |
handleThemeResources(Theme theme,
Locale locale)
Load message bundle and place it into
msg template attribute. |
protected javax.ws.rs.core.UriBuilder |
prepareBaseUriBuilder(boolean resetRequestUriParams)
Prepare base uri builder for later use
|
protected javax.ws.rs.core.Response |
processTemplate(Theme theme,
String templateName,
Locale locale)
Process FreeMarker template and prepare Response.
|
LoginFormsProvider |
setAccessRequest(List<ClientScopeModel> clientScopesRequested) |
LoginFormsProvider |
setActionUri(URI actionUri) |
LoginFormsProvider |
setAttribute(String name,
Object value) |
LoginFormsProvider |
setAuthContext(AuthenticationFlowContext context) |
LoginFormsProvider |
setAuthenticationSession(AuthenticationSessionModel authenticationSession) |
LoginFormsProvider |
setClientSessionCode(String accessCode) |
FreeMarkerLoginFormsProvider |
setError(String message,
Object... parameters)
Set one global error message.
|
LoginFormsProvider |
setErrors(List<FormMessage> messages)
Set multiple error messages.
|
LoginFormsProvider |
setExecution(String execution) |
FreeMarkerLoginFormsProvider |
setFormData(javax.ws.rs.core.MultivaluedMap<String,String> formData) |
FreeMarkerLoginFormsProvider |
setInfo(String message,
Object... parameters) |
LoginFormsProvider |
setMediaType(javax.ws.rs.core.MediaType type) |
protected void |
setMessage(MessageType type,
String message,
Object... parameters) |
LoginFormsProvider |
setResponseHeader(String headerName,
String headerValue) |
LoginFormsProvider |
setStatus(javax.ws.rs.core.Response.Status status) |
FreeMarkerLoginFormsProvider |
setSuccess(String message,
Object... parameters) |
FreeMarkerLoginFormsProvider |
setUser(UserModel user) |
protected String accessCode
protected javax.ws.rs.core.Response.Status status
protected javax.ws.rs.core.MediaType contentType
protected List<ClientScopeModel> clientScopesRequested
protected URI actionUri
protected String execution
protected AuthenticationFlowContext context
protected List<FormMessage> messages
protected MessageType messageType
protected KeycloakSession session
protected AuthenticationSessionModel authenticationSession
protected RealmModel realm
protected ClientModel client
protected javax.ws.rs.core.UriInfo uriInfo
protected FreeMarkerUtil freeMarker
protected UserModel user
public FreeMarkerLoginFormsProvider(KeycloakSession session, FreeMarkerUtil freeMarker)
public void addScript(String scriptUrl)
LoginFormsProvider
addScript
in interface LoginFormsProvider
public javax.ws.rs.core.Response createResponse(UserModel.RequiredAction action)
createResponse
in interface LoginFormsProvider
protected javax.ws.rs.core.Response createResponse(LoginFormsPages page)
public javax.ws.rs.core.Response createForm(String form)
createForm
in interface LoginFormsProvider
protected javax.ws.rs.core.UriBuilder prepareBaseUriBuilder(boolean resetRequestUriParams)
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 pagesprotected Theme getTheme() throws IOException
IOException
- in case of Theme loading problemprotected Properties handleThemeResources(Theme theme, Locale locale)
msg
template attribute. Also load Theme properties and place them into properties
template attribute.theme
- actual Theme to load bundle fromlocale
- to load bundle forprotected void handleMessages(Locale locale, Properties messagesBundle)
locale
- to be used for message text loadingmessagesBundle
- to be used for message text loadingmessageType
,
messages
public String getMessage(String message)
getMessage
in interface LoginFormsProvider
public String getMessage(String message, String... parameters)
getMessage
in interface LoginFormsProvider
protected void createCommonAttributes(Theme theme, Locale locale, Properties messagesBundle, javax.ws.rs.core.UriBuilder baseUriBuilder, LoginFormsPages page)
theme
- actual Theme used (provided by getTheme()
)locale
- actual localemessagesBundle
- 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()
protected javax.ws.rs.core.Response processTemplate(Theme theme, String templateName, Locale locale)
theme
- to be used (provided by getTheme()
)templateName
- name of the template to be renderedlocale
- to be usedpublic javax.ws.rs.core.Response createLoginUsernamePassword()
createLoginUsernamePassword
in interface LoginFormsProvider
public javax.ws.rs.core.Response createLoginUsername()
createLoginUsername
in interface LoginFormsProvider
public javax.ws.rs.core.Response createLoginPassword()
createLoginPassword
in interface LoginFormsProvider
public javax.ws.rs.core.Response createPasswordReset()
createPasswordReset
in interface LoginFormsProvider
public javax.ws.rs.core.Response createLoginTotp()
createLoginTotp
in interface LoginFormsProvider
public javax.ws.rs.core.Response createLoginWebAuthn()
createLoginWebAuthn
in interface LoginFormsProvider
public javax.ws.rs.core.Response createRegistration()
createRegistration
in interface LoginFormsProvider
public javax.ws.rs.core.Response createInfoPage()
createInfoPage
in interface LoginFormsProvider
public javax.ws.rs.core.Response createUpdateProfilePage()
createUpdateProfilePage
in interface LoginFormsProvider
public javax.ws.rs.core.Response createIdpLinkConfirmLinkPage()
createIdpLinkConfirmLinkPage
in interface LoginFormsProvider
public javax.ws.rs.core.Response createLoginExpiredPage()
createLoginExpiredPage
in interface LoginFormsProvider
public javax.ws.rs.core.Response createIdpLinkEmailPage()
createIdpLinkEmailPage
in interface LoginFormsProvider
public javax.ws.rs.core.Response createErrorPage(javax.ws.rs.core.Response.Status status)
createErrorPage
in interface LoginFormsProvider
public javax.ws.rs.core.Response createWebAuthnErrorPage()
createWebAuthnErrorPage
in interface LoginFormsProvider
public javax.ws.rs.core.Response createOAuthGrant()
createOAuthGrant
in interface LoginFormsProvider
public javax.ws.rs.core.Response createSelectAuthenticator()
createSelectAuthenticator
in interface LoginFormsProvider
public javax.ws.rs.core.Response createOAuth2DeviceVerifyUserCodePage()
createOAuth2DeviceVerifyUserCodePage
in interface LoginFormsProvider
public javax.ws.rs.core.Response createCode()
createCode
in interface LoginFormsProvider
public javax.ws.rs.core.Response createX509ConfirmPage()
createX509ConfirmPage
in interface LoginFormsProvider
public javax.ws.rs.core.Response createSamlPostForm()
createSamlPostForm
in interface LoginFormsProvider
protected void setMessage(MessageType type, String message, Object... parameters)
protected String getFirstMessageUnformatted()
protected String formatMessage(FormMessage message, Properties messagesBundle, Locale locale)
public FreeMarkerLoginFormsProvider setError(String message, Object... parameters)
LoginFormsProvider
setError
in interface LoginFormsProvider
message
- key of messageparameters
- to be formatted into messagepublic LoginFormsProvider setErrors(List<FormMessage> messages)
LoginFormsProvider
setErrors
in interface LoginFormsProvider
messages
- to be setpublic LoginFormsProvider addError(FormMessage errorMessage)
addError
in interface LoginFormsProvider
public LoginFormsProvider addSuccess(FormMessage errorMessage)
LoginFormsProvider
addSuccess
in interface LoginFormsProvider
public FreeMarkerLoginFormsProvider setSuccess(String message, Object... parameters)
setSuccess
in interface LoginFormsProvider
public FreeMarkerLoginFormsProvider setInfo(String message, Object... parameters)
setInfo
in interface LoginFormsProvider
public LoginFormsProvider setAuthenticationSession(AuthenticationSessionModel authenticationSession)
setAuthenticationSession
in interface LoginFormsProvider
public FreeMarkerLoginFormsProvider setUser(UserModel user)
setUser
in interface LoginFormsProvider
public FreeMarkerLoginFormsProvider setFormData(javax.ws.rs.core.MultivaluedMap<String,String> formData)
setFormData
in interface LoginFormsProvider
public LoginFormsProvider setClientSessionCode(String accessCode)
setClientSessionCode
in interface LoginFormsProvider
public LoginFormsProvider setAccessRequest(List<ClientScopeModel> clientScopesRequested)
setAccessRequest
in interface LoginFormsProvider
public LoginFormsProvider setAttribute(String name, Object value)
setAttribute
in interface LoginFormsProvider
public LoginFormsProvider setStatus(javax.ws.rs.core.Response.Status status)
setStatus
in interface LoginFormsProvider
public LoginFormsProvider setMediaType(javax.ws.rs.core.MediaType type)
setMediaType
in interface LoginFormsProvider
public LoginFormsProvider setActionUri(URI actionUri)
setActionUri
in interface LoginFormsProvider
public LoginFormsProvider setExecution(String execution)
setExecution
in interface LoginFormsProvider
public LoginFormsProvider setResponseHeader(String headerName, String headerValue)
setResponseHeader
in interface LoginFormsProvider
public LoginFormsProvider setAuthContext(AuthenticationFlowContext context)
setAuthContext
in interface LoginFormsProvider
Copyright © 2021 JBoss by Red Hat. All rights reserved.