|
|
|
@ -17,6 +17,7 @@ |
|
|
|
package org.springframework.security.authorization; |
|
|
|
package org.springframework.security.authorization; |
|
|
|
|
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import java.util.Objects; |
|
|
|
|
|
|
|
|
|
|
|
import reactor.core.publisher.Mono; |
|
|
|
import reactor.core.publisher.Mono; |
|
|
|
|
|
|
|
|
|
|
|
@ -47,8 +48,8 @@ public class AuthorityReactiveAuthorizationManager<T> implements ReactiveAuthori |
|
|
|
// @formatter:off
|
|
|
|
// @formatter:off
|
|
|
|
return authentication.filter(Authentication::isAuthenticated) |
|
|
|
return authentication.filter(Authentication::isAuthenticated) |
|
|
|
.flatMapIterable(Authentication::getAuthorities) |
|
|
|
.flatMapIterable(Authentication::getAuthorities) |
|
|
|
.map(GrantedAuthority::getAuthority) |
|
|
|
.mapNotNull(GrantedAuthority::getAuthority) |
|
|
|
.any((grantedAuthority) -> this.authorities.stream().anyMatch((authority) -> authority.getAuthority().equals(grantedAuthority))) |
|
|
|
.any((grantedAuthority) -> this.authorities.stream().anyMatch((authority) -> Objects.equals(authority.getAuthority(), grantedAuthority))) |
|
|
|
.map((granted) -> ((AuthorizationResult) new AuthorityAuthorizationDecision(granted, this.authorities))) |
|
|
|
.map((granted) -> ((AuthorizationResult) new AuthorityAuthorizationDecision(granted, this.authorities))) |
|
|
|
.defaultIfEmpty(new AuthorityAuthorizationDecision(false, this.authorities)); |
|
|
|
.defaultIfEmpty(new AuthorityAuthorizationDecision(false, this.authorities)); |
|
|
|
// @formatter:on
|
|
|
|
// @formatter:on
|
|
|
|
|