`
lym6520
  • 浏览: 705921 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

spring security 权限分配问题

阅读更多
我在测试的项目上引进了spring security 基于名称空间配置的安全架构,遇到一个问题,请指教下!
配置代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!--
  - 基于名称空间配置
  -->
<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.xsd">

	<global-method-security secured-annotations="enabled">
	</global-method-security>
											
    <http access-denied-page="/error.jsp" session-fixation-protection="newSession" auto-config="true" path-type="ant" ><!--session-fixation-protection属性可以防止session固定攻击  -->
       <!-- 权限入口的顺序十分重要,注意必须把特殊的URL权限写在一般的URL权限之前。 -->        
		<intercept-url pattern="/acegiTest.do" access="ROLE_SUPERVISOR"/>        
        <intercept-url pattern="/index.jsp" access="IS_AUTHENTICATED_REMEMBERED" />
        <intercept-url pattern="/role1.jsp" access="ROLE_USER_1"/>
        <intercept-url pattern="/role2.jsp" access="ROLE_USER_2"/>
        <intercept-url pattern="/role3.jsp" access="ROLE_USER_3"/>
        <intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
		<!--
    	x509认证
        <x509 /> 
		-->

        <!-- All of this is unnecessary if auto-config="true"
        <form-login />
        <anonymous />
        <http-basic />
        <logout />
        <remember-me /> -->
        <form-login login-page="/login.jsp" default-target-url="/index.jsp" authentication-failure-url="/login.jsp?login_error=1" />
        <anonymous key="cookie_key" username="ananoymous" granted-authority="IS_AUTHENTICATED_ANONYMOUSLY"/>        
        <logout invalidate-session="true" />
        <!-- session并发控制
        <concurrent-session-control max-sessions="1" exception-if-maximum-exceeded="true"/>
		-->				
		<concurrent-session-control max-sessions="1" exception-if-maximum-exceeded="false" /><!-- exception-if-maximum-exceeded="true" 第二次登入失效 -->
    </http>   
  
    <authentication-provider > 
             <password-encoder hash="md5"/><!-- 密码md5加密 -->    
	    <jdbc-user-service data-source-ref="f3CenterDS" 
	    		users-by-username-query="select name as 'username',password,'true' from users where name = ?"
	    		authorities-by-username-query="select name as 'username',authorities as 'authority' from authentication where name =?" 
	    		 />     
	
	</authentication-provider>
	
</beans:beans>



在代码中
authorities-by-username-query="select name as 'username',authorities as 'authority' from authentication where name =?" 
,如果数据库里分配多个权限给用户的话,用户登入系统就不能正常使用(不能访问),倘若只分配一个权限则可以正常访问,还请指教一二!!!
分享到:
评论
4 楼 lym6520 2008-12-01  
难道就没有人可以解决这个问题吗?
3 楼 lym6520 2008-11-25  
chinajj 写道

看配置文件,没发现哪有问题。你确认一下如果数据库里分配多个权限给用户的话,select name as 'username',authorities as 'authority' from authentication where name =? 这语句的查询结果。

我从数据库中获得user1的权限信息,返回为:ROLE_USER_1, ROLE_USER_2
这个是没错的!
2 楼 chinajj 2008-11-24  
看配置文件,没发现哪有问题。你确认一下如果数据库里分配多个权限给用户的话,select name as 'username',authorities as 'authority' from authentication where name =? 这语句的查询结果。
1 楼 lym6520 2008-11-24  
如果我把<jdbc-user-service/>放在缓存中,则不会出现这样的问题了!
如下
<user-service>
    		<user name="user" password="123" authorities="ROLE_SUPERVISOR, ROLE_USER_1"/>
    	</user-service> 

相关推荐

    springboot springsecurity动态权限控制

    在这个“springboot springsecurity动态权限控制”的主题中,我们将深入探讨如何在Spring Boot项目中集成Spring Security,实现动态权限控制,让菜单权限的管理更加灵活和高效。 首先,我们需要理解Spring Security...

    SpringSecurity权限管理

    在"SpringSecurity权限管理开发手册.pdf"和"SpringSecurity权限管理开发手册.pdf.txt"中,你将找到更多关于如何配置和使用SpringSecurity进行权限管理的详细信息,包括配置XML或Java配置、定义访问规则、处理未授权...

    spring security用户权限项目

    ACL 是基于对象级别的权限控制,RBAC 则是基于角色的权限分配。项目可能使用了 RBAC,将用户分配到不同的角色,并为每个角色定义可以访问的资源。 3. **过滤器链(Filter Chain)**:Spring Security 使用一系列...

    SpringSecurity学习总结源代码

    5. **Role-Based Access Control (RBAC)**:SpringSecurity支持基于角色的访问控制,通过将权限分配给角色,然后角色分配给用户,简化了权限管理。 6. **Expression-Based Access Control (ELBA)**:SpringSecurity...

    spring security权限管理开发手册及实例.rar

    这个“spring security权限管理开发手册及实例.rar”压缩包显然包含了关于如何使用Spring Security进行权限管理的详细指南和实际操作示例。让我们深入探讨一下Spring Security的核心概念、功能以及如何在实践中应用...

    springsecurity角色和权限

    让我们深入探讨Spring Security在处理角色和权限方面的一些关键概念。 1. **角色与权限基础** 在Spring Security中,"角色"是赋予用户的标识,表示用户在系统中的职责或权限集合。例如,"管理员"、"用户"等。"权限...

    maven+springMVC+spring security权限实例

    【标题】"maven+springMVC+spring security权限实例"是一个综合性的IT项目,它展示了如何使用Maven构建一个基于Spring MVC和Spring Security的权限管理应用。这个实例旨在帮助开发者快速理解并实践这三大技术在实际...

    Grails + Spring Security 权限控制

    《Grails + Spring Security 权限控制》 在Web应用开发中,权限控制是不可或缺的一环,它确保了用户只能访问他们被授权的功能和数据。本文将深入探讨如何在Grails框架中集成Spring Security,实现高效且灵活的权限...

    SpringSecurity中文文档.zip

    同时,SpringSecurity还提供了丰富的社区资源和强大的社区支持,帮助开发者解决实际问题。 综上所述,这两份SpringSecurity的中文文档是学习和掌握SpringSecurity的宝贵资料,它们将覆盖从基础概念到高级特性的全...

    SpringBoot + SpringSecurity + JPA 实现用户角色权限登录认证

    在这个项目中,SpringSecurity被用来处理用户登录、角色权限分配和防止非法请求。 3. **JPA**:Java Persistence API是Java平台上的ORM(对象关系映射)规范,它允许开发者以面向对象的方式操作数据库,将数据对象...

    SpringSecurity入门小demo(SSM+Spring Security)

    在 `HelloSpringSecurity` 文件中,你可能看到以下关键代码: - **WebSecurityConfigurerAdapter** 类:这是 Spring Security 提供的配置适配器,可以覆盖其方法来定制安全规则。 - `configure(HttpSecurity http)...

    SpringSecurity实现的权限管理(含包)

    在本资源中,我们关注的是如何通过SpringSecurity来实现一个简单的权限管理系统。以下将详细解释SpringSecurity的核心概念和配置步骤,以及如何利用提供的包进行实际应用。 1. **身份验证(Authentication)**:这...

    Spring Security 教程(Spring Security Tutorial)1

    - 用户登录后,Spring Security 可以根据用户的角色分配不同的访问权限。它支持自定义角色和权限映射,实现灵活的访问控制策略。 6. **基于 JWT 的认证**: - JSON Web Token (JWT) 是一种轻量级的身份验证机制,...

    spring security 安全权限管理手册

    Spring Security 支持匿名用户登录,并可以为其分配特定的角色。 --- ##### 第16章:防御会话伪造 会话伪造是一种常见的攻击手段,Spring Security 提供了多种方法来防范此类攻击。 --- ##### 第17章:预先认证...

    Spring Security 安全权限管理手册 PDF

    《Spring Security 安全权限管理手册》是一本深入解析Spring Security框架的专业指南,对于正在学习或已经在使用Spring框架的开发者来说,它提供了丰富的知识和实践经验。Spring Security是Spring生态系统中的一个...

    Spring Security 3多用户登录实现一

    - **角色与权限**:Spring Security通过角色(Role)和权限(Permission)来控制访问。在数据库中为每个用户分配角色,并将角色关联到权限。 - **登录表单**:创建一个登录表单,提交用户名和密码到Spring ...

    Spring Security.pdf

    Spring Security利用了Servlet过滤器、Spring的依赖注入(IOC)和面向切面编程(AOP)技术,它能够处理身份认证(Authentication)和授权(Authorization)两大安全核心问题。 身份认证是确认用户身份的过程,即...

    SpringMVC集成SpringSecurity

    6. **角色和权限**:SpringSecurity支持基于角色的访问控制(RBAC),可以为用户分配角色,并定义哪些URL或资源对应哪些角色,从而实现权限控制。 7. **自定义逻辑**:除了基本的配置,开发者还可以根据需求编写...

    spring3中增加 spring security控制权限

    在实际应用中,你可能还需要自定义`FilterSecurityInterceptor`或`AccessDecisionManager`来实现更复杂的逻辑,比如基于注解的权限控制、动态权限分配、多因素认证等。此外,`MethodFilterSecurityMetadataSource`和...

    SpringSecurity 安全权限管理手册 CHM版

    SpringSecurity的权限模型包括角色(Role)、权限(Permission)和权限分配。角色通常用于划分用户群体,如管理员、普通用户等,权限则更具体地定义了用户可以做什么。手册会讲解如何定义和管理这些概念,以及如何在...

Global site tag (gtag.js) - Google Analytics