ascendlin
2014-05-07 15:27
采纳率: 0%
浏览 620
已采纳

springsecurity 权限命名ROLE_问题

今天弄了下springsecurity,版本是3.2的,设计了7表,也就是通常的用户、角色、权限、资源,和网上那一大堆配置差不多,唯独权限表我是用AUTH_来命名的,xxxSecurityMetadataSource如下:
[code="java"]
List authList = this.authoritiesMapper.findAll();
if (authList != null && !authList.isEmpty()) {
Map map = new HashMap();
for (Authorities auth : authList) {
ConfigAttribute configAttribute = new SecurityConfig(auth.getAuthority_code());//这里是AUTH_,不是ROLE_

[/code]
在userdetailService里面也是用的AUTH_ 将权限放到了userDetails里面。

现有如下权限与资源关系
user1--ROLE1---AUTH_1------------------>资源1
user1--ROLE1---AUTH_1------------------>资源2

user2--ROLE1---AUTH_2------------------>资源1
用user2去访问资源2居然会抛出 没有权限的AccessDeniedException。不是说权限都要用ROLE_开头么,这是怎么回事,
下面是我的spring_security.xml配置
[code="xml"]

    <access-denied-handler error-page="/403"/>


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

    <form-login login-page="/login" default-target-url="/welcome"
        authentication-failure-url="/loginfailed" always-use-default-target="true"/>


    <session-management>
        <concurrency-control max-sessions="1" expired-url="/login"/>
    </session-management>   


    <logout logout-success-url="/logout" invalidate-session="true" logout-url="/j_spring_security_logout"/>


    <custom-filter ref="mySecurityFilter" before="FILTER_SECURITY_INTERCEPTOR"/>
</http>

[/code]

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • dohkoos 2014-05-08 14:07
    最佳回答

    [quote]现有如下权限与资源关系
    user1--ROLE1---AUTH_1------------------>资源1
    user1--ROLE1---AUTH_1------------------>资源2

    user2--ROLE1---AUTH_2------------------>资源1 [/quote]

    根据这个user2不只能访问资源1么!不抛出AccessDeniedException你还想咋地。

    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题