您的位置:首页 > 编程语言 > Java开发

Spring Security授权 AccessDecisionManager

2016-12-28 17:12 309 查看

Spring Security授权 AccessDecisionManager

博客分类:

Security

Spring

在前面那篇博客有一段配置:

Xml代码


<http auto-config="false" disable-url-rewriting="true" use-expressions="true" entry-point-ref="dtAuth"

create-session="never">

<!-- <session-management session-authentication-strategy-ref="dtsession"/> -->

<intercept-url pattern="/unread/get" access="isAuthenticated()"/>

<intercept-url pattern="/authtest.xhtm" access="hasRole('working')"/>

<intercept-url pattern="/authtest1.xhtm" access="hasRole('trac')"/>

<intercept-url pattern="/cmmt/uc" access="isAuthenticated()"/>

<intercept-url pattern="/favicon.ico" access="denyAll"/>

<intercept-url pattern="/**" access="permitAll"/>

<custom-filter position="PRE_AUTH_FILTER" ref="dtSessionMgr"/>

</http>

pattern表示url,access表示url的权限,但这个isAuthenticated()具体在哪里执行呢?原来Spring提供授权机制,由org.springframework.security.access.AccessDecisionManager这个接口来实现。

这个接口定义了这个方法:

Java代码


void decide(Authentication authentication, Object object, Collection<ConfigAttribute> configAttributes)

throws AccessDeniedException, InsufficientAuthenticationException;

对应上面的配置:object就是url,configAttributes就是一个access。常用的实现类是AffirmativeBased
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: