栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第3章 Spring Security 认证Authentication

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第3章 Spring Security 认证Authentication

在Spring Security中 Authentication 对象代表认证用户的数据对象,包含一些用户基本信息(用户名、密码)。

Authentication接口
public interface Authentication extends Principal, Serializable {
    // 获取用户权限
    Collection getAuthorities();
    // 获取用户凭证,一般就是密码
    Object getCredentials();
    // 获取用户详细信息,一般是UserDetail
    Object getDetails();
    // 获取当前用户信息
    Object getPrincipal();
    // 用户是否认证成功
    boolean isAuthenticated();
    // 
    void setAuthenticated(boolean var1) throws IllegalArgumentException;
}
获取Authentication对象

如果用户成功登录后,我们可以通过 SecurityContextHolder 对象来获取当前用户对象。

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();

当然我们可以通过 SecurityContextHolder 对象进行最简单认证。

SecurityContextHolder.getContext().setAuthentication(
    new TestingAuthenticationToken("username", "password", "ROLE_USER"));
SecurityContextHolder

SecurityContextHolder 类包含 SecurityContext ,SecurityContext 类包含了 Authentication 。

SecurityContextHolder 提供三种实现 SecurityContext 的策略:

  • MODE_THREADLOCAL:使用ThreadLocal缓存 SecurityContext 对象。
  • MODE_INHERITABLETHREADLOCAL:使用InheritableThreadLocal缓存 SecurityContext 对象
  • MODE_GLOBAL:提供静态的 SecurityContext 对象。
SecurityContext接口
public interface SecurityContext extends Serializable {
    Authentication getAuthentication();

    void setAuthentication(Authentication var1);
}

Spring Security提供了一个实现类 SecurityContextImpl。

public class SecurityContextImpl implements SecurityContext {
    private Authentication authentication;

    public SecurityContextImpl() {
    }

    public SecurityContextImpl(Authentication authentication) {
        this.authentication = authentication;
    }
    // 省略其他方法
}

备注
本系列都是学习《深入浅出Spring Security》的笔记

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/322378.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号