From e6a0c3381c7e67322cc32e3dbcdfbb409852ed1e Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Wed, 14 Jun 2023 13:48:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=8D=E7=99=BB=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ningdatech/pmapi/user/constant/LoginTypeEnum.java | 2 ++ .../security/auth/credential/CredentialAuthProvider.java | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/user/constant/LoginTypeEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/user/constant/LoginTypeEnum.java index 5ed7d49..fd9fec6 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/user/constant/LoginTypeEnum.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/user/constant/LoginTypeEnum.java @@ -17,6 +17,8 @@ public enum LoginTypeEnum { */ DING_QR_LOGIN, + DING_MD_LOGIN, + /** * 手机号验证码登陆 */ diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/credential/CredentialAuthProvider.java b/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/credential/CredentialAuthProvider.java index b5e76dc..b6f0518 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/credential/CredentialAuthProvider.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/credential/CredentialAuthProvider.java @@ -60,6 +60,19 @@ public class CredentialAuthProvider implements AuthenticationProvider { user = userDetailsService.loadUserByUsername(accountId + UserDeatilsServiceConstant.USER_DETAILS_SERVICE_SEPARATOR + loginTypeEnum.name()); } break; + case DING_MD_LOGIN: { + String code = (String) authenticationToken.getCredentials(); + GenericResult accountResult = zwddAuthClient.getMobileAccountId(code); + if (!accountResult.isSuccess()) { + throw new BadCredentialsException("login fail! 浙政钉免登校验失败"); + } + String accountId = accountResult.getData(); + if (Objects.isNull(accountId)) { + throw new BadCredentialsException("login fail! 浙政钉免登校验失败"); + } + user = userDetailsService.loadUserByUsername(accountId + UserDeatilsServiceConstant.USER_DETAILS_SERVICE_SEPARATOR + loginTypeEnum.name()); + } + break; case PHONE_VERIFICATION_CODE_LOGIN: { if (!phoneVerifyCodeSkip) { // 校验短信验证码