Class IAMUserDetailService

java.lang.Object
tech.riemann.nif.oidc.service.IAMUserDetailService
All Implemented Interfaces:
tech.riemann.nif.auth.service.UserDetailService

public class IAMUserDetailService extends Object implements tech.riemann.nif.auth.service.UserDetailService
IAM用户详情服务实现

基于OpenID Connect协议,从IAM(身份访问管理)服务器获取用户信息

主要功能: 1. 使用Token从IAM服务器获取用户详细信息 2. 使用Guava Cache缓存用户信息,减少重复请求 3. 支持用户信息增强(通过UserInfoEnhancer)

缓存配置: - 并发级别:8 - 过期时间:写缓存后30分钟 - 初始容量:10 - 最大容量:1000(超过后按LRU策略移除) - 统计命中率

使用示例:

IAMUserDetailService service = new IAMUserDetailService(
        "https://iam.example.com/userinfo?clientId=%s",
        "my-client-id",
        restClient,
        userInfoEnhancer);
AuthUser user = service.userByToken(accessToken);
Author:
Kerbores(kerbores@riemann.tech)
  • Constructor Details

    • IAMUserDetailService

      public IAMUserDetailService()
  • Method Details

    • save

      public void save(@Nullable tech.riemann.nif.auth.service.AuthUser user)
      Specified by:
      save in interface tech.riemann.nif.auth.service.UserDetailService
    • userByToken

      public tech.riemann.nif.auth.service.AuthUser userByToken(@Nullable String token)
      Specified by:
      userByToken in interface tech.riemann.nif.auth.service.UserDetailService
      Parameters:
      token -
      Returns:
      See Also:
      • UserDetailService.userByToken(java.lang.String)