mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-09-15 02:57:10 +08:00
fix: 修复 JustAuth 部分三方用户授权登录问题 (#148)
This commit is contained in:
@@ -24,8 +24,12 @@ import cn.hutool.core.util.RandomUtil;
|
|||||||
import cn.hutool.core.util.ReUtil;
|
import cn.hutool.core.util.ReUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.xkcoding.justauth.AuthRequestFactory;
|
import com.xkcoding.justauth.AuthRequestFactory;
|
||||||
|
import com.xkcoding.justauth.autoconfigure.JustAuthProperties;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import me.zhyd.oauth.AuthRequestBuilder;
|
||||||
|
import me.zhyd.oauth.config.AuthConfig;
|
||||||
import me.zhyd.oauth.model.AuthCallback;
|
import me.zhyd.oauth.model.AuthCallback;
|
||||||
import me.zhyd.oauth.model.AuthResponse;
|
import me.zhyd.oauth.model.AuthResponse;
|
||||||
import me.zhyd.oauth.model.AuthUser;
|
import me.zhyd.oauth.model.AuthUser;
|
||||||
@@ -56,6 +60,7 @@ import top.continew.starter.messaging.websocket.util.WebSocketUtils;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 第三方账号登录处理器
|
* 第三方账号登录处理器
|
||||||
@@ -68,7 +73,7 @@ import java.util.List;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class SocialLoginHandler extends AbstractLoginHandler<SocialLoginReq> {
|
public class SocialLoginHandler extends AbstractLoginHandler<SocialLoginReq> {
|
||||||
|
|
||||||
private final AuthRequestFactory authRequestFactory;
|
private final JustAuthProperties authProperties;
|
||||||
private final UserSocialService userSocialService;
|
private final UserSocialService userSocialService;
|
||||||
private final UserRoleService userRoleService;
|
private final UserRoleService userRoleService;
|
||||||
private final MessageService messageService;
|
private final MessageService messageService;
|
||||||
@@ -103,7 +108,9 @@ public class SocialLoginHandler extends AbstractLoginHandler<SocialLoginReq> {
|
|||||||
user = new UserDO();
|
user = new UserDO();
|
||||||
user.setUsername(username);
|
user.setUsername(username);
|
||||||
user.setNickname(nickname);
|
user.setNickname(nickname);
|
||||||
user.setGender(GenderEnum.valueOf(authUser.getGender().name()));
|
if(Objects.nonNull(authUser.getGender())) {
|
||||||
|
user.setGender(GenderEnum.valueOf(authUser.getGender().name()));
|
||||||
|
}
|
||||||
user.setAvatar(authUser.getAvatar());
|
user.setAvatar(authUser.getAvatar());
|
||||||
user.setDeptId(SysConstants.SUPER_DEPT_ID);
|
user.setDeptId(SysConstants.SUPER_DEPT_ID);
|
||||||
user.setStatus(DisEnableStatusEnum.ENABLE);
|
user.setStatus(DisEnableStatusEnum.ENABLE);
|
||||||
@@ -149,7 +156,12 @@ public class SocialLoginHandler extends AbstractLoginHandler<SocialLoginReq> {
|
|||||||
*/
|
*/
|
||||||
private AuthRequest getAuthRequest(String source) {
|
private AuthRequest getAuthRequest(String source) {
|
||||||
try {
|
try {
|
||||||
return authRequestFactory.get(source);
|
AuthConfig authConfig = authProperties.getType().get(source.toUpperCase());
|
||||||
|
return AuthRequestBuilder
|
||||||
|
.builder()
|
||||||
|
.source(source)
|
||||||
|
.authConfig(authConfig)
|
||||||
|
.build();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new BadRequestException("暂不支持 [%s] 平台账号登录".formatted(source));
|
throw new BadRequestException("暂不支持 [%s] 平台账号登录".formatted(source));
|
||||||
}
|
}
|
||||||
|
@@ -19,13 +19,16 @@ package top.continew.admin.controller.auth;
|
|||||||
import cn.dev33.satoken.annotation.SaIgnore;
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
import cn.dev33.satoken.stp.StpUtil;
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.xkcoding.justauth.AuthRequestFactory;
|
import com.xkcoding.justauth.autoconfigure.JustAuthProperties;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import me.zhyd.oauth.AuthRequestBuilder;
|
||||||
|
import me.zhyd.oauth.config.AuthConfig;
|
||||||
import me.zhyd.oauth.request.AuthRequest;
|
import me.zhyd.oauth.request.AuthRequest;
|
||||||
import me.zhyd.oauth.utils.AuthStateUtils;
|
import me.zhyd.oauth.utils.AuthStateUtils;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@@ -61,7 +64,7 @@ public class AuthController {
|
|||||||
|
|
||||||
private final AuthService authService;
|
private final AuthService authService;
|
||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
private final AuthRequestFactory authRequestFactory;
|
private final JustAuthProperties authProperties;
|
||||||
|
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
@Operation(summary = "登录", description = "用户登录")
|
@Operation(summary = "登录", description = "用户登录")
|
||||||
@@ -112,7 +115,12 @@ public class AuthController {
|
|||||||
|
|
||||||
private AuthRequest getAuthRequest(String source) {
|
private AuthRequest getAuthRequest(String source) {
|
||||||
try {
|
try {
|
||||||
return authRequestFactory.get(source);
|
AuthConfig authConfig = authProperties.getType().get(source.toUpperCase());
|
||||||
|
return AuthRequestBuilder
|
||||||
|
.builder()
|
||||||
|
.source(source)
|
||||||
|
.authConfig(authConfig)
|
||||||
|
.build();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new BadRequestException("暂不支持 [%s] 平台账号登录".formatted(source));
|
throw new BadRequestException("暂不支持 [%s] 平台账号登录".formatted(source));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user