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) { // 校验短信验证码