2013-10-24 222 views
0

我在我的web應用程序中使用Spring安全性,並且使用了2個標準授權級別'ROLE_USER'和'ROLE_ADMIN'。有沒有可能再添加一個關卡?Spring安全/授權級別

+2

是的。你當然可以。 –

+0

是的,但我如何定義自定義的? – Maff

回答

1

只需將它們添加到您的攔截URL標記。例如,我有以下配置:

<security:http auto-config="false" use-expressions="true" access-denied-page="/denied.do" 
        entry-point-ref="authenticationEntryPoint"> 
    <security:intercept-url pattern="/index.do" access="hasAnyRole('PROGRAM_VIEW', 'PROGRAM_ADMIN')"/> 
    <security:intercept-url pattern="/**" access="hasAnyRole('PROGRAM_VIEW', 'PROGRAM_ADMIN)"/> 

    <security:custom-filter ref="authenticationFilter" position="FORM_LOGIN_FILTER"/> 

    <security:logout invalidate-session="true" logout-success-url="/" logout-url="/logout.do"/> 
</security:http> 

我的其他角色是PROGRAM_VIEW和PROGRAM_ADMIN(我沒有使用ROLE_ADMIN和ROLE_USER)。

這些額外的角色來自數據庫。

+0

好,太棒了!如果我想要使用標籤,會發生什麼?我可以用我的cutom替換ROLE_ADMIN嗎? – Maff

+0

是的。示例:http://docs.spring.io/spring-security/site/docs/3.0.x/reference/taglibs.html(這裏的自定義角色是「主管」)。或者看看http://stackoverflow.com/questions/11469211/how-to-use-secauthorize-access-hasroleroles-for-checking-multiple-roles –