我在测试的项目上引进了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 =?"
,如果数据库里分配多个权限给用户的话,用户登入系统就不能正常使用(不能访问),倘若只分配一个权限则可以正常访问,还请指教一二!!!
分享到:
相关推荐
在这个“springboot springsecurity动态权限控制”的主题中,我们将深入探讨如何在Spring Boot项目中集成Spring Security,实现动态权限控制,让菜单权限的管理更加灵活和高效。 首先,我们需要理解Spring Security...
在"SpringSecurity权限管理开发手册.pdf"和"SpringSecurity权限管理开发手册.pdf.txt"中,你将找到更多关于如何配置和使用SpringSecurity进行权限管理的详细信息,包括配置XML或Java配置、定义访问规则、处理未授权...
ACL 是基于对象级别的权限控制,RBAC 则是基于角色的权限分配。项目可能使用了 RBAC,将用户分配到不同的角色,并为每个角色定义可以访问的资源。 3. **过滤器链(Filter Chain)**:Spring Security 使用一系列...
5. **Role-Based Access Control (RBAC)**:SpringSecurity支持基于角色的访问控制,通过将权限分配给角色,然后角色分配给用户,简化了权限管理。 6. **Expression-Based Access Control (ELBA)**:SpringSecurity...
这个“spring security权限管理开发手册及实例.rar”压缩包显然包含了关于如何使用Spring Security进行权限管理的详细指南和实际操作示例。让我们深入探讨一下Spring Security的核心概念、功能以及如何在实践中应用...
让我们深入探讨Spring Security在处理角色和权限方面的一些关键概念。 1. **角色与权限基础** 在Spring Security中,"角色"是赋予用户的标识,表示用户在系统中的职责或权限集合。例如,"管理员"、"用户"等。"权限...
【标题】"maven+springMVC+spring security权限实例"是一个综合性的IT项目,它展示了如何使用Maven构建一个基于Spring MVC和Spring Security的权限管理应用。这个实例旨在帮助开发者快速理解并实践这三大技术在实际...
《Grails + Spring Security 权限控制》 在Web应用开发中,权限控制是不可或缺的一环,它确保了用户只能访问他们被授权的功能和数据。本文将深入探讨如何在Grails框架中集成Spring Security,实现高效且灵活的权限...
同时,SpringSecurity还提供了丰富的社区资源和强大的社区支持,帮助开发者解决实际问题。 综上所述,这两份SpringSecurity的中文文档是学习和掌握SpringSecurity的宝贵资料,它们将覆盖从基础概念到高级特性的全...
在这个项目中,SpringSecurity被用来处理用户登录、角色权限分配和防止非法请求。 3. **JPA**:Java Persistence API是Java平台上的ORM(对象关系映射)规范,它允许开发者以面向对象的方式操作数据库,将数据对象...
在 `HelloSpringSecurity` 文件中,你可能看到以下关键代码: - **WebSecurityConfigurerAdapter** 类:这是 Spring Security 提供的配置适配器,可以覆盖其方法来定制安全规则。 - `configure(HttpSecurity http)...
在本资源中,我们关注的是如何通过SpringSecurity来实现一个简单的权限管理系统。以下将详细解释SpringSecurity的核心概念和配置步骤,以及如何利用提供的包进行实际应用。 1. **身份验证(Authentication)**:这...
- 用户登录后,Spring Security 可以根据用户的角色分配不同的访问权限。它支持自定义角色和权限映射,实现灵活的访问控制策略。 6. **基于 JWT 的认证**: - JSON Web Token (JWT) 是一种轻量级的身份验证机制,...
Spring Security 支持匿名用户登录,并可以为其分配特定的角色。 --- ##### 第16章:防御会话伪造 会话伪造是一种常见的攻击手段,Spring Security 提供了多种方法来防范此类攻击。 --- ##### 第17章:预先认证...
《Spring Security 安全权限管理手册》是一本深入解析Spring Security框架的专业指南,对于正在学习或已经在使用Spring框架的开发者来说,它提供了丰富的知识和实践经验。Spring Security是Spring生态系统中的一个...
- **角色与权限**:Spring Security通过角色(Role)和权限(Permission)来控制访问。在数据库中为每个用户分配角色,并将角色关联到权限。 - **登录表单**:创建一个登录表单,提交用户名和密码到Spring ...
Spring Security利用了Servlet过滤器、Spring的依赖注入(IOC)和面向切面编程(AOP)技术,它能够处理身份认证(Authentication)和授权(Authorization)两大安全核心问题。 身份认证是确认用户身份的过程,即...
6. **角色和权限**:SpringSecurity支持基于角色的访问控制(RBAC),可以为用户分配角色,并定义哪些URL或资源对应哪些角色,从而实现权限控制。 7. **自定义逻辑**:除了基本的配置,开发者还可以根据需求编写...
在实际应用中,你可能还需要自定义`FilterSecurityInterceptor`或`AccessDecisionManager`来实现更复杂的逻辑,比如基于注解的权限控制、动态权限分配、多因素认证等。此外,`MethodFilterSecurityMetadataSource`和...
SpringSecurity的权限模型包括角色(Role)、权限(Permission)和权限分配。角色通常用于划分用户群体,如管理员、普通用户等,权限则更具体地定义了用户可以做什么。手册会讲解如何定义和管理这些概念,以及如何在...