spring boot - preauthorize - Springboot Security hasRole no funciona
spring security hasrole multiple (1)
ROLE_
nombrar su autoridad con el prefijo
ROLE_
para usar
isUserInRole
, consulte
Spring Security Reference
:
HttpServletRequest.isUserInRole (String) determinará si
SecurityContextHolder.getContext().getAuthentication().getAuthorities()
contiene unaGrantedAuthority
con el rol pasado aisUserInRole(String)
. Por lo general, los usuarios no deben pasar el prefijo "ROLE_" a este método, ya que se agrega automáticamente. Por ejemplo, si desea determinar si el usuario actual tiene la autoridad "ROLE_ADMIN", puede usar lo siguiente:
boolean isAdmin = httpServletRequest.isUserInRole("ADMIN");
Lo mismo para
hasRole
(también
hasAnyRole
), consulte
Spring Security Reference
:
Devuelve
true
si el principal actual tiene el rol especificado. De manera predeterminada, si el rol proporcionado no comienza con ''ROLE_'', se agregará. Esto se puede personalizar modificandodefaultRolePrefix
enDefaultWebSecurityExpressionHandler
.
No puedo usar el método
@PreAuthorize
en la anotación
@PreAuthorize
.
También
request.isUserInRole(“ADMIN”)
da
false
.
¿Qué me estoy perdiendo?
Aunque
.hasAuthority(“ADMIN”)
funciona bien.
Estoy asignando autoridades a los usuarios desde una base de datos.