
com.flyfish.oauth.configuration.DefaultUserService Maven / Gradle / Ivy
package com.flyfish.oauth.configuration;
import com.flyfish.oauth.configuration.tools.UserConverter;
import com.flyfish.oauth.domain.raw.LocalUser;
import com.flyfish.oauth.domain.raw.SSOUserInfo;
/**
* 默认的用户service,提供默认实现
*
* @author wybab
* 如果需要更加精准的控制,请实现
* @see com.flyfish.oauth.configuration.OAuth2SsoUserService
* 本默认实现不支持用户补全
*/
public class DefaultUserService implements OAuth2SsoUserService {
// 用户转换器,使用转换器处理业务
private final UserConverter userConverter;
/**
* 默认构造器,传入用户转换器。如果spring存在,可以自动实例化
*
* @param userConverter 用户转换器
*/
public DefaultUserService(UserConverter userConverter) {
this.userConverter = userConverter;
}
/**
* 转换用户为本地用户
*
* @param userInfo 平台用户信息
* @return 结果
*/
@Override
public T getUser(SSOUserInfo userInfo) {
// 可以通过localUser对象的outerId获取本地用户
LocalUser localUser = userInfo.localUser();
if (null != localUser) {
return userConverter.convert(localUser);
}
return null;
}
/**
* 创建用户
*
* @param userInfo 平台用户信息
* @return 结果
*/
@Override
public T completeUser(SSOUserInfo userInfo) {
// 当获取用户返回null,跳入的备选路径,可以创建临时用户或模糊查询用户,请慎用,默认返回null即可。
return getUser(userInfo);
}
/**
* 判断用户是否存在
*
* @param userInfo 平台用户信息
* @return 结果
*/
@Override
public boolean exists(SSOUserInfo userInfo) {
// 如果您不需要模糊匹配用户,直接返回true即可(建议),否则,请返回用户的存在性
return true;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy