0 0

springsecurity 权限命名ROLE_问题0

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


在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配置
	<http auto-config="true" use-expressions="true">
		
		
		<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>
2014年5月07日 15:27

2个答案 按时间排序 按投票排序

0 0

采纳的答案

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

user2--ROLE1---AUTH_2------------------>资源1



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

2014年5月08日 14:07
0 0

ROLE开头是用在简单的方式,如果你是自定义的,就没有这个限制了。也可以通过rolePrefix来配置是否启用前缀~

2014年5月09日 08:52

相关推荐

    Spring_Security权限管理_学习笔记

    Spring Security是Java企业级应用中广泛使用的权限管理框架,它为应用程序提供了强大的访问控制和安全功能。在本学习笔记中,我们将深入探讨Spring Security的核心概念和配置,以及如何设计数据库表来支持权限管理。...

    Spring Security 学习总结1_3

    "springsecurity-namespace"可能指的是Spring Security的XML命名空间配置。在Spring Security的早期版本中,使用XML配置是最常见的实践。例如,你可能会看到以下片段: ```xml **" access="hasRole('ROLE_ADMIN')...

    spring_security3_0_5安全配置手册

    - access属性用来定义用户角色,如ROLE_ADMIN和ROLE_USER,控制对资源的访问权限。 #### 7. 权限控制机制 Spring Security提供了多种常用的权限控制机制,其中包括: - 表单登录(form login) - 匿名访问...

    SpringSecurity笔记2-SpringSecurity命名空间

    例如,`hasRole('ROLE_ADMIN')`或`isAuthenticated()`这些表达式可以在`access`属性中使用,来决定用户是否允许访问某个资源。 - 这种灵活性让开发者可以根据具体需求定制访问规则,实现细粒度的权限控制。 4. **...

    spring security 2.0 命名空间配置(带例子)

    通过SpringSecurityTest这个压缩包文件,你可以找到相关的示例代码和配置,以帮助你更好地理解这些概念。动手实践是学习Spring Security的最佳途径,你可以尝试修改配置,观察不同设置对应用程序安全行为的影响。 ...

    SpringSecurity学习总结源代码

    6. **Expression-Based Access Control (ELBA)**:SpringSecurity还提供了基于表达式的访问控制,允许用更灵活的方式定义访问规则,比如`hasRole('ROLE_ADMIN')`或`isAuthenticated()`。 在实际开发中,Spring...

    Spring_Security_3_安全权限管理手册(最新)

    《Spring Security 3 安全权限管理手册》深入解析 Spring Security是一款强大的安全框架,用于保护基于Java的应用程序。在Spring Security 3中,它提供了全面的认证和授权功能,适用于Web应用程序和方法级别的安全...

    spring security 安全权限管理手册

    &lt;security:intercept-url pattern="/admin/**" access="ROLE_ADMIN"/&gt; &lt;security:intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY"/&gt; &lt;security:form-login login-page="/login" default-...

    Spring Securit权限管理

    在Spring Security中,权限管理是核心功能之一,允许开发人员控制不同用户对应用资源的访问权限。本篇文章将深入探讨Spring Security的权限管理机制,从基础的配置到高级的定制化策略。 首先,权限管理的起点在于...

    Spring Security3.1实践

    - **Namespace配置**:使用Spring Security的命名空间简化XML配置,如`&lt;http&gt;`、`&lt;authentication-manager&gt;`等元素。 3. **认证流程** - 用户提交登录信息。 - Spring Security的`Filter Security Interceptor`...

    Spring Security Annotation tutorial

    其中 `sec` 命名空间引用了 Spring Security 的 Facelets 标签库。下面是一些常用的标签及其含义: - `&lt;sec:ifAnyGranted roles=""&gt;`:如果用户拥有任一指定的角色,则显示其中的内容。 - `...

    Spring-Security3.0自定义表结构

    在配置文件中,需要引入Spring Security的命名空间,并设置默认命名空间,以便于后续的Bean定义和安全策略配置。 ```xml &lt;beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans=...

    Spring安全权限管理

    在`applicationContext.xml`中,引入Spring Security的命名空间,然后定义`&lt;http&gt;`和`&lt;authentication-provider&gt;`元素。`&lt;http&gt;`元素用于定义访问控制策略,而`&lt;authentication-provider&gt;`元素则用于定义用户认证...

    Spring Security最容易懂的入门教程

    - 在Spring配置文件中引入SpringSecurity命名空间,并进行基本的配置,如定义元素和元素来控制对URL的访问权限。 - 如何设置用户的角色和访问权限,以保护应用程序中的资源。 教程以非常清晰的方式逐步引导新手了解...

    Spring Security学习总结

    例如,`@Secured("hasRole('ROLE_ADMIN')"`可以限制只有具有"ROLE_ADMIN"角色的用户才能访问特定方法。 6. **记住我(Remember Me)**:此功能允许用户在一段时间内无须重新登录即可访问应用。Spring Security通过...

    用SpringSecurity保护Web的安全

    SpringSecurity 是一个强大的Java安全框架,用于保护Web应用程序免受各种攻击。在SpringSecurity 3.1版本中,相比3.0版本,配置上有一些变化,但其核心仍然是通过一系列过滤器来实现安全控制。本文将详细介绍Spring...

    spring security3配置和使用

    Spring Security3 引入了一种新的配置方式——命名控件配置(Named Controls Configuration),这种方式简化了安全配置的过程。在使用传统的 Spring Bean 配置时,开发者往往需要手动实现许多类来完成认证和授权逻辑...

    spring security 参考手册中文版

    Spring Security 参考 1 第一部分前言 15 1.入门 16 2.介绍 17 2.1什么是Spring Security? 17 2.2历史 19 2.3版本编号 20 2.4获得Spring安全 21 2.4.1使用Maven 21 Maven仓库 21 Spring框架 22 2.4.2 Gradle 23 ...

Global site tag (gtag.js) - Google Analytics