2011-06-23 9 views
5

Jestem twórcą projektu wiosennego 3, który wykorzystuje Spring Security.Wczytaj adres URL przechwytywania z DB w Spring Security 3.0.2

To jest część mojego bieżącego pliku kontekstu zabezpieczeń:

<http auto-config="true" use-expressions="true" > 
    <intercept-url pattern="/login.htm" access="permitAll"/> 
    <intercept-url pattern="/admin/*" access="hasRole('ROLE_ADMIN') and fullyAuthenticated"/> 
    <intercept-url pattern="/hello*" access="hasRole('ROLE_ANONYMOUS')"/> 

Wszystko to url chcę załadować z DB (od jakiegoś DAO). tzn. chcę sprawdzić prawa dostępu do dowolnego adresu URL dynamicznie

Jak mogę to zrobić we właściwy sposób.

Odpowiedz

2

Możesz to zrobić, używając Domain Object Security (ACLs).

Lub możesz wdrożyć podklasę AbstractSecurityInterceptor.

Albo możesz to zrobić w kodzie ad-hoc; tzn. zaimplementować kontrole dostępu gdzieś w kontrolerze i wyrzucić AuthenticationException, jeśli żądający nie ma wymaganych uprawnień.

Wszystko to kończy się z filtrem SpringSecurity przy wychwytywaniu AuthenticationException po wyjściu i wykonaniu odpowiedniej akcji; na przykład przekierowanie na stronę logowania lub zwrócenie odpowiedzi ze statusem "odmowa dostępu".

+0

Nie jestem pewien, ale myślę, że muszę używać list ACL, – erko

Powiązane problemy