Class HerodotusUserDetailsService

java.lang.Object
cn.herodotus.engine.oauth2.management.processor.HerodotusUserDetailsService
All Implemented Interfaces:
cn.herodotus.engine.oauth2.core.definition.service.EnhanceUserDetailsService, org.springframework.security.core.userdetails.UserDetailsService

public class HerodotusUserDetailsService extends Object implements cn.herodotus.engine.oauth2.core.definition.service.EnhanceUserDetailsService

Description: UserDetailsService核心类

之前一直使用Fegin进行UserDetailsService的远程调用。现在直接改为数据库访问。主要原因是: 1. 根据目前的设计,Oauth的表与系统权限相关的表是在一个库中的。因此UAA和UPMS分开是为了以后提高性能考虑,逻辑上没有必要分成两个服务。 2. UserDetailsService 和 ClientDetailsService 是Oauth核心内容,调用频繁增加一道远程调用增加消耗而已。 3. UserDetailsService 和 ClientDetailsService 是Oauth核心内容,只是UAA在使用。 4. UserDetailsService 和 ClientDetailsService 是Oauth核心内容,是各种验证权限之前必须调用的内容。 一方面:使用feign的方式调用,只能采取作为白名单的方式,安全性无法保证。 另一方面:会产生调用的循环。 因此,最终考虑把这两个服务相关的代码,抽取至UPMS API,采用UAA直接访问数据库的方式。

Author:
: gengwei.zheng
Date:
: 2019/11/25 11:02
  • Constructor Details

    • HerodotusUserDetailsService

      public HerodotusUserDetailsService(cn.herodotus.engine.oauth2.core.definition.strategy.StrategyUserDetailsService strategyUserDetailsService)
  • Method Details

    • loadUserBySocial

      public org.springframework.security.core.userdetails.UserDetails loadUserBySocial(String source, cn.herodotus.engine.assistant.definition.domain.oauth2.AccessPrincipal accessPrincipal) throws org.springframework.security.core.userdetails.UsernameNotFoundException
      Specified by:
      loadUserBySocial in interface cn.herodotus.engine.oauth2.core.definition.service.EnhanceUserDetailsService
      Throws:
      org.springframework.security.core.userdetails.UsernameNotFoundException
    • loadHerodotusUserByUsername

      public cn.herodotus.engine.oauth2.core.definition.domain.HerodotusUser loadHerodotusUserByUsername(String username) throws org.springframework.security.core.userdetails.UsernameNotFoundException
      Specified by:
      loadHerodotusUserByUsername in interface cn.herodotus.engine.oauth2.core.definition.service.EnhanceUserDetailsService
      Throws:
      org.springframework.security.core.userdetails.UsernameNotFoundException
    • loadUserByUsername

      public org.springframework.security.core.userdetails.UserDetails loadUserByUsername(String username) throws org.springframework.security.core.userdetails.UsernameNotFoundException
      Specified by:
      loadUserByUsername in interface org.springframework.security.core.userdetails.UserDetailsService
      Throws:
      org.springframework.security.core.userdetails.UsernameNotFoundException