Closed
Description
Description
When using @EnableReactiveMethodSecurity the "ReactiveAuthorizationManagerMethodSecurityConfiguration" is loaded. This contains a @bean which defines a DefaultMethodSecurityExpressionHandler. This class defines a default DenyAllPermissionEvaluator.
This appears to be result in all methods which use the permission evaluator to be denied.
To Reproduce
@EnableReactiveMethodSecurity
@Configuration
class WebFluxAclConfiguration {
@Bean
fun aclPermissionEvaluator(aclService: AclService): AclPermissionEvaluator {
return AclPermissionEvaluator(aclService)
}
}
@Service
class TestService {
@PostAuthorize("hasPermission(returnObject, 'read')")
fun getDocument(id: Int): Mono<Document> {
return Mono.just(Document(id))
}
}
Expected behavior
The DefaultMethodSecurityExpressionHandler should find the AclPermissionEvaluator as an available bean and use it
Sample