Vorrei creare regole di sicurezza basate su parametri URL personalizzati (variabili di percorso). Nell'esempio. Diciamo che voglio avere un utente che abbia accesso amministratore per le risorse chiamate Brand1 e Brand2 ma non ha accesso alla risorsa chiamata Brand3. Possiamo modificare le risorse usando i seguenti link.Spring Security con parametri variabili di percorso
http://myapp/brand/edit/1
http://myapp/brand/edit/2
http://myapp/brand/edit/3
ora nel contesto di protezione mi piacerebbe fare qualcosa di simile
<security:intercept-url pattern="/brand/edit/{brandId}"
access="hasRole('ROLE_ADMIN') or
@authorizationService.hasBrandPermission(
#brandId, principal.username)"/>
L'unica cosa che ottiene è nome utente. BrandId è sempre nullo. L'ho usato con @PreAuthorize e ha funzionato, ma ora mi piacerebbe configurare la sicurezza centralizzata in un singolo file xml anziché distribuirlo su tutte le classi di controller. Inoltre, mentre stavo usando @PreAuthorize il mio access-negato-handler non mi ha reindirizzato nella pagina negata ma visualizza brutto AccessDeniedException insead.
Sarei davvero all'altezza delle idee.
Non capisco il problema. È che il BrandId è sempre nullo? O è che non protegge la risorsa? O è la brutta pagina AccessDeniedException? –
BrandID è nullo –