Interface AuthService

All Known Implementing Classes:
DefaultAuthService, HttpServletAuthService

public interface AuthService
认证服务接口

提供用户认证相关的核心功能,包括: 1. Token生成和管理(访问令牌和刷新令牌) 2. 用户登录和登出 3. 用户信息获取(当前登录用户、角色、权限) 4. 会话管理 5. URL鉴权验证

该接口定义了认证服务的标准行为,具体实现由DefaultAuthService提供

使用示例:

// 用户登录
AuthUser user = authService.login(authUser);

// 获取当前用户
AuthUser currentUser = authService.user();

// 获取用户角色
List<String> roles = authService.roles();

// 登出
authService.logout();
Author:
Kerbores(kerbores@riemann.tech)
  • Method Details

    • token

      String token()
      获取当前用户的访问令牌(Token)

      从当前会话中获取已生成的Token,如果未登录则可能返回null

      Returns:
      访问令牌字符串
    • refreshToken

      String refreshToken()
      获取当前用户的刷新令牌(Refresh Token)

      刷新令牌的有效期通常比访问令牌长,用于在访问令牌过期后获取新的访问令牌

      Returns:
      刷新令牌字符串
    • subject

      String subject()
      根据当前会话信息获取Subject(主题)

      Subject通常是用户的唯一标识,如用户名或用户ID

      Returns:
      当前用户的Subject标识
    • token

      String token(String subject)
      为指定用户生成访问令牌
      Parameters:
      subject - 用户标识(如用户名或用户ID)
      Returns:
      生成的访问令牌字符串
    • optionalUser

      Optional<AuthUser> optionalUser()
      尝试获取当前认证用户

      如果用户已登录,返回包含用户信息的Optional 如果用户未登录,返回空的Optional

      Returns:
      包含当前用户信息的Optional,未登录时为空
    • refreshToken

      String refreshToken(String subject)
      为指定用户生成刷新令牌

      刷新令牌的有效期是访问令牌的两倍

      Parameters:
      subject - 用户标识(如用户名或用户ID)
      Returns:
      生成的刷新令牌字符串
    • user

      AuthUser user()
      获取当前登录用户信息

      如果用户未登录,可能返回null或匿名用户

      Returns:
      当前登录用户信息
    • userName

      default String userName()
      获取当前登录用户的用户名

      便捷方法,内部调用user()并获取用户名

      Returns:
      当前登录用户的用户名,未登录返回空字符串
    • roles

      default List<String> roles()
      获取当前登录用户的角色列表

      便捷方法,内部调用user()并获取角色列表

      Returns:
      当前登录用户的角色列表,未登录或匿名用户返回空列表
    • permissions

      default List<String> permissions()
      获取当前登录用户的权限列表

      便捷方法,内部调用user()并获取权限列表

      Returns:
      当前登录用户的权限列表,未登录或匿名用户返回空列表
    • login

      AuthUser login(AuthUser user)
      用户登录(保持会话)

      验证用户凭据,如果验证成功则创建会话并返回用户信息

      Parameters:
      user - 包含登录凭据的用户对象(如用户名和密码)
      Returns:
      登录成功后的用户信息(包含角色、权限等)
    • logout

      void logout()
      用户登出

      清除当前用户的会话信息,使Token失效

    • authentication

      boolean authentication(List<String> withoutAuthenticationUrlRegulars)
      URL鉴权验证

      检查当前请求是否通过认证,验证Token的有效性 对于配置为跳过鉴权的URL,直接返回true

      Parameters:
      withoutAuthenticationUrlRegulars - 跳过鉴权的URL(Ant路径模式)列表
      Returns:
      是否通过鉴权,true表示通过,false表示未通过