Package org.keycloak.email.freemarker
Class FreeMarkerEmailTemplateProvider
java.lang.Object
org.keycloak.email.freemarker.FreeMarkerEmailTemplateProvider
- All Implemented Interfaces:
- EmailTemplateProvider,- Provider
- Author:
- Stian Thorgersen
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionprotected static class
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected AuthenticationSessionModelauthenticationSession can be null for some email sendings, it is filled only for email sendings performed as part of the authentication session (email verification, password reset, broker link etc.)!protected FreeMarkerProviderprotected RealmModelprotected KeycloakSessionprotected UserModelFields inherited from interface org.keycloak.email.EmailTemplateProviderIDENTITY_PROVIDER_BROKER_CONTEXT
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidaddLinkInfoIntoAttributes(String link, long expirationInMinutes, Map<String, Object> attributes) Add link info into template attributes.voidclose()protected Stringprotected ThemegetTheme()processTemplate(String subjectKey, List<Object> subjectAttributes, String template, Map<String, Object> attributes) protected voidvoidSend formatted emailvoidsend(String subjectFormatKey, List<Object> subjectAttributes, String bodyTemplate, Map<String, Object> bodyAttributes) Send formatted emailprotected voidsend(String subjectFormatKey, List<Object> subjectAttributes, String bodyTemplate, Map<String, Object> bodyAttributes, String address) protected voidprotected voidvoidsendConfirmIdentityBrokerLink(String link, long expirationInMinutes) Send to confirm that user wants to link his account with identity broker linkvoidsendEmailUpdateConfirmation(String link, long expirationInMinutes, String newEmail) voidvoidsendExecuteActions(String link, long expirationInMinutes) Change password email requested by adminvoidsendOrgInviteEmail(OrganizationModel organization, String link, long expirationInMinutes) voidsendPasswordReset(String link, long expirationInMinutes) Reset password sent from forgot password link on loginvoidsendSmtpTestEmail(Map<String, String> config, UserModel user) Test SMTP connection with current logged in uservoidsendVerifyEmail(String link, long expirationInMinutes) setAttribute(String name, Object value) setAuthenticationSession(AuthenticationSessionModel authenticationSession) setRealm(RealmModel realm) protected StringtoCamelCase(EventType event) 
- 
Field Details- 
session
- 
authenticationSessionauthenticationSession can be null for some email sendings, it is filled only for email sendings performed as part of the authentication session (email verification, password reset, broker link etc.)!
- 
freeMarker
- 
realm
- 
user
- 
attributes
 
- 
- 
Constructor Details- 
FreeMarkerEmailTemplateProvider
 
- 
- 
Method Details- 
setRealm- Specified by:
- setRealmin interface- EmailTemplateProvider
 
- 
setUser- Specified by:
- setUserin interface- EmailTemplateProvider
 
- 
setAttribute- Specified by:
- setAttributein interface- EmailTemplateProvider
 
- 
setAuthenticationSessionpublic EmailTemplateProvider setAuthenticationSession(AuthenticationSessionModel authenticationSession) - Specified by:
- setAuthenticationSessionin interface- EmailTemplateProvider
 
- 
getRealmName
- 
sendEvent- Specified by:
- sendEventin interface- EmailTemplateProvider
- Throws:
- EmailException
 
- 
sendPasswordResetDescription copied from interface:EmailTemplateProviderReset password sent from forgot password link on login- Specified by:
- sendPasswordResetin interface- EmailTemplateProvider
- Throws:
- EmailException
 
- 
sendSmtpTestEmailDescription copied from interface:EmailTemplateProviderTest SMTP connection with current logged in user- Specified by:
- sendSmtpTestEmailin interface- EmailTemplateProvider
- Parameters:
- config- SMTP server configuration
- user- SMTP recipient
- Throws:
- EmailException
 
- 
sendConfirmIdentityBrokerLinkpublic void sendConfirmIdentityBrokerLink(String link, long expirationInMinutes) throws EmailException Description copied from interface:EmailTemplateProviderSend to confirm that user wants to link his account with identity broker link- Specified by:
- sendConfirmIdentityBrokerLinkin interface- EmailTemplateProvider
- Throws:
- EmailException
 
- 
sendExecuteActionsDescription copied from interface:EmailTemplateProviderChange password email requested by admin- Specified by:
- sendExecuteActionsin interface- EmailTemplateProvider
- Throws:
- EmailException
 
- 
sendVerifyEmail- Specified by:
- sendVerifyEmailin interface- EmailTemplateProvider
- Throws:
- EmailException
 
- 
sendOrgInviteEmailpublic void sendOrgInviteEmail(OrganizationModel organization, String link, long expirationInMinutes) throws EmailException - Specified by:
- sendOrgInviteEmailin interface- EmailTemplateProvider
- Throws:
- EmailException
 
- 
sendEmailUpdateConfirmationpublic void sendEmailUpdateConfirmation(String link, long expirationInMinutes, String newEmail) throws EmailException - Specified by:
- sendEmailUpdateConfirmationin interface- EmailTemplateProvider
- Throws:
- EmailException
 
- 
addLinkInfoIntoAttributesprotected void addLinkInfoIntoAttributes(String link, long expirationInMinutes, Map<String, Object> attributes) throws EmailExceptionAdd link info into template attributes.- Parameters:
- link- to add
- expirationInMinutes- to add
- attributes- to add link info into
- Throws:
- EmailException
 
- 
sendpublic void send(String subjectFormatKey, String bodyTemplate, Map<String, Object> bodyAttributes) throws EmailExceptionDescription copied from interface:EmailTemplateProviderSend formatted email- Specified by:
- sendin interface- EmailTemplateProvider
- Parameters:
- subjectFormatKey- message property that will be used to format email subject
- bodyTemplate- freemarker template file
- bodyAttributes- attributes used to fill template
- Throws:
- EmailException
 
- 
processTemplateprotected FreeMarkerEmailTemplateProvider.EmailTemplate processTemplate(String subjectKey, List<Object> subjectAttributes, String template, Map<String, Object> attributes) throws EmailException- Throws:
- EmailException
 
- 
getTheme- Throws:
- IOException
 
- 
sendpublic void send(String subjectFormatKey, List<Object> subjectAttributes, String bodyTemplate, Map<String, Object> bodyAttributes) throws EmailExceptionDescription copied from interface:EmailTemplateProviderSend formatted email- Specified by:
- sendin interface- EmailTemplateProvider
- Parameters:
- subjectFormatKey- message property that will be used to format email subject
- subjectAttributes- attributes used to fill subject format message
- bodyTemplate- freemarker template file
- bodyAttributes- attributes used to fill template
- Throws:
- EmailException
 
- 
sendprotected void send(String subjectFormatKey, List<Object> subjectAttributes, String bodyTemplate, Map<String, Object> bodyAttributes, String address) throws EmailException- Throws:
- EmailException
 
- 
sendprotected void send(String subject, String textBody, String htmlBody, String address) throws EmailException - Throws:
- EmailException
 
- 
sendprotected void send(Map<String, String> config, String subject, String textBody, String htmlBody) throws EmailException- Throws:
- EmailException
 
- 
sendprotected void send(Map<String, String> config, String subject, String textBody, String htmlBody, String address) throws EmailException- Throws:
- EmailException
 
- 
closepublic void close()
- 
toCamelCase
 
-