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 Summary
ConstructorsConstructorDescriptionHerodotusUserDetailsService(cn.herodotus.engine.oauth2.core.definition.strategy.StrategyUserDetailsService strategyUserDetailsService) -
Method Summary
Modifier and TypeMethodDescriptioncn.herodotus.engine.oauth2.core.definition.domain.HerodotusUserloadHerodotusUserByUsername(String username) org.springframework.security.core.userdetails.UserDetailsloadUserBySocial(String source, cn.herodotus.engine.assistant.definition.domain.oauth2.AccessPrincipal accessPrincipal) org.springframework.security.core.userdetails.UserDetailsloadUserByUsername(String username)
-
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:
loadUserBySocialin interfacecn.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:
loadHerodotusUserByUsernamein interfacecn.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:
loadUserByUsernamein interfaceorg.springframework.security.core.userdetails.UserDetailsService- Throws:
org.springframework.security.core.userdetails.UsernameNotFoundException
-