【Spring Security】 Authentication

Metadata

title: 【Spring Security】 Authentication
date: 2023-02-01 19:33
tags:
  - 行动阶段/完成
  - 主题场景/组件
  - 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
  - 细化主题/Module/SpringSecurity
categories:
  - SpringSecurity
keywords:
  - SpringSecurity
description: 【Spring Security】 Authentication

【Spring Security】 Authentication

Authentication 接口源码:

public interface Authentication extends Principal, Serializable {
    /**
     * 获取 授权信息 ,用户权限集合 => 可用于访问受保护资源时的权限验证
     */
    Collection<? extends GrantedAuthority> getAuthorities();
    /**
     * 凭据 这通常是一个密码
     */
    Object getCredentials();
    /**
     * 被认证主体的身份。在带有用户名和密码的身份验证请求的情况下,这将是用户名。
     */
    Object getPrincipal();
    /**
     * 是否被认证。
     */
    boolean isAuthenticated();
    /**
     * 认证结果设置。
     */
    void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException;
}

其中 Authentication 包含:

  • principal- 识别用户。使用用户名 / 密码进行身份验证时,这通常是 UserDetails.
  • credentials- 通常是密码。在许多情况下,这将在用户通过身份验证后清除,以确保它不会泄露。
  • authorities- GrantedAuthoritys 是授予用户的高级权限。一些示例是角色或权限值。
SecurityContext context = SecurityContextHolder.getContext();
Authentication authentication = context.getAuthentication();
String username = authentication.getName();
Object principal = authentication.getPrincipal();
Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();