diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/CasLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/CasLoginHandler.java
index 2975acd6f..23c9265fa 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/CasLoginHandler.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/CasLoginHandler.java
@@ -17,6 +17,7 @@
package com.pig4cloud.pigx.admin.handler;
+import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.pig4cloud.pigx.admin.api.dto.UserDTO;
import com.pig4cloud.pigx.admin.api.dto.UserInfo;
@@ -41,47 +42,54 @@ import org.springframework.stereotype.Component;
@AllArgsConstructor
public class CasLoginHandler extends AbstractLoginHandler {
- private final SysSocialDetailsMapper sysSocialDetailsMapper;
+ private final SysSocialDetailsMapper sysSocialDetailsMapper;
- private final SysUserService sysUserService;
+ private final SysUserService sysUserService;
- /**
- * cas 回到的ticket
- *
- * 通过ticket 调用CAS获取唯一标识
- * @param ticket
- * @return
- */
- @Override
- @SneakyThrows
- public String identify(String ticket) {
- SysSocialDetails condition = new SysSocialDetails();
- condition.setType(LoginTypeEnum.CAS.getType());
- SysSocialDetails socialDetails = sysSocialDetailsMapper.selectOne(new QueryWrapper<>(condition));
- // remark 字段填写 CAS 服务器的URL
- Cas30ProxyTicketValidator cas30ProxyTicketValidator = new Cas30ProxyTicketValidator(socialDetails.getRemark());
- Assertion validate = cas30ProxyTicketValidator.validate(ticket, socialDetails.getRedirectUrl());
- return validate.getPrincipal().getName();
- }
+ /**
+ * cas 回到的ticket
+ *
+ * 通过ticket 调用CAS获取唯一标识
+ *
+ * @param ticket
+ * @return
+ */
+ @Override
+ @SneakyThrows
+ public String identify(String ticket) {
+ SysSocialDetails condition = new SysSocialDetails();
+ condition.setType(LoginTypeEnum.CAS.getType());
+ SysSocialDetails socialDetails = sysSocialDetailsMapper.selectOne(new QueryWrapper<>(condition));
+ // remark 字段填写 CAS 服务器的URL
+ Cas30ProxyTicketValidator cas30ProxyTicketValidator = new Cas30ProxyTicketValidator(socialDetails.getRemark());
+ Assertion validate = cas30ProxyTicketValidator.validate(ticket, socialDetails.getRedirectUrl());
+ return validate.getPrincipal().getName();
+ }
- /**
+ /**
* 根据用户名获取用户信息
+ *
* @param username 用户名
* @return 用户信息对象,如果用户不存在则返回null
- */
- @Override
- public UserInfo info(String username) {
+ */
+ @Override
+ public UserInfo info(String username) {
+ if (StrUtil.isBlank(username)) {
+ log.warn("CAS用户名为空,无法获取用户信息");
+ return null;
+ }
+
UserDTO userDTO = new UserDTO();
userDTO.setUsername(username);
R userInfoR = sysUserService.getUserInfo(userDTO);
if (userInfoR.getData() == null) {
- log.info("CAS 不存在用户:{}", username);
- return null;
- }
+ log.info("CAS 不存在用户:{}", username);
+ return null;
+ }
return userInfoR.getData();
- }
+ }
}
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/DingTalkLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/DingTalkLoginHandler.java
index 1f6e06d26..ca3a8748e 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/DingTalkLoginHandler.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/DingTalkLoginHandler.java
@@ -17,6 +17,7 @@
package com.pig4cloud.pigx.admin.handler;
+import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
@@ -91,6 +92,11 @@ public class DingTalkLoginHandler extends AbstractLoginHandler {
*/
@Override
public UserInfo info(String openId) {
+ if (StrUtil.isBlank(openId)) {
+ log.warn("钉钉openId为空,无法获取用户信息");
+ return null;
+ }
+
UserDTO userDTO = new UserDTO();
userDTO.setWxDingUserid(openId);
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/GiteeLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/GiteeLoginHandler.java
index 3941d3ff8..dc6900d27 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/GiteeLoginHandler.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/GiteeLoginHandler.java
@@ -17,6 +17,7 @@
package com.pig4cloud.pigx.admin.handler;
+import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
@@ -87,6 +88,10 @@ public class GiteeLoginHandler extends AbstractLoginHandler {
*/
@Override
public UserInfo info(String identify) {
+ if (StrUtil.isBlank(identify)) {
+ log.warn("Gitee标识为空,无法获取用户信息");
+ return null;
+ }
UserDTO userDTO = new UserDTO();
userDTO.setGiteeLogin(identify);
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/MiniAppLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/MiniAppLoginHandler.java
index ed48115c6..81803fbe1 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/MiniAppLoginHandler.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/MiniAppLoginHandler.java
@@ -17,6 +17,7 @@
package com.pig4cloud.pigx.admin.handler;
+import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
@@ -46,72 +47,76 @@ import org.springframework.stereotype.Component;
@AllArgsConstructor
public class MiniAppLoginHandler extends AbstractLoginHandler {
- private final SysUserService sysUserService;
+ private final SysUserService sysUserService;
- private final SysSocialDetailsMapper sysSocialDetailsMapper;
+ private final SysSocialDetailsMapper sysSocialDetailsMapper;
- /**
- * 小程序登录传入code
- *
- * 通过code 调用qq 获取唯一标识
- *
- * @param code
- * @return
- */
- @Override
- public String identify(String code) {
- SysSocialDetails condition = new SysSocialDetails();
- condition.setType(LoginTypeEnum.MINI_APP.getType());
- SysSocialDetails socialDetails = sysSocialDetailsMapper.selectOne(new QueryWrapper<>(condition));
+ /**
+ * 小程序登录传入code
+ *
+ * 通过code 调用qq 获取唯一标识
+ *
+ * @param code
+ * @return
+ */
+ @Override
+ public String identify(String code) {
+ SysSocialDetails condition = new SysSocialDetails();
+ condition.setType(LoginTypeEnum.MINI_APP.getType());
+ SysSocialDetails socialDetails = sysSocialDetailsMapper.selectOne(new QueryWrapper<>(condition));
- String url = String.format(SecurityConstants.MINI_APP_AUTHORIZATION_CODE_URL, socialDetails.getAppId(),
- socialDetails.getAppSecret(), code);
- String result = HttpUtil.get(url);
- log.debug("微信小程序响应报文:{}", result);
- JSONObject resultJsonObj = JSONUtil.parseObj(result);
+ String url = String.format(SecurityConstants.MINI_APP_AUTHORIZATION_CODE_URL, socialDetails.getAppId(),
+ socialDetails.getAppSecret(), code);
+ String result = HttpUtil.get(url);
+ log.debug("微信小程序响应报文:{}", result);
+ JSONObject resultJsonObj = JSONUtil.parseObj(result);
- if (resultJsonObj.containsKey("errcode")) {
- log.error("微信小程序登录失败:{}", result);
- throw new CheckedException("微信小程序登录失败");
- }
+ if (resultJsonObj.containsKey("errcode")) {
+ log.error("微信小程序登录失败:{}", result);
+ throw new CheckedException("微信小程序登录失败");
+ }
- Object obj = resultJsonObj.get("openid");
- return obj.toString();
- }
+ return resultJsonObj.getStr("openid");
+ }
- /**
- * 根据openId获取用户信息
- *
- * @param openId 用户openId
- * @return 用户信息对象,未找到时返回null
- */
- @Override
- public UserInfo info(String openId) {
- UserDTO userDTO = new UserDTO();
- userDTO.setMiniOpenid(openId);
+ /**
+ * 根据openId获取用户信息
+ *
+ * @param openId 用户openId
+ * @return 用户信息对象,未找到时返回null
+ */
+ @Override
+ public UserInfo info(String openId) {
+ if (StrUtil.isBlank(openId)) {
+ log.warn("小程序openId为空,无法获取用户信息");
+ return null;
+ }
- R userInfoR = sysUserService.getUserInfo(userDTO);
+ UserDTO userDTO = new UserDTO();
+ userDTO.setMiniOpenid(openId);
- if (userInfoR.getData() == null) {
- log.info("小程序不存在用户:{}", openId);
- return null;
- }
+ R userInfoR = sysUserService.getUserInfo(userDTO);
- return userInfoR.getData();
- }
+ if (userInfoR.getData() == null) {
+ log.info("小程序不存在用户:{}", openId);
+ return null;
+ }
- /**
- * 绑定逻辑
- *
- * @param user 用户实体
- * @param identify 渠道返回唯一标识
- * @return
- */
- @Override
- public Boolean bind(SysUser user, String identify) {
- user.setMiniOpenid(identify);
- sysUserService.updateById(user);
- return true;
- }
+ return userInfoR.getData();
+ }
+
+ /**
+ * 绑定逻辑
+ *
+ * @param user 用户实体
+ * @param identify 渠道返回唯一标识
+ * @return
+ */
+ @Override
+ public Boolean bind(SysUser user, String identify) {
+ user.setMiniOpenid(identify);
+ sysUserService.updateById(user);
+ return true;
+ }
}
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/OscChinaLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/OscChinaLoginHandler.java
index b2bfeb0ca..34ba9b02e 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/OscChinaLoginHandler.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/OscChinaLoginHandler.java
@@ -17,6 +17,7 @@
package com.pig4cloud.pigx.admin.handler;
+import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
@@ -86,8 +87,7 @@ public class OscChinaLoginHandler extends AbstractLoginHandler {
JSONObject userInfo = JSONUtil.parseObj(resp);
// 开源中国唯一标识
- String id = userInfo.getStr("id");
- return id;
+ return userInfo.getStr("id");
}
/**
@@ -98,6 +98,11 @@ public class OscChinaLoginHandler extends AbstractLoginHandler {
*/
@Override
public UserInfo info(String identify) {
+ if (StrUtil.isBlank(identify)) {
+ log.warn("开源中国标识为空,无法获取用户信息");
+ return null;
+ }
+
UserDTO userDTO = new UserDTO();
userDTO.setOscId(identify);
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java
index f9bf59779..d9866eb62 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java
@@ -17,6 +17,7 @@
package com.pig4cloud.pigx.admin.handler;
+import cn.hutool.core.util.StrUtil;
import com.pig4cloud.pigx.admin.api.dto.UserDTO;
import com.pig4cloud.pigx.admin.api.dto.UserInfo;
import com.pig4cloud.pigx.admin.api.entity.SysUser;
@@ -48,23 +49,28 @@ public class SmsLoginHandler extends AbstractLoginHandler {
}
/**
- * 通过手机号获取用户信息
- * @param identify 手机号标识
- * @return 用户信息,未找到时返回null
+ * 通过手机号获取用户信息
+ * @param identify 手机号标识
+ * @return 用户信息,未找到时返回null
*/
@Override
public UserInfo info(String identify) {
- UserDTO userDTO = new UserDTO();
- userDTO.setPhone(identify);
-
- R userInfoR = sysUserService.getUserInfo(userDTO);
-
- if (userInfoR.getData() == null) {
- log.info("手机号 不存在用户:{}", identify);
+ if (StrUtil.isBlank(identify)) {
+ log.warn("手机号为空,无法获取用户信息");
return null;
}
- return userInfoR.getData();
+ UserDTO userDTO = new UserDTO();
+ userDTO.setPhone(identify);
+
+ R userInfoR = sysUserService.getUserInfo(userDTO);
+
+ if (userInfoR.getData() == null) {
+ log.info("手机号 不存在用户:{}", identify);
+ return null;
+ }
+
+ return userInfoR.getData();
}
/**
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatCPLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatCPLoginHandler.java
index af636b1ba..f25f2942b 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatCPLoginHandler.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatCPLoginHandler.java
@@ -17,6 +17,7 @@
package com.pig4cloud.pigx.admin.handler;
+import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -82,6 +83,11 @@ public class WeChatCPLoginHandler extends AbstractLoginHandler {
*/
@Override
public UserInfo info(String openId) {
+ if (StrUtil.isBlank(openId)) {
+ log.warn("企业微信userid为空,无法获取用户信息");
+ return null;
+ }
+
UserDTO userDTO = new UserDTO();
userDTO.setWxCpUserid(openId);
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatLoginHandler.java
index 2c347f6e7..f7b774c1a 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatLoginHandler.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatLoginHandler.java
@@ -17,6 +17,7 @@
package com.pig4cloud.pigx.admin.handler;
+import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -42,63 +43,70 @@ import org.springframework.stereotype.Component;
@AllArgsConstructor
public class WeChatLoginHandler extends AbstractLoginHandler {
- private final SysUserService sysUserService;
+ private final SysUserService sysUserService;
- private final SysSocialDetailsMapper sysSocialDetailsMapper;
+ private final SysSocialDetailsMapper sysSocialDetailsMapper;
- /**
- * 微信登录传入code
- *
- * 通过code 调用qq 获取唯一标识
- * @param code
- * @return
- */
- @Override
- public String identify(String code) {
- SysSocialDetails condition = new SysSocialDetails();
- condition.setType(LoginTypeEnum.WECHAT.getType());
- SysSocialDetails socialDetails = sysSocialDetailsMapper.selectOne(new QueryWrapper<>(condition));
+ /**
+ * 微信登录传入code
+ *
+ * 通过code 调用qq 获取唯一标识
+ *
+ * @param code
+ * @return
+ */
+ @Override
+ public String identify(String code) {
+ SysSocialDetails condition = new SysSocialDetails();
+ condition.setType(LoginTypeEnum.WECHAT.getType());
+ SysSocialDetails socialDetails = sysSocialDetailsMapper.selectOne(new QueryWrapper<>(condition));
- String url = String.format(SecurityConstants.WX_AUTHORIZATION_CODE_URL, socialDetails.getAppId(),
- socialDetails.getAppSecret(), code);
- String result = HttpUtil.get(url);
- log.debug("微信响应报文:{}", result);
+ String url = String.format(SecurityConstants.WX_AUTHORIZATION_CODE_URL, socialDetails.getAppId(),
+ socialDetails.getAppSecret(), code);
+ String result = HttpUtil.get(url);
+ log.debug("微信响应报文:{}", result);
- Object obj = JSONUtil.parseObj(result).get("openid");
- return obj.toString();
- }
+ return JSONUtil.parseObj(result).getStr("openid");
+ }
- /**
- * 根据微信openId获取用户信息
- * @param openId 微信openId
- * @return 用户信息,未找到时返回null
- */
- @Override
- public UserInfo info(String openId) {
- UserDTO userDTO = new UserDTO();
- userDTO.setWxOpenid(openId);
+ /**
+ * 根据微信openId获取用户信息
+ *
+ * @param openId 微信openId
+ * @return 用户信息,未找到时返回null
+ */
+ @Override
+ public UserInfo info(String openId) {
+ if (StrUtil.isBlank(openId)) {
+ log.warn("微信openId为空,无法获取用户信息");
+ return null;
+ }
- R userInfoR = sysUserService.getUserInfo(userDTO);
+ UserDTO userDTO = new UserDTO();
+ userDTO.setWxOpenid(openId);
- if (userInfoR.getData() == null) {
- log.info("微信 不存在用户:{}", openId);
- return null;
- }
+ R userInfoR = sysUserService.getUserInfo(userDTO);
- return userInfoR.getData();
- }
+ if (userInfoR.getData() == null) {
+ log.info("微信 不存在用户:{}", openId);
+ return null;
+ }
- /**
- * 绑定逻辑
- * @param user 用户实体
- * @param identify 渠道返回唯一标识
- * @return
- */
- @Override
- public Boolean bind(SysUser user, String identify) {
- user.setWxOpenid(identify);
- sysUserService.updateById(user);
- return true;
- }
+ return userInfoR.getData();
+ }
+
+ /**
+ * 绑定逻辑
+ *
+ * @param user 用户实体
+ * @param identify 渠道返回唯一标识
+ * @return
+ */
+ @Override
+ public Boolean bind(SysUser user, String identify) {
+ user.setWxOpenid(identify);
+ sysUserService.updateById(user);
+ return true;
+ }
}