Chciałbym stworzyć reguły bezpieczeństwa w oparciu o niestandardowe parametry adresu URL (zmienne ścieżki). W przykładzie. Powiedzmy, że chcę mieć użytkownika, który ma dostęp administratora do zasobów o nazwie Brand1 i Brand2, ale nie ma dostępu do zasobu o nazwie Brand3. Możemy edytować zasoby, korzystając z poniższych linków.Spring Security ze zmiennymi parametrami ścieżki
http://myapp/brand/edit/1
http://myapp/brand/edit/2
http://myapp/brand/edit/3
teraz w kontekście zabezpieczeń chciałbym zrobić coś takiego
<security:intercept-url pattern="/brand/edit/{brandId}"
access="hasRole('ROLE_ADMIN') or
@authorizationService.hasBrandPermission(
#brandId, principal.username)"/>
Jedyne co mogę to nazwa użytkownika. BrandId ma zawsze wartość zerową. Kiedyś robiłem to przy pomocy @PreAuthorize i działało, ale teraz chciałbym scentralizować konfigurację bezpieczeństwa w pojedynczym pliku xml zamiast rozprowadzać go na wszystkich klasach kontrolerów. Co więcej, gdy używałam @PreAuthorize, mój handler z odmową dostępu nie przekierowywał mnie na stronę odmową, ale wyświetlał brzydki komunikat AccessDeniedException.
Naprawdę chciałbym pojąć wszelkie pomysły.
Nie mam problemu. Czy to BrandId ma zawsze wartość zerową? A może to, że nie zabezpiecza zasobu? A może jest to brzydka strona AccessDeniedException? –
BrandID ma wartość null –