zelong.shao

manager|登陆

package com.fedex.connect.common.dependencies.enums.sys;
public enum ParamConfigEnum {
FCL_LOGIN_URL(0L,"fcl_login_url","FCL登陆地址"),
;
private Long code;
private String enMsg;
private String msg;
ParamConfigEnum(Long code, String enMsg, String msg) {
this.code = code;
this.enMsg = enMsg;
this.msg = msg;
}
public Long getCode() {
return code;
}
public void setCode(Long code) {
this.code = code;
}
public String getEnMsg() {
return enMsg;
}
public void setEnMsg(String enMsg) {
this.enMsg = enMsg;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
package com.fedex.connect.common.dependencies.enums.sys;
public enum ParamConfigTypeEnum {
BUTTON(0L,"button","开关"),
THRESHOLD(1L,"threshold","阈值"),
PARAMETER(2L,"parameter","参数"),
ADDRESS(3L,"address","地址"),
;
private Long code;
private String enMsg;
private String msg;
ParamConfigTypeEnum(Long code, String enMsg, String msg) {
this.code = code;
this.enMsg = enMsg;
this.msg = msg;
}
public Long getCode() {
return code;
}
public void setCode(Long code) {
this.code = code;
}
public String getEnMsg() {
return enMsg;
}
public void setEnMsg(String enMsg) {
this.enMsg = enMsg;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
package com.fedex.connect.common.dependencies.enums.sys;
public enum UserLoginTypeEnum {
LOGIN(0L,"Login","登录"),
EXIT(1L,"Exit","退出"),
CHANGEPASSWORD(2L,"ChangePassword","修改密码"),
FCLLOGINREGISTRATION(3L,"FCLLoginRegistration","FCL登录注册"),
DEACTIVATE(4L,"Deactivate","停用"),
ENABLE(5L,"Enable","启用"),
LOGIN("userLoginType_01","Login","登录"),
EXIT("userLoginType_02","Exit","退出"),
CHANGEPASSWORD("userLoginType_03","ChangePassword","修改密码"),
FCLLOGINREGISTRATION("userLoginType_04","FCLLoginRegistration","FCL登录注册"),
DEACTIVATE("userLoginType_05","Deactivate","停用"),
ENABLE("userLoginType_06","Enable","启用"),
;
private Long code;
private String code;
private String enMsg;
private String msg;
UserLoginTypeEnum(Long code, String enMsg,String msg) {
UserLoginTypeEnum(String code, String enMsg,String msg) {
this.code = code;
this.enMsg = enMsg;
this.msg = msg;
}
public Long getCode() {
public String getCode() {
return code;
}
public void setCode(Long code) {
public void setCode(String code) {
this.code = code;
}
......
......@@ -15,4 +15,7 @@ public class PropertiesConfig {
@Value("${fcl.login.redjrectLogin}")
private String redjrectLogin;
@Value("${spring.profiles.env}")
private String env;
}
......
......@@ -3,10 +3,10 @@ package com.fedex.connect.manager.controller.sys.impl;
import com.fedex.connect.common.dependencies.cache.CacheSystem;
import com.fedex.connect.common.dependencies.date.vo.ResponseVo;
import com.fedex.connect.common.dependencies.enums.sys.ParamConfigEnum;
import com.fedex.connect.common.dependencies.enums.sys.UserLoginTypeEnum;
import com.fedex.connect.common.dependencies.util.GsonUtils;
import com.fedex.connect.common.dependencies.util.StringExtUtil;
import com.fedex.connect.common.dependencies.util.Utils;
import com.fedex.connect.common.model.bi.DictionaryEntries;
import com.fedex.connect.common.model.sys.User;
import com.fedex.connect.manager.common.enums.FCLSessionInfoEnum;
......@@ -15,7 +15,7 @@ import com.fedex.connect.manager.controller.sys.ISysAuthController;
import com.fedex.connect.manager.data.dto.LogLoginDto;
import com.fedex.connect.manager.data.dto.LoginRequest;
import com.fedex.connect.manager.data.dto.SysUserDto;
import com.fedex.connect.manager.enums.ResponseCode;
import com.fedex.connect.manager.util.ParamConfigUtil;
import com.google.gson.JsonObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -44,6 +44,8 @@ public class SysAuthController extends BaseController implements ISysAuthControl
@Autowired
CacheSystem cacheSystem;
@Autowired
private ParamConfigUtil paramConfigUtil;
@Value("${fcl.interface.logurl}")
private String fclIndexLoginUrl;
......@@ -55,6 +57,14 @@ public class SysAuthController extends BaseController implements ISysAuthControl
}
/**
* @Author Szl
* @Description 功能说明 fcl登陆首个接口,获取fcl信息
* @Date 2024/11/11
* @param request
* @param res
* @return void
*/
@GetMapping(value = "/wlgnForward")
@ApiOperation(value = "ResponseVo", notes = "FCL中转Cookie地址")
public void wlgnForward(HttpServletRequest request, HttpServletResponse res){
......@@ -64,31 +74,16 @@ public class SysAuthController extends BaseController implements ISysAuthControl
if (!equals){
return;
}
Cookie[] cookies = request.getCookies();
if (Utils.isEmpty(cookies)){
return;
}
List<String> saveKeyList = FCLSessionInfoEnum.getCodeList();
List<String> cookiesList = new ArrayList();
for (int i = 0, max = cookies.length; i < max; i++) {
Cookie cookie = cookies[i];
if(saveKeyList.contains(cookie.getName())){
cookiesList.add("'"+cookie.getName()+"':'"+cookie.getValue()+"'");
if(cookiesList.size() == saveKeyList.size()){
break;
}
}
}
List<String> saveKeyList = FCLSessionInfoEnum.getCodeList();
sysUserService.getFclData(request,cookiesList,saveKeyList);
if (cookiesList.size() > 0 && cookiesList.size() == saveKeyList.size()){
JsonObject jsonObject = GsonUtils.stringToBean("{"+String.join(",",cookiesList)+"}",JsonObject.class);
//set cookie by fcl_key
ResponseVo tokenResult = sysAuthService.createFclToken(jsonObject);
if (tokenResult.isSuccess()){
String fcl_token_key = String.valueOf(tokenResult.getData());
String redirectUrl = String.format("%s?token=%s", propertiesConfig.getFclLoginUrl(), fcl_token_key);
String redirectUrl = String.format("%s?token=%s", paramConfigUtil.getParamValue(ParamConfigEnum.FCL_LOGIN_URL.getEnMsg()), fcl_token_key);
System.out.println(redirectUrl);
res.sendRedirect(redirectUrl);
}
}else {
......@@ -100,6 +95,14 @@ public class SysAuthController extends BaseController implements ISysAuthControl
}
}
/**
* @Author Szl
* @Description 功能说明 FCL登陆第二个接口,生成token
* @Date 2024/11/11
* @param request
* @param res
* @return void
*/
@GetMapping(value = "/wlgnLogin")
@ApiOperation(value = "ResponseVo", notes = "FCL登录")
public void wlgnLogin(HttpServletRequest request, HttpServletResponse res) {
......@@ -146,17 +149,17 @@ public class SysAuthController extends BaseController implements ISysAuthControl
ResponseVo tokenResult = sysAuthService.createAccessToken(loginRequest, loginUser);
DictionaryEntries dicUserLoginType = cacheSystem.getDicUserLoginType(UserLoginTypeEnum.FCLLOGINREGISTRATION.getEnMsg());
DictionaryEntries dicUserLoginType = cacheSystem.getDicUserLoginType(UserLoginTypeEnum.FCLLOGINREGISTRATION.getCode());
//记录日志
LogLoginDto dto = new LogLoginDto(loginUser.getId(), dicUserLoginType.getId(),
localeMessageUtil.getMessage(ResponseCode.MESSAGE_CODE_40002.getMsg()));
UserLoginTypeEnum.LOGIN.getMsg());
logLoginService.saveLoginLog(dto);
try{
if (tokenResult.isSuccess()){
String redirectUrl = String.format("%s?token=%s&uid=%s", propertiesConfig.getRedjrectLogin(), tokenResult.getData(), loginUser.getId());
res.sendRedirect(redirectUrl);
log.info("wlgnLogin____________________finish");
log.info("wlgnLogin____________________finish:"+redirectUrl);
}else {
res.sendRedirect(propertiesConfig.getTwIdxUrl());
}
......
......@@ -39,10 +39,9 @@ public class SysUserDto {
user.setCustomsSerialNum(dto.getCustomsSerialNum());
user.setCreateTime(new Date());
user.setModifyTime(new Date());
user.setTypeId(0L);
user.setStatus(DatabaseConstants.GLOBAL_STATUS_VALID);
user.setRemark(dto.getRemark());
user.setTypeId(dto.getTypeId());
user.setTypeCode(dto.getTypeCode());
return user;
}
......@@ -56,7 +55,7 @@ public class SysUserDto {
} else {
this.userName = fcl_acc_no;
}
this.typeCode = UserTypeEnum.FCL.getEnMsg();
this.password = fcl_pwd;
this.loginName = uuid;
this.email = null;
......
......@@ -6,6 +6,7 @@ import com.fedex.connect.common.dao.sys.RedisSlabMapper;
import com.fedex.connect.common.dao.sys.RoleMapper;
import com.fedex.connect.common.dao.sys.UserMapper;
import com.fedex.connect.common.dao.sys.UserRoleMapper;
import com.fedex.connect.manager.repository.dao.ParamConfigExtMapper;
import org.springframework.beans.factory.annotation.Autowired;
public class BaseDao {
......@@ -21,4 +22,6 @@ public class BaseDao {
public UserMapper userMapper;
@Autowired
public DictionaryEntriesMapper dictionaryEntriesMapper;
@Autowired
public ParamConfigExtMapper paramConfigExtMapper;
}
......
package com.fedex.connect.manager.repository.dao;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
public interface ParamConfigExtMapper {
@Select("SELECT VALUE FROM T_SYS_PARAM_CONFIG WHERE CODE = #{code}")
String findValueByCode(@Param("code") String code);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fedex.connect.manager.repository.dao.ParamConfigExtMapper">
</mapper>
\ No newline at end of file
package com.fedex.connect.manager.repository.repo.sys;
public interface IParamConfigExtRepository {
String findValueByCode(String code);
}
package com.fedex.connect.manager.repository.repo.sys.impl;
import com.fedex.connect.manager.repository.base.BaseDao;
import com.fedex.connect.manager.repository.repo.sys.IParamConfigExtRepository;
import org.springframework.stereotype.Repository;
@Repository
public class ParamConfigExtRepositoryImpl extends BaseDao implements IParamConfigExtRepository {
@Override
public String findValueByCode(String code) {
return paramConfigExtMapper.findValueByCode(code);
}
}
......@@ -3,10 +3,15 @@ package com.fedex.connect.manager.service.sys;
import com.fedex.connect.common.model.sys.User;
import com.fedex.connect.manager.data.dto.SysUserDto;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
public interface ISysUserService {
User findUserByFcl(String fclUuid);
User save(SysUserDto dto);
int update(User dao);
void getFclData(HttpServletRequest request,List<String> cookiesList,List<String> saveKeyList);
}
......
......@@ -10,6 +10,7 @@ import com.fedex.connect.common.model.bi.DictionaryEntries;
import com.fedex.connect.common.model.sys.Role;
import com.fedex.connect.common.model.sys.User;
import com.fedex.connect.common.model.sys.UserExample;
import com.fedex.connect.manager.config.PropertiesConfig;
import com.fedex.connect.manager.data.dto.SysUserDto;
import com.fedex.connect.manager.data.model.LogShowModel;
import com.fedex.connect.manager.service.base.BaseService;
......@@ -24,6 +25,8 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
......@@ -45,6 +48,9 @@ public class SysUserServiceImpl extends BaseService implements ISysUserService {
@Autowired
CacheSystem cacheSystem;
@Autowired
private PropertiesConfig propertiesConfig;
/**
* 邮件过期时间
*/
......@@ -92,9 +98,9 @@ public class SysUserServiceImpl extends BaseService implements ISysUserService {
//从数据字典获取用户类型
DictionaryEntries dicUserType = cacheSystem.getDicUserType(dto.getTypeCode());
if (dicUserType != null){
user.setTypeId(dicUserType.getId());
user.setTypeCode(dicUserType.getCode());
}else {
user.setTypeId(0L);
user.setTypeCode("0");
}
//对新增账户的密码进行加密
user.setPassword(EncryptProvider.encrypt(user.getPassword()));
......@@ -146,5 +152,43 @@ public class SysUserServiceImpl extends BaseService implements ISysUserService {
}
}
/**
* @Author Szl
* @Description 功能说明 测试环境中使用Parameter获取fcl信息
* @Date 2024/11/11
* @param request
* @param cookiesList
* @param saveKeyList
* @return void
*/
@Override
public void getFclData(HttpServletRequest request,List<String> cookiesList,List<String> saveKeyList) {
if (!propertiesConfig.getEnv().equalsIgnoreCase("dev")
&& !propertiesConfig.getEnv().equalsIgnoreCase("test")
&& !propertiesConfig.getEnv().equalsIgnoreCase("uat")) {
Cookie[] cookies = request.getCookies();
if (Utils.isEmpty(cookies)){
return;
}
for (int i = 0, max = cookies.length; i < max; i++) {
Cookie cookie = cookies[i];
if(saveKeyList.contains(cookie.getName())){
cookiesList.add("'"+cookie.getName()+"':'"+cookie.getValue()+"'");
if(cookiesList.size() == saveKeyList.size()){
break;
}
}
}
}else {
for (String key : saveKeyList) {
String value = request.getParameter(key);
if (!StringUtils.isEmpty(value)){
cookiesList.add("'" + key + "':'" + value + "'");
}
}
}
}
}
......
package com.fedex.connect.manager.util;
import com.fedex.connect.manager.repository.repo.sys.IParamConfigExtRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author Szl
* @Description 类说明 用于系统参数配置
* @Date 2024/11/11
*/
@Component
public class ParamConfigUtil {
@Autowired
private IParamConfigExtRepository paramConfigExtRepository;
/**
* @Author Szl
* @Description 功能说明 根据code从系统参数配置获取value
* @Date 2024/11/11
* @param code
* @return java.lang.String
*/
public String getParamValue(String code){
return paramConfigExtRepository.findValueByCode(code);
}
}