Spring Security入门一
来源:互联网 发布:php测试链接ftp服务器 编辑:程序博客网 时间:2024/06/04 23:32
Spring Security 命名空间的引入可以简化我们的开发,它涵盖了大部分 Spring Security 常用的功能。它的设计是基于框架内大范围的依赖的,可以被划分为以下几块。
- Web/Http 安全:这是最复杂的部分。通过建立 filter 和相关的 service bean 来实现框架的认证机制。当访问受保护的 URL 时会将用户引入登录界面或者是错误提示界面。
- 业务对象或者方法的安全:控制方法访问权限的。
- AuthenticationManager:处理来自于框架其他部分的认证请求。
- AccessDecisionManager:为 Web 或方法的安全提供访问决策。会注册一个默认的,但是我们也可以通过普通 bean 注册的方式使用自定义的 AccessDecisionManager。
- AuthenticationProvider:AuthenticationManager 是通过它来认证用户的。
- UserDetailsService:跟 AuthenticationProvider 关系密切,用来获取用户信息的。
<security:http auto-config="true"> <security:intercept-url pattern="/**" access="ROLE_USER"/></security:http>
如上定义中,intercept-url 定义了一个权限控制的规则。pattern 属性表示我们将对哪些 url 进行权限控制,其也可以是一个正则表达式,如上的写法表示我们将对所有的 URL 进行权限控制;access 属性表示在请求对应的 URL 时需要什么权限,默认配置时它应该是一个以逗号分隔的角色列表,请求的用户只需拥有其中的一个角色就能成功访问对应的 URL。这里的 “ROLE_USER” 表示请求的用户应当具有 ROLEUSER 角色。“ROLE” 前缀是一个提示 Spring 使用基于角色的检查的标记。
有了权限控制的规则了后,接下来我们需要定义一个 AuthenticationManager 用于认证。我们先来看如下定义:
<security:authentication-manager> <security:authentication-provider> <security:user-service> <security:user name="user" password="user" authorities="ROLE_USER"/> <security:user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN"/> </security:user-service> </security:authentication-provider> </security:authentication-manager>authentication-manager 元素指定了一个 AuthenticationManager,其需要一个 AuthenticationProvider(对应 authentication-provider 元素)来进行真正的认证,默认情况下 authentication-provider 对应一个 DaoAuthenticationProvider,其需要 UserDetailsService(对应 user-service 元素)来获取用户信息 UserDetails(对应 user 元素)。这里我们只是简单的使用 user 元素来定义用户,而实际应用中这些信息通常都是需要从数据库等地方获取的,这个将放到后续再讲。我们可以看到通过 user 元素我们可以指定 user 对应的用户名、密码和拥有的权限。user-service 还支持通过 properties 文件来指定用户信息,如:
-
阅读全文
0 0
- Spring Security入门一
- Spring Security学习笔记入门(一)
- Spring Cloud Security系列教程一:入门
- Acegi (Spring Security)入门
- Acegi (Spring Security)入门
- spring security 教程入门
- spring security 入门
- Acegi (Spring Security)入门
- Spring Security 入门
- Spring security入门
- spring security入门文章
- spring security入门实例
- Spring Security入门Demo
- spring security 入门
- Spring Security入门
- spring-security入门详解
- spring-security入门
- Acegi (Spring Security)入门
- OpenCV视频生成
- Algorithm之路十三:Roman to Integer
- hadoop-hdfs 伪分布式搭建
- 如何解决如果已在 BIOS/固件设置中禁用 Intel VT-x,或主机自更改此设置后从未重新启动,则 Intel VT-x
- 是否做编程笔记的思考
- Spring Security入门一
- (6)Spark 2.0.0 伪分布安装
- 正则法则判断手机格式
- win10 touchpad figure control function
- 技术团队人员管理:团队组建(1)
- 计算机网络知识
- sscanf详解
- 中国式直播行业出海:机会OR陷阱?
- LAMP架构及Mysql-5.6二进制免编译安装