Skip to content
Snippets Groups Projects

Ozg 6986 fix configurations link

Merged Felix Reichenbach requested to merge OZG-6986-fix-configurations-link into main
7 files
+ 190
70
Compare changes
  • Side-by-side
  • Inline
Files
7
@@ -26,9 +26,10 @@ package de.ozgcloud.admin.common.user;
import java.util.Collection;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.authentication.AuthenticationTrustResolver;
import org.springframework.security.authentication.AuthenticationTrustResolverImpl;
import org.springframework.security.core.Authentication;
@@ -46,20 +47,25 @@ class CurrentUserHelper {
private static final Predicate<Authentication> IS_TRUSTED = auth -> !TRUST_RESOLVER.isAnonymous(auth);
public static boolean hasRole(String role) {
return hasAnyRole(Set.of(role));
}
public static boolean hasAnyRole(Set<String> roles) {
var auth = getAuthentication();
if ((Objects.isNull(auth)) || (Objects.isNull(auth.getPrincipal()))) {
return false;
}
return containsRole(auth.getAuthorities(), role);
return containsAnyRole(auth.getAuthorities(), roles);
}
static boolean containsRole(Collection<? extends GrantedAuthority> authorities, String role) {
static boolean containsAnyRole(Collection<? extends GrantedAuthority> authorities, Set<String> roles) {
if (Objects.isNull(authorities)) {
return false;
}
return authorities.stream().anyMatch(a -> StringUtils.equalsIgnoreCase(addRolePrefixIfMissing(role), a.getAuthority()));
var rolesWithPrefix = roles.stream().map(CurrentUserHelper::addRolePrefixIfMissing).collect(Collectors.toSet());
return authorities.stream().anyMatch(a -> rolesWithPrefix.contains(a.getAuthority()));
}
static String addRolePrefixIfMissing(String roleToCheck) {
Loading