Skip to content

Commit 23f36c8

Browse files
committed
fix(core): handle missing referer header
- If missing in source request read value is NULL and not empty, hence creating matcher on the pattern fails. - Perform matching only if there is non-empty input.
1 parent 00b936b commit 23f36c8

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

perun-core/src/main/java/cz/metacentrum/perun/core/blImpl/AuthzResolverBlImpl.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2599,10 +2599,12 @@ public static synchronized void refreshAuthz(PerunSession sess) {
25992599
Map<String, List<String>> appAllowedRoles = BeansUtils.getCoreConfig().getAppAllowedRoles();
26002600
for (String reg : appAllowedRoles.keySet()) {
26012601
Pattern pattern = Pattern.compile(reg);
2602-
if (pattern.matcher(sess.getPerunPrincipal().getReferer()).matches()) {
2603-
for (String role : roles.getRolesNames()) {
2604-
if (!appAllowedRoles.get(reg).contains(role)) {
2605-
roles.remove(role);
2602+
if (!isBlank(sess.getPerunPrincipal().getReferer())) {
2603+
if (pattern.matcher(sess.getPerunPrincipal().getReferer()).matches()) {
2604+
for (String role : roles.getRolesNames()) {
2605+
if (!appAllowedRoles.get(reg).contains(role)) {
2606+
roles.remove(role);
2607+
}
26062608
}
26072609
}
26082610
}

0 commit comments

Comments
 (0)