Spring security 有哪几种认证策略呢?

Java-教程王 SpringSecurity 发布时间:2021-08-06 11:12:32 阅读数:18627 1
下文讲述Spring Security中的认证策略的简介说明,如下所示:
  1. 内存用户存储库,即显示的配置在spring配置文件中
  2. 基于jdbc的用户存储库
  3. 基于LDAP的用户存储库
  4. OpenID 分散式用户身份识别系统
  5. 中心认证服务(CAS)
  6. X.509证书
  7. 基于JAAS的提供者

配置内存用户存储库

首先建立一个用户服务,配置所有用户和权限信息。然后交给认证管理器管理,认证管理器会将认证的任务交给一个或多个认证提供者。
<!-- 用户服务-->
<user-service id="userService">
    <user name="java265-user1" password="123456" authorities="ROLE_ADMIN">
    <user name="java265-admin" password="888888" authorities="ROLE_JavaAdmin">
    ......
</user-service>
<!-- 认证管理器-->
<authentication-manager>
    <authentication-provider user-service-ref="userService"/>
</authentication-manager>
另一种配置方式:
将认证提供者和用户服务装配在一起,适用于只有一种用户服务
<!-- 认证提供者-->
<authentication-provider>
    <!-- 用户服务-->
<user-service id="userService">
    <user name="java265-user1" password="123456" authorities="ROLE_ADMIN">
    <user name="java265-admin" password="888888" authorities="ROLE_JavaAdmin">
    ......
</user-service>
</authentication-provider>

基于数据库进行认证

这是我们日常开发中,常用的一种操作方式,因为用户的登录名和密码
都存储在数据库中,那么可以使用Spring Security提供的<jdbc-usr-service>
当设置data-source-ref数据源
则spring security将使用sql语句从数据库中查找用户和权限信息
users-by-username-query:使用用户名查询用户名,密码以及是否可用状态
authorities-by-username-query:使用用户名查询用户被用户名和授权的权限
group-authorities-by-username-query:使用用户名查询用户组的权限
<jdbc-user-service id="userService"  data-source-ref="dataSource"
      users-by-username="select username,password, true from user where username=?"
      authories-by-username-query="select username,role from user_role where username=?" />  
<authentication-manager>
    <authentication-provider user-service-ref="userService"/>
</authentication-manager>

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringSecurity/202108/640.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者