Browse Source

修改sso登录,使更灵活...

dev_shibei_match
wxz 5 years ago
parent
commit
65558cd14f
  1. 20
      epmet-auth/src/main/java/com/epmet/service/impl/SsoServiceImpl.java
  2. 13
      epmet-commons/epmet-commons-thirdplat/src/main/java/com/epmet/commons/thirdplat/apiservice/AbstractApiService.java
  3. 5
      epmet-commons/epmet-commons-thirdplat/src/main/java/com/epmet/commons/thirdplat/bean/ThirdPlatUserInfo.java
  4. 9
      epmet-commons/epmet-commons-thirdplat/src/main/java/com/epmet/commons/thirdplat/config/ThirdplatConfig.java
  5. 9
      epmet-commons/epmet-commons-thirdplat/src/main/java/com/epmet/commons/thirdplat/constants/ApiServiceBeansConstants.java

20
epmet-auth/src/main/java/com/epmet/service/impl/SsoServiceImpl.java

@ -2,14 +2,13 @@ package com.epmet.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.epmet.commons.thirdplat.apiservice.AbstractApiService;
import com.epmet.commons.thirdplat.apiservice.jcet.JcetApiService; import com.epmet.commons.thirdplat.apiservice.jcet.JcetApiService;
import com.epmet.commons.thirdplat.constants.ApiServiceBeansConstants;
import com.epmet.commons.thirdplat.dto.result.jcet.UserInfoResultDTO; import com.epmet.commons.thirdplat.dto.result.jcet.UserInfoResultDTO;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.*;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.SsoConstant; import com.epmet.constant.SsoConstant;
import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.PaCustomerDTO;
import com.epmet.dto.UserDTO; import com.epmet.dto.UserDTO;
@ -23,6 +22,8 @@ import com.epmet.redis.SsoRedis;
import com.epmet.service.SsoService; import com.epmet.service.SsoService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -38,6 +39,8 @@ import java.util.Map;
@Slf4j @Slf4j
public class SsoServiceImpl implements SsoService { public class SsoServiceImpl implements SsoService {
Logger logger = LoggerFactory.getLogger(getClass());
@Autowired @Autowired
private SsoRedis ssoRedis; private SsoRedis ssoRedis;
@ -47,9 +50,6 @@ public class SsoServiceImpl implements SsoService {
@Autowired @Autowired
private JwtTokenProperties jwtTokenProperties; private JwtTokenProperties jwtTokenProperties;
@Autowired
private JcetApiService jcetApiService;
@Autowired @Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient; private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@ -65,8 +65,10 @@ public class SsoServiceImpl implements SsoService {
if (formDTO.getAppId().equals(SsoConstant.WINE_CITY_E_OPEN_APP_ID)) { if (formDTO.getAppId().equals(SsoConstant.WINE_CITY_E_OPEN_APP_ID)) {
UserInfoResultDTO userInfo = null; UserInfoResultDTO userInfo = null;
try { try {
userInfo = jcetApiService.getUserInfoByTicket(formDTO.getTicket()); AbstractApiService apiService = (AbstractApiService) SpringContextUtils.getBean(ApiServiceBeansConstants.JCET_API_SERVICE);
} catch (UnsupportedEncodingException e) { userInfo = apiService.getUserInfoByTicket(formDTO.getTicket());
} catch (Exception e) {
logger.error("调用第三方平台,根据用户ticket查询用户信息失败,错误信息");
e.printStackTrace(); e.printStackTrace();
} }
if (null == userInfo){ if (null == userInfo){

13
epmet-commons/epmet-commons-thirdplat/src/main/java/com/epmet/commons/thirdplat/apiservice/AbstractApiService.java

@ -3,15 +3,26 @@ package com.epmet.commons.thirdplat.apiservice;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.epmet.commons.thirdplat.dto.result.jcet.JcetResult; import com.epmet.commons.thirdplat.dto.result.jcet.JcetResult;
import com.epmet.commons.thirdplat.dto.result.jcet.UserInfoResultDTO;
import com.epmet.commons.thirdplat.properties.ThirdplatProps; import com.epmet.commons.thirdplat.properties.ThirdplatProps;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
public class AbstractApiService { import java.io.UnsupportedEncodingException;
public abstract class AbstractApiService {
protected ThirdplatProps thirdplatProps; protected ThirdplatProps thirdplatProps;
/**
* 通过ticket查询用户信息
* @param ticket
* @return
* @throws Exception
*/
public abstract UserInfoResultDTO getUserInfoByTicket(String ticket) throws Exception;
/** /**
* @Description 解析请求结果 * @Description 解析请求结果
* @return * @return

5
epmet-commons/epmet-commons-thirdplat/src/main/java/com/epmet/commons/thirdplat/bean/ThirdPlatUserInfo.java

@ -0,0 +1,5 @@
package com.epmet.commons.thirdplat.bean;
public class ThirdPlatUserInfo {
}

9
epmet-commons/epmet-commons-thirdplat/src/main/java/com/epmet/commons/thirdplat/config/ThirdplatConfig.java

@ -1,6 +1,7 @@
package com.epmet.commons.thirdplat.config; package com.epmet.commons.thirdplat.config;
import com.epmet.commons.thirdplat.apiservice.jcet.JcetApiService; import com.epmet.commons.thirdplat.apiservice.jcet.JcetApiService;
import com.epmet.commons.thirdplat.constants.ApiServiceBeansConstants;
import com.epmet.commons.thirdplat.properties.ThirdplatProps; import com.epmet.commons.thirdplat.properties.ThirdplatProps;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
@ -13,7 +14,13 @@ import org.springframework.context.annotation.Configuration;
@EnableConfigurationProperties(ThirdplatProps.class) @EnableConfigurationProperties(ThirdplatProps.class)
public class ThirdplatConfig { public class ThirdplatConfig {
@Bean /**
* @Description 酒城e通的apiService这个name需要注册进数据库使用的时候去数据库根据客户id找对应的apiService出来用
* @return
* @author wxz
* @date 2021.01.20 13:50
*/
@Bean(name = ApiServiceBeansConstants.JCET_API_SERVICE)
public JcetApiService JcetApiService(ThirdplatProps props) { public JcetApiService JcetApiService(ThirdplatProps props) {
return new JcetApiService(props); return new JcetApiService(props);
} }

9
epmet-commons/epmet-commons-thirdplat/src/main/java/com/epmet/commons/thirdplat/constants/ApiServiceBeansConstants.java

@ -0,0 +1,9 @@
package com.epmet.commons.thirdplat.constants;
/**
* ApiService常量
*/
public interface ApiServiceBeansConstants {
// 酒城e通apiService
String JCET_API_SERVICE = "jcetApiService";
}
Loading…
Cancel
Save