Skip to content

Commit 60b29da

Browse files
sguilhenpedroigor
authored andcommitted
Fixes to e-mail templates
Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
1 parent 5a05d21 commit 60b29da

File tree

3 files changed

+28
-8
lines changed

3 files changed

+28
-8
lines changed

services/src/main/java/org/keycloak/email/freemarker/FreeMarkerEmailTemplateProvider.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,8 +231,14 @@ protected EmailTemplate processTemplate(String subjectKey, List<Object> subjectA
231231
attributes.put("properties", theme.getProperties());
232232
attributes.put("realmName", getRealmName());
233233
attributes.put("user", new ProfileBean(user, session));
234-
KeycloakUriInfo uriInfo = session.getContext().getUri();
235-
attributes.put("url", new UrlBean(realm, theme, uriInfo.getBaseUri(), null));
234+
235+
try {
236+
KeycloakUriInfo uriInfo = session.getContext().getUri();
237+
attributes.put("url", new UrlBean(realm, theme, uriInfo.getBaseUri(), null));
238+
} catch (Exception e) {
239+
// ignore when running without an active request context such as sending emails from an scheduled task
240+
// 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
241+
}
236242

237243
String subject = new MessageFormat(messages.getProperty(subjectKey, subjectKey), locale).format(subjectAttributes.toArray());
238244
String textTemplate = String.format("text/%s", template);

services/src/main/java/org/keycloak/locale/DefaultLocaleSelectorProvider.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,14 @@ public Locale resolveLocale(RealmModel realm, UserModel user) {
4848

4949
@Override
5050
public Locale resolveLocale(RealmModel realm, UserModel user, boolean ignoreAcceptLanguageHeader) {
51-
HttpHeaders requestHeaders = session.getContext().getRequestHeaders();
51+
HttpHeaders requestHeaders = null;
52+
53+
try {
54+
requestHeaders = session.getContext().getRequestHeaders();
55+
} catch (Exception e) {
56+
logger.debug("Could not obtain request headers from the context", e);
57+
}
58+
5259
AuthenticationSessionModel session = this.session.getContext().getAuthenticationSession();
5360

5461
if (!realm.isInternationalizationEnabled()) {

services/src/main/java/org/keycloak/models/policy/ResourceActionRunnerScheduledTask.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.keycloak.models.policy;
22

3+
import org.jboss.logging.Logger;
34
import org.keycloak.models.KeycloakContext;
45
import org.keycloak.models.KeycloakSession;
56
import org.keycloak.models.KeycloakSessionFactory;
@@ -12,6 +13,8 @@
1213
*/
1314
final class ResourceActionRunnerScheduledTask implements ScheduledTask {
1415

16+
private final Logger logger = Logger.getLogger(ResourceActionRunnerScheduledTask.class);
17+
1518
private final KeycloakSessionFactory sessionFactory;
1619

1720
ResourceActionRunnerScheduledTask(KeycloakSessionFactory sessionFactory) {
@@ -27,13 +30,17 @@ public void run(KeycloakSession session) {
2730

2831
private void runScheduledTasksOnRealm(String id) {
2932
KeycloakModelUtils.runJobInTransaction(sessionFactory, (KeycloakSession session) -> {
30-
KeycloakContext context = session.getContext();
31-
RealmModel realm = session.realms().getRealm(id);
33+
try {
34+
KeycloakContext context = session.getContext();
35+
RealmModel realm = session.realms().getRealm(id);
3236

33-
context.setRealm(realm);
34-
new ResourcePolicyManager(session).runScheduledActions();
37+
context.setRealm(realm);
38+
new ResourcePolicyManager(session).runScheduledActions();
3539

36-
sessionFactory.publish(new ResourcePolicyActionRunnerSuccessEvent(session));
40+
sessionFactory.publish(new ResourcePolicyActionRunnerSuccessEvent(session));
41+
} catch (Exception e) {
42+
logger.errorf(e, "Failed to run resource policy actions on realm with id '%s'", id);
43+
}
3744
});
3845
}
3946

0 commit comments

Comments
 (0)