Implementations comparison for the authorization checks:
| Implementation | The roles can be checked at a method level |
|---|---|
| spring-webmvc-pac4j | ![]() using the @RequireAnyRole and @RequireAllRoles annotations |
| spring-webflux-pac4j | ![]() |
| jee-pac4j | ![]() |
| buji-pac4j | ![]() when using Spring and the @RequiresRoles annotation |
| spring-security-pac4j | ![]() using the @Secured and @PreAuthorize annotations |
| play-pac4j | ![]() using the @Secure annotation or the Security trait |
| vertx-pac4j | ![]() |
| spark-pac4j | ![]() |
| javalin-pac4j | ![]() |
| ratpack-pac4j | ![]() |
| pippo-pac4j | ![]() |
| undertow-pac4j | ![]() |
| CAS | ![]() |
| jax-rs-pac4j | ![]() using the @Pac4JSecurity(authorizers = ...) annotation or the SecurityContext.isUserInRole() method |
| dropwizard-pac4j | ![]() using the @Pac4JSecurity(authorizers = ...) annotation or the SecurityContext.isUserInRole() method |
| http4s-pac4j | ![]() |
| Knox | ![]() No method-level authorization (via jee-pac4j) |
| jooby-pac4j | ![]() The authorizers are defined per path pattern in the Pac4jModule |

