Package org.keycloak.email.freemarker
Class FreeMarkerEmailTemplateProvider
- java.lang.Object
-
- org.keycloak.email.freemarker.FreeMarkerEmailTemplateProvider
-
- All Implemented Interfaces:
EmailTemplateProvider
,Provider
public class FreeMarkerEmailTemplateProvider extends Object implements EmailTemplateProvider
- Author:
- Stian Thorgersen
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
FreeMarkerEmailTemplateProvider.EmailTemplate
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,Object>
attributes
protected AuthenticationSessionModel
authenticationSession
authenticationSession 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 FreeMarkerProvider
freeMarker
protected RealmModel
realm
protected KeycloakSession
session
protected UserModel
user
-
Fields inherited from interface org.keycloak.email.EmailTemplateProvider
IDENTITY_PROVIDER_BROKER_CONTEXT
-
-
Constructor Summary
Constructors Constructor Description FreeMarkerEmailTemplateProvider(KeycloakSession session)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addLinkInfoIntoAttributes(String link, long expirationInMinutes, Map<String,Object> attributes)
Add link info into template attributes.void
close()
protected String
getRealmName()
protected Theme
getTheme()
protected FreeMarkerEmailTemplateProvider.EmailTemplate
processTemplate(String subjectKey, List<Object> subjectAttributes, String template, Map<String,Object> attributes)
protected void
send(String subject, String textBody, String htmlBody, String address)
void
send(String subjectFormatKey, String bodyTemplate, Map<String,Object> bodyAttributes)
Send formatted emailvoid
send(String subjectFormatKey, List<Object> subjectAttributes, String bodyTemplate, Map<String,Object> bodyAttributes)
Send formatted emailprotected void
send(String subjectFormatKey, List<Object> subjectAttributes, String bodyTemplate, Map<String,Object> bodyAttributes, String address)
protected void
send(Map<String,String> config, String subject, String textBody, String htmlBody)
protected void
send(Map<String,String> config, String subject, String textBody, String htmlBody, String address)
void
sendConfirmIdentityBrokerLink(String link, long expirationInMinutes)
Send to confirm that user wants to link his account with identity broker linkvoid
sendEmailUpdateConfirmation(String link, long expirationInMinutes, String newEmail)
void
sendEvent(Event event)
void
sendExecuteActions(String link, long expirationInMinutes)
Change password email requested by adminvoid
sendPasswordReset(String link, long expirationInMinutes)
Reset password sent from forgot password link on loginvoid
sendSmtpTestEmail(Map<String,String> config, UserModel user)
Test SMTP connection with current logged in uservoid
sendVerifyEmail(String link, long expirationInMinutes)
EmailTemplateProvider
setAttribute(String name, Object value)
EmailTemplateProvider
setAuthenticationSession(AuthenticationSessionModel authenticationSession)
EmailTemplateProvider
setRealm(RealmModel realm)
EmailTemplateProvider
setUser(UserModel user)
protected String
toCamelCase(EventType event)
-
-
-
Field Detail
-
session
protected KeycloakSession session
-
authenticationSession
protected AuthenticationSessionModel authenticationSession
authenticationSession 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
protected FreeMarkerProvider freeMarker
-
realm
protected RealmModel realm
-
user
protected UserModel user
-
-
Constructor Detail
-
FreeMarkerEmailTemplateProvider
public FreeMarkerEmailTemplateProvider(KeycloakSession session)
-
-
Method Detail
-
setRealm
public EmailTemplateProvider setRealm(RealmModel realm)
- Specified by:
setRealm
in interfaceEmailTemplateProvider
-
setUser
public EmailTemplateProvider setUser(UserModel user)
- Specified by:
setUser
in interfaceEmailTemplateProvider
-
setAttribute
public EmailTemplateProvider setAttribute(String name, Object value)
- Specified by:
setAttribute
in interfaceEmailTemplateProvider
-
setAuthenticationSession
public EmailTemplateProvider setAuthenticationSession(AuthenticationSessionModel authenticationSession)
- Specified by:
setAuthenticationSession
in interfaceEmailTemplateProvider
-
getRealmName
protected String getRealmName()
-
sendEvent
public void sendEvent(Event event) throws EmailException
- Specified by:
sendEvent
in interfaceEmailTemplateProvider
- Throws:
EmailException
-
sendPasswordReset
public void sendPasswordReset(String link, long expirationInMinutes) throws EmailException
Description copied from interface:EmailTemplateProvider
Reset password sent from forgot password link on login- Specified by:
sendPasswordReset
in interfaceEmailTemplateProvider
- Throws:
EmailException
-
sendSmtpTestEmail
public void sendSmtpTestEmail(Map<String,String> config, UserModel user) throws EmailException
Description copied from interface:EmailTemplateProvider
Test SMTP connection with current logged in user- Specified by:
sendSmtpTestEmail
in interfaceEmailTemplateProvider
- Parameters:
config
- SMTP server configurationuser
- SMTP recipient- Throws:
EmailException
-
sendConfirmIdentityBrokerLink
public void sendConfirmIdentityBrokerLink(String link, long expirationInMinutes) throws EmailException
Description copied from interface:EmailTemplateProvider
Send to confirm that user wants to link his account with identity broker link- Specified by:
sendConfirmIdentityBrokerLink
in interfaceEmailTemplateProvider
- Throws:
EmailException
-
sendExecuteActions
public void sendExecuteActions(String link, long expirationInMinutes) throws EmailException
Description copied from interface:EmailTemplateProvider
Change password email requested by admin- Specified by:
sendExecuteActions
in interfaceEmailTemplateProvider
- Throws:
EmailException
-
sendVerifyEmail
public void sendVerifyEmail(String link, long expirationInMinutes) throws EmailException
- Specified by:
sendVerifyEmail
in interfaceEmailTemplateProvider
- Throws:
EmailException
-
sendEmailUpdateConfirmation
public void sendEmailUpdateConfirmation(String link, long expirationInMinutes, String newEmail) throws EmailException
- Specified by:
sendEmailUpdateConfirmation
in interfaceEmailTemplateProvider
- Throws:
EmailException
-
addLinkInfoIntoAttributes
protected void addLinkInfoIntoAttributes(String link, long expirationInMinutes, Map<String,Object> attributes) throws EmailException
Add link info into template attributes.- Parameters:
link
- to addexpirationInMinutes
- to addattributes
- to add link info into- Throws:
EmailException
-
send
public void send(String subjectFormatKey, String bodyTemplate, Map<String,Object> bodyAttributes) throws EmailException
Description copied from interface:EmailTemplateProvider
Send formatted email- Specified by:
send
in interfaceEmailTemplateProvider
- Parameters:
subjectFormatKey
- message property that will be used to format email subjectbodyTemplate
- freemarker template filebodyAttributes
- attributes used to fill template- Throws:
EmailException
-
processTemplate
protected FreeMarkerEmailTemplateProvider.EmailTemplate processTemplate(String subjectKey, List<Object> subjectAttributes, String template, Map<String,Object> attributes) throws EmailException
- Throws:
EmailException
-
getTheme
protected Theme getTheme() throws IOException
- Throws:
IOException
-
send
public void send(String subjectFormatKey, List<Object> subjectAttributes, String bodyTemplate, Map<String,Object> bodyAttributes) throws EmailException
Description copied from interface:EmailTemplateProvider
Send formatted email- Specified by:
send
in interfaceEmailTemplateProvider
- Parameters:
subjectFormatKey
- message property that will be used to format email subjectsubjectAttributes
- attributes used to fill subject format messagebodyTemplate
- freemarker template filebodyAttributes
- attributes used to fill template- Throws:
EmailException
-
send
protected void send(String subjectFormatKey, List<Object> subjectAttributes, String bodyTemplate, Map<String,Object> bodyAttributes, String address) throws EmailException
- Throws:
EmailException
-
send
protected void send(String subject, String textBody, String htmlBody, String address) throws EmailException
- Throws:
EmailException
-
send
protected void send(Map<String,String> config, String subject, String textBody, String htmlBody) throws EmailException
- Throws:
EmailException
-
send
protected void send(Map<String,String> config, String subject, String textBody, String htmlBody, String address) throws EmailException
- Throws:
EmailException
-
-