Me gustaría crear reglas de seguridad basadas en parámetros de url personalizados (variables de ruta). En el ejemplo. Supongamos que quiero tener un usuario que tenga acceso de administrador para los recursos llamados Brand1 y Brand2, pero que no tenga acceso al recurso llamado Brand3. Podemos editar recursos usando los siguientes enlaces.Seguridad de primavera con parámetros de variable de ruta
http://myapp/brand/edit/1
http://myapp/brand/edit/2
http://myapp/brand/edit/3
ahora en el contexto de seguridad me gustaría hacer algo así
<security:intercept-url pattern="/brand/edit/{brandId}"
access="hasRole('ROLE_ADMIN') or
@authorizationService.hasBrandPermission(
#brandId, principal.username)"/>
Lo único que consigo es nombre de usuario. BrandId siempre es nulo. Solía hacer eso con @PreAuthorize y funcionó, pero ahora me gustaría centralizar la configuración de seguridad en un único archivo xml en lugar de distribuirlo entre todas las clases de controlador. Además, cuando estaba usando @PreAuthorize mi access-denied-handler no me redirigió a la página denegada sino que mostraba la fea entrada AccessDeniedException.
Realmente apreciaría cualquier idea.
No entiendo el problema. ¿Es que BrandId siempre es nulo? ¿O es que no protege el recurso? ¿O es la fea página AccessDeniedException? –
BrandID es nulo –