三江统一登录
This commit is contained in:
parent
4c6dffdf66
commit
e204640f2e
@ -20,6 +20,11 @@ import com.chinacreator.c2.uop.sync.message.user.UserDeleteMessage;
|
|||||||
import com.chinacreator.c2.uop.sync.message.user.UserOrgChangeMessage;
|
import com.chinacreator.c2.uop.sync.message.user.UserOrgChangeMessage;
|
||||||
import com.chinacreator.c2.uop.sync.message.user.UserUpdateMessage;
|
import com.chinacreator.c2.uop.sync.message.user.UserUpdateMessage;
|
||||||
import com.chinacreator.c2.uop.sync.receiver.UopModifyMessageListener;
|
import com.chinacreator.c2.uop.sync.receiver.UopModifyMessageListener;
|
||||||
|
import com.zhgd.xmgl.modules.basicdata.entity.Company;
|
||||||
|
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper;
|
||||||
|
import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -27,6 +32,10 @@ import java.util.Map;
|
|||||||
* 三江统一登录的mq数据同步处理service
|
* 三江统一登录的mq数据同步处理service
|
||||||
*/
|
*/
|
||||||
public class UopCustomMessageReceiverServiceImpl implements UopModifyMessageListener {
|
public class UopCustomMessageReceiverServiceImpl implements UopModifyMessageListener {
|
||||||
|
@Autowired
|
||||||
|
private CompanyMapper companyMapper;
|
||||||
|
@Autowired
|
||||||
|
private SystemUserMapper systemUserMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAppSystemManageMessage(Map<String, Object> arg0) {
|
public void onAppSystemManageMessage(Map<String, Object> arg0) {
|
||||||
@ -90,7 +99,29 @@ public class UopCustomMessageReceiverServiceImpl implements UopModifyMessageList
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onOrgCreated(OrgCreateMessage orgCreateMessage) {
|
public void onOrgCreated(OrgCreateMessage orgCreateMessage) {
|
||||||
|
Company company = convertToCompany(orgCreateMessage);
|
||||||
|
companyMapper.insert(company);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Company convertToCompany(OrgCreateMessage orgCreateMessage) {
|
||||||
|
Map<String, Object> organization = orgCreateMessage.getOrganization();
|
||||||
|
Company company = new Company();
|
||||||
|
//company.setCompanyId();
|
||||||
|
//company.setCompanySn();
|
||||||
|
//company.setCompanyName();
|
||||||
|
//company.setCreateTime();
|
||||||
|
//company.setCompanyTel();
|
||||||
|
//company.setCompanyType();
|
||||||
|
//company.setParentId();
|
||||||
|
//company.setHeadquartersSn();
|
||||||
|
//company.setLongitude();
|
||||||
|
//company.setLatitude();
|
||||||
|
//company.setPropagateFile();
|
||||||
|
//company.setFullSn();
|
||||||
|
//company.setRangeAddr();
|
||||||
|
//company.setParentSn();
|
||||||
|
//company.setEditType();
|
||||||
|
return company;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -1,21 +1,24 @@
|
|||||||
package com.zhgd.xmgl.modules.basicdata.controller;
|
package com.zhgd.xmgl.modules.basicdata.controller;
|
||||||
|
|
||||||
import com.zhgd.jeecg.common.api.vo.Result;
|
import com.zhgd.jeecg.common.api.vo.Result;
|
||||||
|
import com.zhgd.xmgl.entity.sj.JwtPayloadUserInfo;
|
||||||
import com.zhgd.xmgl.entity.sj.TokenResponse;
|
import com.zhgd.xmgl.entity.sj.TokenResponse;
|
||||||
|
import com.zhgd.xmgl.modules.basicdata.service.impl.SystemUserServiceImpl;
|
||||||
|
import com.zhgd.xmgl.util.MessageUtil;
|
||||||
import com.zhgd.xmgl.util.sj.CookieUtils;
|
import com.zhgd.xmgl.util.sj.CookieUtils;
|
||||||
|
import com.zhgd.xmgl.util.sj.JwtRsaUtils;
|
||||||
import com.zhgd.xmgl.util.sj.SjUnifiedAuthenticationHttpUtil;
|
import com.zhgd.xmgl.util.sj.SjUnifiedAuthenticationHttpUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.CookieValue;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
import javax.servlet.http.Cookie;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.security.spec.InvalidKeySpecException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 三江统一登录
|
* 三江统一登录
|
||||||
@ -26,6 +29,8 @@ import java.io.IOException;
|
|||||||
public class SjLoginController {
|
public class SjLoginController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private SjUnifiedAuthenticationHttpUtil sjUnifiedAuthenticationHttpUtil;
|
private SjUnifiedAuthenticationHttpUtil sjUnifiedAuthenticationHttpUtil;
|
||||||
|
@Autowired
|
||||||
|
private SystemUserServiceImpl systemUserService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据code获取token
|
* 根据code获取token
|
||||||
@ -41,11 +46,14 @@ public class SjLoginController {
|
|||||||
log.info("code:{}", code);
|
log.info("code:{}", code);
|
||||||
TokenResponse tokenByCode = sjUnifiedAuthenticationHttpUtil.getTokenByCode(code);
|
TokenResponse tokenByCode = sjUnifiedAuthenticationHttpUtil.getTokenByCode(code);
|
||||||
//⑦将获取到的用户凭证(access_token)值存储到cookie中,名称可定为C2AT,获取到的用户刷新凭证(refresh_token)值存储到cookie中,名称为C2RT,接口返回307,重定向到应用页面(一般为首页)
|
//⑦将获取到的用户凭证(access_token)值存储到cookie中,名称可定为C2AT,获取到的用户刷新凭证(refresh_token)值存储到cookie中,名称为C2RT,接口返回307,重定向到应用页面(一般为首页)
|
||||||
response.addCookie(new Cookie("C2AT", tokenByCode.getAccess_token()));
|
String access_token = tokenByCode.getAccess_token();
|
||||||
response.addCookie(new Cookie("C2RT", tokenByCode.getRefresh_token()));
|
CookieUtils.setCookie(request, response, "C2AT", access_token, Integer.valueOf(tokenByCode.getExpires_in()), "UTF-8",
|
||||||
|
false, "192.168.34.150:8080", "/");
|
||||||
|
CookieUtils.setCookie(request, response, "C2RT", tokenByCode.getRefresh_token(), Integer.valueOf(tokenByCode.getRe_expires_in()), "UTF-8", false,
|
||||||
|
"192.168.34.150:8080", "/");
|
||||||
//获取用户信息
|
//获取用户信息
|
||||||
//重定向到应用页面(一般为首页)
|
//重定向到应用页面(一般为首页)
|
||||||
response.sendRedirect("http://baidu.com");
|
response.sendRedirect("http://192.168.34.150:8080/index.html#/login?UID=" + access_token);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -57,22 +65,27 @@ public class SjLoginController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/logout")
|
@GetMapping("/logout")
|
||||||
public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||||
|
log.info("logout");
|
||||||
//④清除本地请求头request里面存储的cookie:C2AT、C2RT,返回302重定向到应用页面
|
//④清除本地请求头request里面存储的cookie:C2AT、C2RT,返回302重定向到应用页面
|
||||||
CookieUtils.setCookie(request, response, "C2AT", "", 0);
|
CookieUtils.setCookie(request, response, "C2AT", "", 0);
|
||||||
CookieUtils.setCookie(request, response, "C2RT", "", 0);
|
CookieUtils.setCookie(request, response, "C2RT", "", 0);
|
||||||
|
|
||||||
//重定向到应用页面(一般为首页)
|
//重定向到应用页面(一般为首页)
|
||||||
response.sendRedirect("http://baidu.com");
|
response.sendRedirect("/index.html#/");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据token获取用户登录信息
|
* 根据token获取用户登录信息
|
||||||
*
|
*
|
||||||
* @param c2at
|
* @param uid jwt_token
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("getLoginInfoByToken")
|
@GetMapping("getLoginInfoByToken")
|
||||||
public Result getLoginInfoByToken(@CookieValue("C2AT") String c2at) {
|
public Result getLoginInfoByToken(@RequestParam String uid) throws InvalidKeySpecException {
|
||||||
return null;
|
JwtPayloadUserInfo jwtPayloadUserInfo = JwtRsaUtils.verifyWithUserInfo(uid);
|
||||||
|
if (jwtPayloadUserInfo != null) {
|
||||||
|
return systemUserService.sjLogin(jwtPayloadUserInfo);
|
||||||
|
}
|
||||||
|
return Result.error(MessageUtil.get("systemErr"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
package com.zhgd.xmgl.modules.basicdata.service;
|
package com.zhgd.xmgl.modules.basicdata.service;
|
||||||
|
|
||||||
|
import com.zhgd.jeecg.common.api.vo.Result;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
|
import com.zhgd.xmgl.entity.sj.JwtPayloadUserInfo;
|
||||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
|
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
@ -46,4 +48,7 @@ public interface ISystemUserService extends IService<SystemUser> {
|
|||||||
void sendSafetyHatAccountData(Map<String, Object> map);
|
void sendSafetyHatAccountData(Map<String, Object> map);
|
||||||
|
|
||||||
void sendSafetyHatProjectData(Map<String, Object> map);
|
void sendSafetyHatProjectData(Map<String, Object> map);
|
||||||
|
|
||||||
|
|
||||||
|
Result sjLogin(JwtPayloadUserInfo jwtPayloadUserInfo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.gexin.fastjson.JSON;
|
import com.gexin.fastjson.JSON;
|
||||||
import com.zhgd.exception.CustomException;
|
import com.zhgd.exception.CustomException;
|
||||||
|
import com.zhgd.jeecg.common.api.vo.Result;
|
||||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
|
import com.zhgd.xmgl.entity.sj.JwtPayloadUserInfo;
|
||||||
import com.zhgd.xmgl.modules.basicdata.entity.*;
|
import com.zhgd.xmgl.modules.basicdata.entity.*;
|
||||||
import com.zhgd.xmgl.modules.basicdata.mapper.*;
|
import com.zhgd.xmgl.modules.basicdata.mapper.*;
|
||||||
import com.zhgd.xmgl.modules.basicdata.service.IBaseMenuService;
|
import com.zhgd.xmgl.modules.basicdata.service.IBaseMenuService;
|
||||||
@ -120,134 +122,140 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
|
|||||||
throw new OpenAlertException("密码不正确");
|
throw new OpenAlertException("密码不正确");
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
// 保存 手机传输的clientId 推送消息时使用
|
|
||||||
if (map.containsKey("clientId") && null != map.get("clientId") && StringUtils.isNotEmpty(map.get("clientId").toString())) {
|
|
||||||
systemUser.setClientId(map.get("clientId").toString());
|
|
||||||
log.warn("收到clientId---------" + map.get("clientId").toString());
|
|
||||||
updateById(systemUser);
|
|
||||||
} else {
|
|
||||||
log.warn("未收到clientId-------------------");
|
|
||||||
}
|
|
||||||
if (map.containsKey("loginType")) {
|
|
||||||
if (systemUser.getAccountType() != 1) {
|
|
||||||
Integer loginType = MapUtils.getInteger(map, "loginType");
|
|
||||||
if (loginType == 1) {
|
|
||||||
if (systemUser.getAccountType() != 2 && systemUser.getAccountType() != 3 && systemUser.getAccountType() != 4 && systemUser.getAccountType() != 7) {
|
|
||||||
log.info("账号类型不正确,loginType:{}", loginType);
|
|
||||||
throw new OpenAlertException(MessageUtil.get("loginErr"));
|
|
||||||
}
|
|
||||||
} else if (loginType == 2) {
|
|
||||||
if (systemUser.getAccountType() != 5 && systemUser.getAccountType() != 6) {
|
|
||||||
log.info("账号类型不正确,loginType:{}", loginType);
|
|
||||||
throw new OpenAlertException(MessageUtil.get("loginErr"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Map<String, Object> result = new HashMap<>();
|
|
||||||
CompanyConfig companyConfig = null;
|
|
||||||
if (systemUser.getAccountType() == 1) {
|
|
||||||
companyConfig = new CompanyConfig();
|
|
||||||
companyConfig.setIsEnable(1);
|
|
||||||
companyConfig.setEffectiveTime(60 * 60 * 24);
|
|
||||||
companyConfig.setDiffDay(20);
|
|
||||||
companyConfig.setModuleShowType(0);
|
|
||||||
companyConfig.setMobileAttendance(0);
|
|
||||||
companyConfig.setProjectKanban(0);
|
|
||||||
companyConfig.setCompanyBigScreen(0);
|
|
||||||
companyConfig.setInputQrCode(0);
|
|
||||||
companyConfig.setStyleType(1);
|
|
||||||
companyConfig.setEnterProjectBackType(0);
|
|
||||||
companyConfig.setExpireTime(DateUtil.format(DateUtil.tomorrow(), DatePattern.NORM_DATE_PATTERN));
|
|
||||||
companyConfig.setAddProjectType(0);
|
|
||||||
companyConfig.setStyleType(1);
|
|
||||||
} else if (systemUser.getAccountType() == 5 || systemUser.getAccountType() == 6) {
|
|
||||||
companyConfig = companyConfigMapper.getCompanyConfigByProject(systemUser.getSn());
|
|
||||||
} else {
|
|
||||||
companyConfig = companyConfigMapper.getCompanyConfigBySN(systemUser.getSn());
|
|
||||||
}
|
|
||||||
log.info("companyConfig:{}", JSON.toJSONString(companyConfig));
|
|
||||||
if (companyConfig.getExpireTime() == null) {
|
|
||||||
throw new OpenAlertException(MessageUtil.get("loginEnabledErr"));
|
|
||||||
} else {
|
|
||||||
DateTime expireTime = DateUtil.parse(companyConfig.getExpireTime(), "yyyy-MM-dd");
|
|
||||||
DateTime currentDate = new DateTime();
|
|
||||||
|
|
||||||
if (expireTime.getTime() < currentDate.getTime()) {
|
|
||||||
throw new OpenAlertException(MessageUtil.get("loginEnabledErr"));
|
|
||||||
} else {
|
|
||||||
companyConfig.setDiffDay((int) DateUtil.between(currentDate, DateUtil.offset(expireTime, DateField.DAY_OF_MONTH, 1), DateUnit.DAY));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (companyConfig == null || companyConfig.getIsEnable() == 0) {
|
|
||||||
throw new OpenAlertException(MessageUtil.get("loginEnabledErr"));
|
|
||||||
}
|
|
||||||
if (companyConfig.getDiffDay() == 0) {
|
|
||||||
throw new OpenAlertException(MessageUtil.get("loginExpiredErr"));
|
|
||||||
}
|
|
||||||
if (companyConfig.getEffectiveTime() == null) {
|
|
||||||
companyConfig.setEffectiveTime(60 * 60 * 24);
|
|
||||||
}
|
|
||||||
authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(MapUtils.getString(map, "account"), password));
|
authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(MapUtils.getString(map, "account"), password));
|
||||||
String token = jwtTokenProvider.createToken(MapUtils.getString(map, "account"), companyConfig.getEffectiveTime());
|
|
||||||
UserEnterprise userEnterprise = userEnterpriseService.selectUserEnterpriseByUserId(systemUser.getUserId());
|
return doLogin(map, systemUser);
|
||||||
if (userEnterprise != null) {
|
|
||||||
result.put("userEnterpriseId", userEnterprise.getEnterpriseId());
|
|
||||||
} else {
|
|
||||||
result.put("userEnterpriseId", "");
|
|
||||||
}
|
|
||||||
if (systemUser.getAccountType() == 6) {
|
|
||||||
//项目子账号要判断是否能查看设备中台
|
|
||||||
BaseRole baseRole = baseRoleMapper.selectRoleByUserId(systemUser.getUserId());
|
|
||||||
if (baseRole == null) {
|
|
||||||
result.put("seeEquipment", 1);
|
|
||||||
} else {
|
|
||||||
result.put("seeEquipment", baseRole.getSeeEquipment());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
result.put("seeEquipment", 0);
|
|
||||||
}
|
|
||||||
result.put("token", token);
|
|
||||||
if (systemUser != null && systemUser.getUserId() != null) {
|
|
||||||
result.put("userId", systemUser.getUserId().toString());
|
|
||||||
} else {
|
|
||||||
result.put("userId", "");
|
|
||||||
}
|
|
||||||
result.put("account", systemUser.getAccount());
|
|
||||||
result.put("userTel", systemUser.getUserTel());
|
|
||||||
result.put("realName", systemUser.getRealName());
|
|
||||||
if (systemUser != null && systemUser.getWorkerId() != null) {
|
|
||||||
result.put("workerId", systemUser.getWorkerId().toString());
|
|
||||||
} else {
|
|
||||||
result.put("workerId", "");
|
|
||||||
}
|
|
||||||
result.put("sn", systemUser.getSn());
|
|
||||||
result.put("styleType", companyConfig.getStyleType());
|
|
||||||
result.put("accountType", systemUser.getAccountType());
|
|
||||||
result.put("headquartersSn", companyConfig.getHeadquartersSn());
|
|
||||||
result.put("companyName", companyConfig.getCompanyName());
|
|
||||||
result.put("propagateFile", companyConfig.getPropagateFile());
|
|
||||||
result.put("moduleShowType", companyConfig.getModuleShowType());
|
|
||||||
result.put("mobileAttendance", companyConfig.getMobileAttendance());
|
|
||||||
result.put("customerServicePhone", companyConfig.getCustomerServicePhone());
|
|
||||||
result.put("inputQrCode", companyConfig.getInputQrCode());
|
|
||||||
result.put("projectKanban", companyConfig.getProjectKanban());
|
|
||||||
result.put("addProjectType", companyConfig.getAddProjectType());
|
|
||||||
result.put("enterProjectBackType", companyConfig.getEnterProjectBackType());
|
|
||||||
result.put("companyBigScreen", companyConfig.getCompanyBigScreen());
|
|
||||||
Map<String, Object> menuAuthority = getUserAuthority(systemUser.getUserId(), systemUser.getAccountType(), systemUser.getSn(), companyConfig.getHeadquartersSn(), companyConfig.getStyleType());
|
|
||||||
result.put("menuAuthority", menuAuthority);
|
|
||||||
result.put("scope", scope);
|
|
||||||
return result;
|
|
||||||
//return getUserInfo(systemUser);
|
|
||||||
} catch (AuthenticationException e) {
|
} catch (AuthenticationException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
throw new CustomException("Invalid username/password supplied", HttpStatus.UNPROCESSABLE_ENTITY);
|
throw new CustomException("Invalid username/password supplied", HttpStatus.UNPROCESSABLE_ENTITY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Map<String, Object> doLogin(Map<String, Object> map, SystemUser systemUser) {
|
||||||
|
// 保存 手机传输的clientId 推送消息时使用
|
||||||
|
if (map.containsKey("clientId") && null != map.get("clientId") && StringUtils.isNotEmpty(map.get("clientId").toString())) {
|
||||||
|
systemUser.setClientId(map.get("clientId").toString());
|
||||||
|
log.warn("收到clientId---------" + map.get("clientId").toString());
|
||||||
|
updateById(systemUser);
|
||||||
|
} else {
|
||||||
|
log.warn("未收到clientId-------------------");
|
||||||
|
}
|
||||||
|
if (map.containsKey("loginType")) {
|
||||||
|
if (systemUser.getAccountType() != 1) {
|
||||||
|
Integer loginType = MapUtils.getInteger(map, "loginType");
|
||||||
|
if (loginType == 1) {
|
||||||
|
if (systemUser.getAccountType() != 2 && systemUser.getAccountType() != 3 && systemUser.getAccountType() != 4 && systemUser.getAccountType() != 7) {
|
||||||
|
log.info("账号类型不正确,loginType:{}", loginType);
|
||||||
|
throw new OpenAlertException(MessageUtil.get("loginErr"));
|
||||||
|
}
|
||||||
|
} else if (loginType == 2) {
|
||||||
|
if (systemUser.getAccountType() != 5 && systemUser.getAccountType() != 6) {
|
||||||
|
log.info("账号类型不正确,loginType:{}", loginType);
|
||||||
|
throw new OpenAlertException(MessageUtil.get("loginErr"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Map<String, Object> result = new HashMap<>();
|
||||||
|
CompanyConfig companyConfig = null;
|
||||||
|
if (systemUser.getAccountType() == 1) {
|
||||||
|
companyConfig = new CompanyConfig();
|
||||||
|
companyConfig.setIsEnable(1);
|
||||||
|
companyConfig.setEffectiveTime(60 * 60 * 24);
|
||||||
|
companyConfig.setDiffDay(20);
|
||||||
|
companyConfig.setModuleShowType(0);
|
||||||
|
companyConfig.setMobileAttendance(0);
|
||||||
|
companyConfig.setProjectKanban(0);
|
||||||
|
companyConfig.setCompanyBigScreen(0);
|
||||||
|
companyConfig.setInputQrCode(0);
|
||||||
|
companyConfig.setStyleType(1);
|
||||||
|
companyConfig.setEnterProjectBackType(0);
|
||||||
|
companyConfig.setExpireTime(DateUtil.format(DateUtil.tomorrow(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
companyConfig.setAddProjectType(0);
|
||||||
|
companyConfig.setStyleType(1);
|
||||||
|
} else if (systemUser.getAccountType() == 5 || systemUser.getAccountType() == 6) {
|
||||||
|
companyConfig = companyConfigMapper.getCompanyConfigByProject(systemUser.getSn());
|
||||||
|
} else {
|
||||||
|
companyConfig = companyConfigMapper.getCompanyConfigBySN(systemUser.getSn());
|
||||||
|
}
|
||||||
|
log.info("companyConfig:{}", JSON.toJSONString(companyConfig));
|
||||||
|
if (companyConfig.getExpireTime() == null) {
|
||||||
|
throw new OpenAlertException(MessageUtil.get("loginEnabledErr"));
|
||||||
|
} else {
|
||||||
|
DateTime expireTime = DateUtil.parse(companyConfig.getExpireTime(), "yyyy-MM-dd");
|
||||||
|
DateTime currentDate = new DateTime();
|
||||||
|
|
||||||
|
if (expireTime.getTime() < currentDate.getTime()) {
|
||||||
|
throw new OpenAlertException(MessageUtil.get("loginEnabledErr"));
|
||||||
|
} else {
|
||||||
|
companyConfig.setDiffDay((int) DateUtil.between(currentDate, DateUtil.offset(expireTime, DateField.DAY_OF_MONTH, 1), DateUnit.DAY));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (companyConfig == null || companyConfig.getIsEnable() == 0) {
|
||||||
|
throw new OpenAlertException(MessageUtil.get("loginEnabledErr"));
|
||||||
|
}
|
||||||
|
if (companyConfig.getDiffDay() == 0) {
|
||||||
|
throw new OpenAlertException(MessageUtil.get("loginExpiredErr"));
|
||||||
|
}
|
||||||
|
if (companyConfig.getEffectiveTime() == null) {
|
||||||
|
companyConfig.setEffectiveTime(60 * 60 * 24);
|
||||||
|
}
|
||||||
|
|
||||||
|
String token = jwtTokenProvider.createToken(MapUtils.getString(map, "account"), companyConfig.getEffectiveTime());
|
||||||
|
UserEnterprise userEnterprise = userEnterpriseService.selectUserEnterpriseByUserId(systemUser.getUserId());
|
||||||
|
if (userEnterprise != null) {
|
||||||
|
result.put("userEnterpriseId", userEnterprise.getEnterpriseId());
|
||||||
|
} else {
|
||||||
|
result.put("userEnterpriseId", "");
|
||||||
|
}
|
||||||
|
if (systemUser.getAccountType() == 6) {
|
||||||
|
//项目子账号要判断是否能查看设备中台
|
||||||
|
BaseRole baseRole = baseRoleMapper.selectRoleByUserId(systemUser.getUserId());
|
||||||
|
if (baseRole == null) {
|
||||||
|
result.put("seeEquipment", 1);
|
||||||
|
} else {
|
||||||
|
result.put("seeEquipment", baseRole.getSeeEquipment());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
result.put("seeEquipment", 0);
|
||||||
|
}
|
||||||
|
result.put("token", token);
|
||||||
|
if (systemUser != null && systemUser.getUserId() != null) {
|
||||||
|
result.put("userId", systemUser.getUserId().toString());
|
||||||
|
} else {
|
||||||
|
result.put("userId", "");
|
||||||
|
}
|
||||||
|
result.put("account", systemUser.getAccount());
|
||||||
|
result.put("userTel", systemUser.getUserTel());
|
||||||
|
result.put("realName", systemUser.getRealName());
|
||||||
|
if (systemUser != null && systemUser.getWorkerId() != null) {
|
||||||
|
result.put("workerId", systemUser.getWorkerId().toString());
|
||||||
|
} else {
|
||||||
|
result.put("workerId", "");
|
||||||
|
}
|
||||||
|
result.put("sn", systemUser.getSn());
|
||||||
|
result.put("styleType", companyConfig.getStyleType());
|
||||||
|
result.put("accountType", systemUser.getAccountType());
|
||||||
|
result.put("headquartersSn", companyConfig.getHeadquartersSn());
|
||||||
|
result.put("companyName", companyConfig.getCompanyName());
|
||||||
|
result.put("propagateFile", companyConfig.getPropagateFile());
|
||||||
|
result.put("moduleShowType", companyConfig.getModuleShowType());
|
||||||
|
result.put("mobileAttendance", companyConfig.getMobileAttendance());
|
||||||
|
result.put("customerServicePhone", companyConfig.getCustomerServicePhone());
|
||||||
|
result.put("inputQrCode", companyConfig.getInputQrCode());
|
||||||
|
result.put("projectKanban", companyConfig.getProjectKanban());
|
||||||
|
result.put("addProjectType", companyConfig.getAddProjectType());
|
||||||
|
result.put("enterProjectBackType", companyConfig.getEnterProjectBackType());
|
||||||
|
result.put("companyBigScreen", companyConfig.getCompanyBigScreen());
|
||||||
|
Map<String, Object> menuAuthority = getUserAuthority(systemUser.getUserId(), systemUser.getAccountType(), systemUser.getSn(), companyConfig.getHeadquartersSn(), companyConfig.getStyleType());
|
||||||
|
result.put("menuAuthority", menuAuthority);
|
||||||
|
result.put("scope", scope);
|
||||||
|
return result;
|
||||||
|
//return getUserInfo(systemUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void register(Map<String, Object> map) {
|
public void register(Map<String, Object> map) {
|
||||||
@ -855,4 +863,22 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 三江统一登录获取类似以前登录的数据
|
||||||
|
*
|
||||||
|
* @param jwtPayloadUserInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Result sjLogin(JwtPayloadUserInfo jwtPayloadUserInfo) {
|
||||||
|
QueryWrapper<SystemUser> queryWrapper = new QueryWrapper();
|
||||||
|
queryWrapper.lambda()
|
||||||
|
.eq(SystemUser::getAccount, jwtPayloadUserInfo.getAc());
|
||||||
|
SystemUser systemUser = systemUserMapper.selectOne(queryWrapper);
|
||||||
|
HashMap<String, Object> map = new HashMap<>();
|
||||||
|
map.put("account", jwtPayloadUserInfo.getAc());
|
||||||
|
Map<String, Object> rsMap = doLogin(map, systemUser);
|
||||||
|
return Result.success(rsMap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,6 +49,7 @@
|
|||||||
INNER JOIN high_formwork_measure_point mp ON mp.measure_point_number = cd.measure_point_number
|
INNER JOIN high_formwork_measure_point mp ON mp.measure_point_number = cd.measure_point_number
|
||||||
WHERE
|
WHERE
|
||||||
cd.project_sn = #{q.projectSn}
|
cd.project_sn = #{q.projectSn}
|
||||||
|
order by cd.id DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@ -1,14 +1,17 @@
|
|||||||
package com.zhgd.xmgl.security;
|
package com.zhgd.xmgl.security;
|
||||||
|
|
||||||
|
import com.zhgd.exception.CustomException;
|
||||||
import com.zhgd.xmgl.entity.sj.JwtPayloadUserInfo;
|
import com.zhgd.xmgl.entity.sj.JwtPayloadUserInfo;
|
||||||
import com.zhgd.xmgl.entity.sj.TokenResponse;
|
import com.zhgd.xmgl.entity.sj.TokenResponse;
|
||||||
import com.zhgd.xmgl.util.ProfileJudgeUtil;
|
import com.zhgd.xmgl.util.ProfileJudgeUtil;
|
||||||
|
import com.zhgd.xmgl.util.sj.CookieUtils;
|
||||||
import com.zhgd.xmgl.util.sj.JwtRsaUtils;
|
import com.zhgd.xmgl.util.sj.JwtRsaUtils;
|
||||||
import com.zhgd.xmgl.util.sj.SjUnifiedAuthenticationHttpUtil;
|
import com.zhgd.xmgl.util.sj.SjUnifiedAuthenticationHttpUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.Authentication;
|
||||||
import org.springframework.security.core.context.SecurityContextHolder;
|
import org.springframework.security.core.context.SecurityContextHolder;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@ -16,11 +19,11 @@ import org.springframework.web.filter.OncePerRequestFilter;
|
|||||||
|
|
||||||
import javax.servlet.FilterChain;
|
import javax.servlet.FilterChain;
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
import javax.servlet.http.Cookie;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.security.spec.InvalidKeySpecException;
|
import java.security.spec.InvalidKeySpecException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @program: devManage
|
* @program: devManage
|
||||||
@ -39,6 +42,8 @@ public class JwtTokenFilter extends OncePerRequestFilter {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SjUnifiedAuthenticationHttpUtil sjUnifiedAuthenticationHttpUtil;
|
private SjUnifiedAuthenticationHttpUtil sjUnifiedAuthenticationHttpUtil;
|
||||||
|
|
||||||
|
public static ThreadLocal<JwtPayloadUserInfo> sjUser = new ThreadLocal<>();
|
||||||
|
|
||||||
/*public JwtTokenFilter(JwtTokenProvider jwtTokenProvider) {
|
/*public JwtTokenFilter(JwtTokenProvider jwtTokenProvider) {
|
||||||
this.jwtTokenProvider = jwtTokenProvider;
|
this.jwtTokenProvider = jwtTokenProvider;
|
||||||
}*/
|
}*/
|
||||||
@ -65,7 +70,7 @@ public class JwtTokenFilter extends OncePerRequestFilter {
|
|||||||
}
|
}
|
||||||
//log.info(request.getRequestURI());
|
//log.info(request.getRequestURI());
|
||||||
filterChain.doFilter(request, response);
|
filterChain.doFilter(request, response);
|
||||||
|
sjUser.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -78,42 +83,64 @@ public class JwtTokenFilter extends OncePerRequestFilter {
|
|||||||
* @throws ServletException
|
* @throws ServletException
|
||||||
*/
|
*/
|
||||||
private boolean validateSjProfile(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws InvalidKeySpecException, IOException, ServletException {
|
private boolean validateSjProfile(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws InvalidKeySpecException, IOException, ServletException {
|
||||||
|
//不拦截url
|
||||||
|
String permitUrls = "xmgl/sj/unifiedAuthentication/logout,xmgl/sj/unifiedAuthentication/getTokenByCode,xmgl/sj/unifiedAuthentication/getLoginInfoByToken";
|
||||||
|
if (Arrays.asList(permitUrls.split(",")).stream().anyMatch(s -> request.getRequestURL().toString().contains(s))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
//②应用过滤器中判断请求头request中是否含有C2AT(若C2AT存在,C2AT的校验、过期更新请参考凭证更新令牌流程)
|
//②应用过滤器中判断请求头request中是否含有C2AT(若C2AT存在,C2AT的校验、过期更新请参考凭证更新令牌流程)
|
||||||
//C2AT不存在,且更新令牌失败,则返回401,并在Location中带上登录页面地址,登录页面地址在应用过滤器中拼装,拼装方式请参考3.1.1获取授权码接口地址
|
//C2AT不存在,且更新令牌失败,则返回401,并在Location中带上登录页面地址,登录页面地址在应用过滤器中拼装,拼装方式请参考3.1.1获取授权码接口地址
|
||||||
String c2AT = request.getHeader("C2AT");
|
String c2AT = request.getHeader("C2AT");
|
||||||
|
String c2rt = request.getHeader("C2RT");
|
||||||
|
JwtPayloadUserInfo jwtPayloadUserInfo = null;
|
||||||
if (StringUtils.isNotBlank(c2AT)) {
|
if (StringUtils.isNotBlank(c2AT)) {
|
||||||
//C2AT的校验
|
//C2AT的校验
|
||||||
//1.判断是否过期
|
//1.判断是否过期
|
||||||
//2.令牌校验
|
//2.令牌校验
|
||||||
JwtPayloadUserInfo jwtPayloadUserInfo = JwtRsaUtils.verifyWithUserInfo(c2AT);
|
jwtPayloadUserInfo = JwtRsaUtils.verifyWithUserInfo(c2AT);
|
||||||
|
sjUser.set(jwtPayloadUserInfo);
|
||||||
//token校验失败,先尝试刷新token,失败就重定向统一登录
|
//token校验失败,先尝试刷新token,失败就重定向统一登录
|
||||||
if (jwtPayloadUserInfo == null) {
|
if (jwtPayloadUserInfo == null) {
|
||||||
String c2rt = request.getHeader("C2RT");
|
return tryRefreshToken(request, response);
|
||||||
if (StringUtils.isNotBlank(c2rt)) {
|
|
||||||
//刷新token
|
|
||||||
TokenResponse rs = sjUnifiedAuthenticationHttpUtil.refreshToken(c2rt);
|
|
||||||
//刷新token成功
|
|
||||||
if (rs.getErrorCode() == null) {
|
|
||||||
response.addCookie(new Cookie("C2AT", rs.getAccess_token()));
|
|
||||||
response.addCookie(new Cookie("C2RT", rs.getRefresh_token()));
|
|
||||||
} else {
|
|
||||||
//刷新token失败,重定向登录页面
|
|
||||||
sjUnifiedAuthenticationHttpUtil.getCodeRedirect(response);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
} else if (StringUtils.isNotBlank(c2rt)) {
|
||||||
|
return tryRefreshToken(request, response);
|
||||||
} else {
|
} else {
|
||||||
//C2AT不存在
|
//C2AT和C2RT都不存在
|
||||||
//重定向登录页面
|
//重定向登录页面
|
||||||
//获取授权码,客户端申请授权的URI,在浏览器中以GET请求发送到认证服务器:
|
//获取授权码,客户端申请授权的URI,在浏览器中以GET请求发送到认证服务器:
|
||||||
sjUnifiedAuthenticationHttpUtil.getCodeRedirect(response);
|
throw new CustomException("Unauthorized", HttpStatus.UNAUTHORIZED);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 刷新令牌
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param response
|
||||||
|
* @return
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
private boolean tryRefreshToken(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||||
|
String c2rt = request.getHeader("C2RT");
|
||||||
|
if (StringUtils.isNotBlank(c2rt)) {
|
||||||
|
//刷新token
|
||||||
|
TokenResponse rs = sjUnifiedAuthenticationHttpUtil.refreshToken(c2rt);
|
||||||
|
//刷新token成功
|
||||||
|
if (rs.getErrorCode() == null) {
|
||||||
|
CookieUtils.setCookie(request, response, "C2AT", rs.getAccess_token(), Integer.valueOf(rs.getExpires_in()));
|
||||||
|
CookieUtils.setCookie(request, response, "C2RT", rs.getRefresh_token(), Integer.valueOf(rs.getRe_expires_in()));
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
//刷新token失败,重定向登录页面
|
||||||
|
throw new CustomException("Unauthorized", HttpStatus.UNAUTHORIZED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 其他环境的验证token方法
|
* 其他环境的验证token方法
|
||||||
*
|
*
|
||||||
|
|||||||
@ -209,6 +209,13 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
|||||||
.antMatchers("/zhgd/**").permitAll()
|
.antMatchers("/zhgd/**").permitAll()
|
||||||
.antMatchers("/xmgl/lifter/list").permitAll()
|
.antMatchers("/xmgl/lifter/list").permitAll()
|
||||||
.antMatchers("/xmgl/progressTask/downloadTemplate").permitAll() //进度管理系统-分布分项工程管理-下载模板
|
.antMatchers("/xmgl/progressTask/downloadTemplate").permitAll() //进度管理系统-分布分项工程管理-下载模板
|
||||||
|
.antMatchers("/xmgl/sj/unifiedAuthentication/getTokenByCode").permitAll()
|
||||||
|
.antMatchers("/xmgl/sj/unifiedAuthentication/logout").permitAll()
|
||||||
|
.antMatchers("/xmgl/sj/unifiedAuthentication/getLoginInfoByToken").permitAll()
|
||||||
|
.antMatchers("/xmgl/weight/receivingForwardingUnit/list").permitAll()
|
||||||
|
.antMatchers("/xmgl/weight/goodsName/list").permitAll()
|
||||||
|
.antMatchers("/xmgl/weight/weighBookVehicleInfo/weighingType").permitAll()
|
||||||
|
.antMatchers("/xmgl/weight/weighBookVehicleInfo/add").permitAll()
|
||||||
.antMatchers(HttpMethod.OPTIONS, "/**").anonymous()
|
.antMatchers(HttpMethod.OPTIONS, "/**").anonymous()
|
||||||
.anyRequest().authenticated() // 剩下所有的验证都需要验证
|
.anyRequest().authenticated() // 剩下所有的验证都需要验证
|
||||||
.and()
|
.and()
|
||||||
|
|||||||
@ -150,6 +150,39 @@ public final class CookieUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置Cookie的值,并使其在指定时间内生效
|
||||||
|
*
|
||||||
|
* @param cookieMaxAge cookie生效的最大秒数
|
||||||
|
*/
|
||||||
|
public static final void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName, String cookieValue,
|
||||||
|
Integer cookieMaxAge, String encodeString, Boolean httpOnly,String domain,String path) {
|
||||||
|
try {
|
||||||
|
if (StringUtils.isBlank(encodeString)) {
|
||||||
|
encodeString = "utf-8";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cookieValue == null) {
|
||||||
|
cookieValue = "";
|
||||||
|
} else {
|
||||||
|
cookieValue = URLEncoder.encode(cookieValue, encodeString);
|
||||||
|
}
|
||||||
|
Cookie cookie = new Cookie(cookieName, cookieValue);
|
||||||
|
if (cookieMaxAge != null && cookieMaxAge > 0)
|
||||||
|
cookie.setMaxAge(cookieMaxAge);
|
||||||
|
if (null != request)// 设置域名的cookie
|
||||||
|
cookie.setDomain(domain);
|
||||||
|
cookie.setPath(path);
|
||||||
|
|
||||||
|
if (httpOnly != null) {
|
||||||
|
cookie.setHttpOnly(httpOnly);
|
||||||
|
}
|
||||||
|
response.addCookie(cookie);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("Cookie Encode Error.", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 得到cookie的域名
|
* 得到cookie的域名
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -74,10 +74,15 @@ license.publicKeysStorePath=C:/jxj/prod/backEnd/license/publicCerts.keystore
|
|||||||
|
|
||||||
#\u4E09\u6C5F\u7EDF\u4E00\u767B\u5F55\u7684\u6570\u636E\u540C\u6B65
|
#\u4E09\u6C5F\u7EDF\u4E00\u767B\u5F55\u7684\u6570\u636E\u540C\u6B65
|
||||||
#mq\u768461616\u7AEF\u53E3\u5BF9\u5E94\u7684\u5730\u5740
|
#mq\u768461616\u7AEF\u53E3\u5BF9\u5E94\u7684\u5730\u5740
|
||||||
uop_sync_mq_brokerurl=tcp://192.168.98.48:31089
|
uop_sync_mq_brokerurl=tcp://116.169.63.183:31089
|
||||||
#mq\u7684\u7528\u6237\u540D
|
#mq\u7684\u7528\u6237\u540D
|
||||||
uop_sync_mq_username=admin
|
uop_sync_mq_username=admin
|
||||||
#mq\u7684\u5BC6\u7801
|
#mq\u7684\u5BC6\u7801
|
||||||
uop_sync_mq_password=admin
|
uop_sync_mq_password=admin
|
||||||
#\u5F00\u542F\u6D88\u606F\u63A5\u6536
|
#\u5F00\u542F\u6D88\u606F\u63A5\u6536
|
||||||
c2_orguser_subscription=true
|
c2_orguser_subscription=true
|
||||||
|
|
||||||
|
#\u4E09\u6C5F\u7EDF\u4E00\u767B\u5F55\u5730\u5740
|
||||||
|
sj.unifiedAuthentication.login.url=http://116.169.63.183:30913
|
||||||
|
#\u4E09\u6C5F\u7EDF\u4E00\u767B\u5F55\u6210\u529F\u8DF3\u8F6C\u540E\u63A5\u6536code\u7684\u5730\u5740
|
||||||
|
sj.unifiedAuthentication.login.code.url=http://wbtqry.natappfree.cc/xmgl/sj/unifiedAuthentication/getTokenByCode
|
||||||
@ -76,8 +76,4 @@ high_formwork.netty.port=15333
|
|||||||
#\u4E09\u6C5F\u7EDF\u4E00\u767B\u5F55\u5730\u5740
|
#\u4E09\u6C5F\u7EDF\u4E00\u767B\u5F55\u5730\u5740
|
||||||
sj.unifiedAuthentication.login.url=http://116.169.63.183:30913
|
sj.unifiedAuthentication.login.url=http://116.169.63.183:30913
|
||||||
#\u4E09\u6C5F\u7EDF\u4E00\u767B\u5F55\u6210\u529F\u8DF3\u8F6C\u540E\u63A5\u6536code\u7684\u5730\u5740
|
#\u4E09\u6C5F\u7EDF\u4E00\u767B\u5F55\u6210\u529F\u8DF3\u8F6C\u540E\u63A5\u6536code\u7684\u5730\u5740
|
||||||
sj.unifiedAuthentication.login.code.url=http://ruau8s.natappfree.cc/test/getTokenByCode
|
sj.unifiedAuthentication.login.code.url=http://ruau8s.natappfree.cc/test/getTokenByCode
|
||||||
#\u4E09\u6C5F\u7EDF\u4E00\u767B\u5F55\u6210\u529F\u540E\u8DF3\u8F6C\u81EA\u5DF1\u5E94\u7528\u7684\u5730\u5740
|
|
||||||
sj.unifiedAuthentication.application.home.url=http://baidu.com
|
|
||||||
#\u4E09\u6C5F\u7EDF\u4E00\u767B\u51FA\u5730\u5740
|
|
||||||
sj.unifiedAuthentication.logout.redirect.url=
|
|
||||||
Loading…
x
Reference in New Issue
Block a user