9.4 认证用户
来源:互联网 发布:比价商城源码 编辑:程序博客网 时间:2024/06/02 02:13
9.4 认证用户
Spring Security涵盖了许多常用的认证场景,包含如下的用户认证策略:
1)内存(基于Spring配置)用户存储库
2)基于JDBC的用户存储库
3)基于LDAP的用户存储库
4)OpenID分散式的用户身份识别系统
5)中心认证服务(CAS)
6)X.509证书
7)基于JAAS的提供者
9.4.1 配置内存用户存储库
在可用的认证策略中,最简单的一种就是直接在Spring配置中声明用户的详细信息。这可以通过使用Spring Security XML命名空间中的<user-service>元素来创建一个用户服务来实现
<user-service id="userService">
<user name="habuma" password="letmein" authorities="ROLE_SPITTER,ROLE_ADMIN"/>
<user name="twoqubed" password="longhorns" authorities="ROLE_SPITTER"/>
<user name="admin" password="admin" authorities="ROLE_ADMIN"/>
</user-service>
用户服务现在已经准备就绪,并等待为认证功能查询用户详细信息。剩下的事情就是将其装配到Spring Security的认证管理中:
<authentication-manager>
<authentication-provider user-service-ref="userService"/>
</authentication-manager>
<authentication-manager>元素注册一个认证管理器。更确切的讲,它将注册一个ProviderManager实例,认证管理器将把认证的任务委托给一个或多个认证提供者。在本示例中,是一个依赖于用户服务的认证提供者来获取用户详细信息。
可以将用户服务嵌入到认证提供者中:
<authentication-provider>
<user-service id="userService">
<user name="" password="" authorities=""/>
</user-service>
</authentication-prpvider>
9.4.2 基于数据库进行认证
<jdbc-user-service>的使用方式与<user-service>相同。这包括将其装配到<authentication-provider>的user-service-ref属性中或者将其嵌入到<authentication-provider>中。在这里我们配置了一个带有id属性的<jdbc-user-service>,这样它可以单独声明并装配到<authentication-provider>中:
<jdbc-user-service id="userservice" data-source-ref="dataSource"/>
<jdbc-user-service>元素使用了一个JDBC数据源——通过它的data-source-ref属性来进行装配——来查询数据库并获取用户详细信息。如果没有其他的配置,用户服务就会使用如下的SQL语句来查询用户信息:
select username,password,enabled
from users
where username = ?
默认情况下,基本的<jdbc-user-service>配置将使用如下SQL语句查询指定用户名的权限:
select username,authority
from authorities
where username = ?
<jdbc-user-service>的属性能够改变查询用户详细信息的SQL语句
1)users-by-username-query:根据用户名查询用户的用户名,密码以及是否可用的状态
2)authorities-by-username-query:根据用户名查询被授予的权限
3)group-authorities-by-username-query :根据用户名查询用户的组权限
9.4.3 基于LDAP进行认证
9.4.4 启用remember-me功能
在<http>元素中添加一个<remember-me>元素:
<http auto-config="true" use-expressions="true">
...
<remember-me key="spitterKey" token-validity-seconds="2419200"/>
</http>
如果你在使用<remember-me>元素时没有任何属性,那么这个功能是通过在cookie中存储一个令牌(token)完成的,这个令牌最多2周内有效。
存储在cookie中的令牌包含用户名、密码、过期时间和一个私钥——在写入cookie前都进行了MD5哈希。默认情况下,私钥名为SpringSecured。
在登录请求页面必须包含一个名为_spring_security_remember_me的参数。
- 9.4 认证用户
- 用户认证
- 用户认证
- 用户认证
- 用户认证和用户授权
- 用户认证管理设计方案
- 用户认证管理设计方案
- 用户认证管理设计方案
- 用户认证管理设计方案
- Apache用户认证方法
- PostgreSQL数据库用户认证
- Rails,用户认证
- 用户认证管理设计方案
- 用户认证管理设计方案
- Apache用户认证
- PostgreSQL数据库用户认证
- 继续摘抄:用户认证
- 16.5.2 用户认证
- 清除 360流氓软件对浏览器的劫持插件B5T,浏览器快捷方式会带参数 123.125y.com
- iOS 开发 OC编程 方法的书写
- 分享几个appstore之外的iOS软件下载网址
- UITableView的reloadData方法,不执行cellForRow方法,但是执行了numberOfRows和heightForRow方法
- iOS 开发 OC编程 便利构造器以及初始化方法
- 9.4 认证用户
- 【字典树】HDU1247Hat’s Words
- 线性回归与逻辑回归
- erlang监督者模式
- 由于工作需要,写了一个关于支持通配符的批量删除文件或文件夹
- Java 格式化类
- 事件
- iOS 开发 OC编程 属性和字符串
- 【2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest G】【数据结构-线段树】Hiring 准备时间完成时间最早完成日期