mirror of
https://github.com/keycloak/keycloak.git
synced 2026-01-10 15:32:05 -03:30
Fixes to e-mail templates
Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
This commit is contained in:
parent
5a05d2123e
commit
60b29daed2
@ -231,8 +231,14 @@ public class FreeMarkerEmailTemplateProvider implements EmailTemplateProvider {
|
||||
attributes.put("properties", theme.getProperties());
|
||||
attributes.put("realmName", getRealmName());
|
||||
attributes.put("user", new ProfileBean(user, session));
|
||||
KeycloakUriInfo uriInfo = session.getContext().getUri();
|
||||
attributes.put("url", new UrlBean(realm, theme, uriInfo.getBaseUri(), null));
|
||||
|
||||
try {
|
||||
KeycloakUriInfo uriInfo = session.getContext().getUri();
|
||||
attributes.put("url", new UrlBean(realm, theme, uriInfo.getBaseUri(), null));
|
||||
} catch (Exception e) {
|
||||
// ignore when running without an active request context such as sending emails from an scheduled task
|
||||
// TODO: make it possible to make the URL available to email templates based on the hostname configured in the realm or at the server level
|
||||
}
|
||||
|
||||
String subject = new MessageFormat(messages.getProperty(subjectKey, subjectKey), locale).format(subjectAttributes.toArray());
|
||||
String textTemplate = String.format("text/%s", template);
|
||||
|
||||
@ -48,7 +48,14 @@ public class DefaultLocaleSelectorProvider implements LocaleSelectorProvider {
|
||||
|
||||
@Override
|
||||
public Locale resolveLocale(RealmModel realm, UserModel user, boolean ignoreAcceptLanguageHeader) {
|
||||
HttpHeaders requestHeaders = session.getContext().getRequestHeaders();
|
||||
HttpHeaders requestHeaders = null;
|
||||
|
||||
try {
|
||||
requestHeaders = session.getContext().getRequestHeaders();
|
||||
} catch (Exception e) {
|
||||
logger.debug("Could not obtain request headers from the context", e);
|
||||
}
|
||||
|
||||
AuthenticationSessionModel session = this.session.getContext().getAuthenticationSession();
|
||||
|
||||
if (!realm.isInternationalizationEnabled()) {
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package org.keycloak.models.policy;
|
||||
|
||||
import org.jboss.logging.Logger;
|
||||
import org.keycloak.models.KeycloakContext;
|
||||
import org.keycloak.models.KeycloakSession;
|
||||
import org.keycloak.models.KeycloakSessionFactory;
|
||||
@ -12,6 +13,8 @@ import org.keycloak.timer.ScheduledTask;
|
||||
*/
|
||||
final class ResourceActionRunnerScheduledTask implements ScheduledTask {
|
||||
|
||||
private final Logger logger = Logger.getLogger(ResourceActionRunnerScheduledTask.class);
|
||||
|
||||
private final KeycloakSessionFactory sessionFactory;
|
||||
|
||||
ResourceActionRunnerScheduledTask(KeycloakSessionFactory sessionFactory) {
|
||||
@ -27,13 +30,17 @@ final class ResourceActionRunnerScheduledTask implements ScheduledTask {
|
||||
|
||||
private void runScheduledTasksOnRealm(String id) {
|
||||
KeycloakModelUtils.runJobInTransaction(sessionFactory, (KeycloakSession session) -> {
|
||||
KeycloakContext context = session.getContext();
|
||||
RealmModel realm = session.realms().getRealm(id);
|
||||
try {
|
||||
KeycloakContext context = session.getContext();
|
||||
RealmModel realm = session.realms().getRealm(id);
|
||||
|
||||
context.setRealm(realm);
|
||||
new ResourcePolicyManager(session).runScheduledActions();
|
||||
context.setRealm(realm);
|
||||
new ResourcePolicyManager(session).runScheduledActions();
|
||||
|
||||
sessionFactory.publish(new ResourcePolicyActionRunnerSuccessEvent(session));
|
||||
sessionFactory.publish(new ResourcePolicyActionRunnerSuccessEvent(session));
|
||||
} catch (Exception e) {
|
||||
logger.errorf(e, "Failed to run resource policy actions on realm with id '%s'", id);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user