Archived
forked from admin/userbase
38 lines
1.4 KiB
Java
38 lines
1.4 KiB
Java
package com.yunhai.userbase.config;
|
|
|
|
import com.yunhai.platform.auth.UserDetailsProvider;
|
|
import com.yunhai.platform.utils.model.BoaUser;
|
|
import com.yunhai.userbase.service.UserCenterService;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
/**
|
|
* 平台 {@link UserDetailsProvider} 的 UserBase 本地实现:CAS 会话流解析出登录名/手机号后,
|
|
* 由本类查 UserBase 自身库,组装成基础平台统一的 {@link BoaUser}。<br><br>
|
|
* 以 {@code @Component} 注册为 Bean,覆盖 yh-auth 默认的 NoOp 实现(@ConditionalOnMissingBean)。
|
|
* 注意:UserBase 自身不引入 yh-openapi-spring-boot-starter,故 openApiUserDetailsProvider 不会被创建,
|
|
* 不会形成「用户中心回调自身」的环。
|
|
*/
|
|
@Component
|
|
public class UserBaseUserDetailsProvider implements UserDetailsProvider {
|
|
|
|
@Autowired
|
|
private UserCenterService userCenterService;
|
|
|
|
@Override
|
|
public BoaUser loadByLoginName(String loginName) {
|
|
if (loginName == null) {
|
|
return null;
|
|
}
|
|
return userCenterService.getUserInfoWithDeptByAccount(loginName.trim());
|
|
}
|
|
|
|
@Override
|
|
public BoaUser loadByPhone(String phone) {
|
|
if (phone == null) {
|
|
return null;
|
|
}
|
|
return userCenterService.getUserInfoWithDeptByPhone(phone.trim());
|
|
}
|
|
}
|