登陆代码迁移jianquan接口鉴权dengchu
This commit is contained in:
@ -61,5 +61,13 @@ public class LoginController {
|
|||||||
return BaseResponse.success(null);
|
return BaseResponse.success(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ApiOperation("登出")
|
||||||
|
@PostMapping("/logout")
|
||||||
|
public BaseResponse<Boolean> logout(HttpServletRequest request) {
|
||||||
|
|
||||||
|
Boolean result = iBaseUserService.logout(request);
|
||||||
|
return BaseResponse.success(result);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import com.chinaunicom.mall.ebtp.login.entity.BaseUserSelect;
|
|||||||
import com.chinaunicom.mall.ebtp.login.entity.BaseUserSelectVo;
|
import com.chinaunicom.mall.ebtp.login.entity.BaseUserSelectVo;
|
||||||
import com.coscoshipping.ebtp.project.user.entity.SysUser;
|
import com.coscoshipping.ebtp.project.user.entity.SysUser;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -26,4 +27,6 @@ public interface BaseUserService extends IBaseService<SysUser> {
|
|||||||
void setCookie(HttpServletResponse response, String name, String value);
|
void setCookie(HttpServletResponse response, String name, String value);
|
||||||
|
|
||||||
SecurityEntity bdCheckToken(String token);
|
SecurityEntity bdCheckToken(String token);
|
||||||
|
|
||||||
|
Boolean logout(HttpServletRequest request);
|
||||||
}
|
}
|
||||||
|
@ -11,12 +11,14 @@ import com.chinaunicom.mall.ebtp.common.base.entity.BaseCacheUser;
|
|||||||
import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService;
|
import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService;
|
||||||
import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl;
|
import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl;
|
||||||
import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum;
|
import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum;
|
||||||
import com.chinaunicom.mall.ebtp.login.common.Constants;
|
import com.chinaunicom.mall.ebtp.login.common.Constants;;
|
||||||
import com.chinaunicom.mall.ebtp.login.common.RSA;
|
import com.chinaunicom.mall.ebtp.login.common.RSA;
|
||||||
import com.chinaunicom.mall.ebtp.login.dao.BaseUserMapper;
|
import com.chinaunicom.mall.ebtp.login.dao.BaseUserMapper;
|
||||||
import com.chinaunicom.mall.ebtp.login.entity.*;
|
import com.chinaunicom.mall.ebtp.login.entity.*;
|
||||||
import com.chinaunicom.mall.ebtp.login.service.BaseUserService;
|
import com.chinaunicom.mall.ebtp.login.service.BaseUserService;
|
||||||
import com.chinaunicom.mall.ebtp.login.service.BaseUserTokenService;
|
import com.chinaunicom.mall.ebtp.login.service.BaseUserTokenService;
|
||||||
|
import com.coscoshipping.ebtp.project.org.entity.SysOrg;
|
||||||
|
import com.coscoshipping.ebtp.project.org.service.SysOrgService;
|
||||||
import com.coscoshipping.ebtp.project.user.entity.SysUser;
|
import com.coscoshipping.ebtp.project.user.entity.SysUser;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
@ -25,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
|
import org.springframework.security.core.context.SecurityContextHolder;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.context.request.RequestContextHolder;
|
import org.springframework.web.context.request.RequestContextHolder;
|
||||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||||
@ -72,6 +75,8 @@ public class BaseUserServiceImpl extends BaseServiceImpl<BaseUserMapper, SysUser
|
|||||||
@Autowired
|
@Autowired
|
||||||
private UserInfoService userInfoService;
|
private UserInfoService userInfoService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SysOrgService sysOrgService;
|
||||||
@Autowired(required = false)
|
@Autowired(required = false)
|
||||||
@Qualifier("cacheRedisTemplate")
|
@Qualifier("cacheRedisTemplate")
|
||||||
private RedisTemplate<String, Object> redisTemplate;
|
private RedisTemplate<String, Object> redisTemplate;
|
||||||
@ -243,8 +248,11 @@ public class BaseUserServiceImpl extends BaseServiceImpl<BaseUserMapper, SysUser
|
|||||||
securityEntity.setStaffName(baseUser.getName());
|
securityEntity.setStaffName(baseUser.getName());
|
||||||
securityEntity.setOu(baseUser.getOrgId());//部门id
|
securityEntity.setOu(baseUser.getOrgId());//部门id
|
||||||
securityEntity.setOuName(baseUser.getOrgName());
|
securityEntity.setOuName(baseUser.getOrgName());
|
||||||
securityEntity.setOrgId("1");//公司Id
|
SysOrg company = sysOrgService.getCompanyByOrgId(baseUser.getOrgId());
|
||||||
securityEntity.setOrgName("中远");
|
if (company != null) {
|
||||||
|
securityEntity.setOrgId(company.getOrgId());//公司id
|
||||||
|
securityEntity.setOrgName(company.getOrgName());
|
||||||
|
}
|
||||||
securityEntity.setUserSource("0");//账号类型中远
|
securityEntity.setUserSource("0");//账号类型中远
|
||||||
List<AuthorityEntity> authorityList =this.baseUserMapper.selectRoleByUserId(baseUser.getUserId());;
|
List<AuthorityEntity> authorityList =this.baseUserMapper.selectRoleByUserId(baseUser.getUserId());;
|
||||||
securityEntity.setAuthorityList(authorityList);
|
securityEntity.setAuthorityList(authorityList);
|
||||||
@ -272,6 +280,43 @@ public class BaseUserServiceImpl extends BaseServiceImpl<BaseUserMapper, SysUser
|
|||||||
return securityEntity;
|
return securityEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean logout(HttpServletRequest request) {
|
||||||
|
try {
|
||||||
|
|
||||||
|
String token = request.getHeader(com.chinaunicom.mall.ebtp.cloud.security.starter.common.Constants.AUTHORIZATION_HEADER);
|
||||||
|
if (StringUtils.isNotBlank(token)) {
|
||||||
|
token = token.replaceAll("Bearer ", "");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 更新数据库中的token状态为失效
|
||||||
|
List<BaseUserToken> tokenList = baseUserTokenService.list(
|
||||||
|
new LambdaQueryWrapper<BaseUserToken>()
|
||||||
|
.eq(BaseUserToken::getToken, token)
|
||||||
|
.eq(BaseUserToken::getState, Constants.USER_TOKEN_STATUS_E));
|
||||||
|
if (tokenList != null && !tokenList.isEmpty()) {
|
||||||
|
BaseUserToken userToken = tokenList.get(0);
|
||||||
|
userToken.setState(0); // 设置为失效状态
|
||||||
|
boolean updateResult = baseUserTokenService.updateById(userToken);
|
||||||
|
if (updateResult&&userinfoRedisTemplate.hasKey(REDIS_USER_KEY + token)) {
|
||||||
|
// 从Redis中移除token
|
||||||
|
userinfoRedisTemplate.delete(REDIS_USER_KEY + token);
|
||||||
|
//spring 安全删除用户信息
|
||||||
|
SecurityContextHolder.clearContext();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("登出异常:{}", e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void main(String args[]) throws Exception {
|
public static void main(String args[]) throws Exception {
|
||||||
// String rsa = "ObMojRm4G31O91lJDyV7rT7fmkJ0x/tMz+t2gZa1M5RtZm6cTiaAT6eblAQzjuMbNNU6DoD/YloITzn2jnQH4g2nMj1Y8TXdSEK/q8QSoLb8QVb26SuMt1xuv1hklU0yzkqCtGW7GnRArMMlgQjh04GwAcj6TikEFjKvEGGETm4=";
|
// String rsa = "ObMojRm4G31O91lJDyV7rT7fmkJ0x/tMz+t2gZa1M5RtZm6cTiaAT6eblAQzjuMbNNU6DoD/YloITzn2jnQH4g2nMj1Y8TXdSEK/q8QSoLb8QVb26SuMt1xuv1hklU0yzkqCtGW7GnRArMMlgQjh04GwAcj6TikEFjKvEGGETm4=";
|
||||||
// String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCThndxa2d5wd1XgZw/OoRHyqqhEKn2Vj8esINcPHRDKz/eDxrHT874ssYfRdkQPU4d13yLhywu30D0J/IusB1Aay0Kl7fszYztP1Yg7Y8Gmiwynj4bFooIFZk5l0wJdxciXA4FgjK+oD4Un/LhP20k5OSQ+QLMDBHBJTD/uk9cxQIDAQAB";
|
// String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCThndxa2d5wd1XgZw/OoRHyqqhEKn2Vj8esINcPHRDKz/eDxrHT874ssYfRdkQPU4d13yLhywu30D0J/IusB1Aay0Kl7fszYztP1Yg7Y8Gmiwynj4bFooIFZk5l0wJdxciXA4FgjK+oD4Un/LhP20k5OSQ+QLMDBHBJTD/uk9cxQIDAQAB";
|
||||||
|
@ -39,4 +39,6 @@ public interface SysOrgService extends IBaseService<SysOrg>{
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Boolean deleteById(String orgId);
|
Boolean deleteById(String orgId);
|
||||||
|
|
||||||
|
SysOrg getCompanyByOrgId(String orgId);
|
||||||
}
|
}
|
||||||
|
@ -29,17 +29,17 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 对数据表 sys_org 操作的 serviceImpl
|
* 对数据表 sys_org 操作的 serviceImpl
|
||||||
* @author yss
|
|
||||||
*
|
*
|
||||||
|
* @author yss
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class SysOrgServiceImpl extends BaseServiceImpl<SysOrgMapper,SysOrg> implements SysOrgService {
|
public class SysOrgServiceImpl extends BaseServiceImpl<SysOrgMapper, SysOrg> implements SysOrgService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<SysOrg> getPage(SysOrgVO SysOrgVO) {
|
public IPage<SysOrg> getPage(SysOrgVO SysOrgVO) {
|
||||||
LambdaQueryWrapper<SysOrg> query = buildQueryWrapper(SysOrgVO);
|
LambdaQueryWrapper<SysOrg> query = buildQueryWrapper(SysOrgVO);
|
||||||
|
|
||||||
if(null == SysOrgVO.getBasePageRequest()){
|
if (null == SysOrgVO.getBasePageRequest()) {
|
||||||
SysOrgVO.setBasePageRequest(new BasePageRequest());
|
SysOrgVO.setBasePageRequest(new BasePageRequest());
|
||||||
}
|
}
|
||||||
//查询
|
//查询
|
||||||
@ -52,7 +52,7 @@ public class SysOrgServiceImpl extends BaseServiceImpl<SysOrgMapper,SysOrg> imp
|
|||||||
public List<SysOrgVO> getTreeByNode(SysOrg org) {
|
public List<SysOrgVO> getTreeByNode(SysOrg org) {
|
||||||
SysOrgVO sysOrgVO = new SysOrgVO();
|
SysOrgVO sysOrgVO = new SysOrgVO();
|
||||||
List<SysOrg> sysOrgList = new ArrayList<>();
|
List<SysOrg> sysOrgList = new ArrayList<>();
|
||||||
if (!StringUtils.isEmpty(org.getOrgName()) || !StringUtils.isEmpty(org.getOrgNum())){
|
if (!StringUtils.isEmpty(org.getOrgName()) || !StringUtils.isEmpty(org.getOrgNum())) {
|
||||||
SysOrgVO vo = BeanUtil.toBean(org, SysOrgVO.class);
|
SysOrgVO vo = BeanUtil.toBean(org, SysOrgVO.class);
|
||||||
IPage<SysOrg> page = this.getPage(vo);
|
IPage<SysOrg> page = this.getPage(vo);
|
||||||
sysOrgList = page.getRecords();
|
sysOrgList = page.getRecords();
|
||||||
@ -89,16 +89,16 @@ public class SysOrgServiceImpl extends BaseServiceImpl<SysOrgMapper,SysOrg> imp
|
|||||||
@Override
|
@Override
|
||||||
public Boolean insertByVo(SysOrgVO vo) {
|
public Boolean insertByVo(SysOrgVO vo) {
|
||||||
vo.setOrgId(PropertyUtils.getSnowflakeId()).setCreateDate(LocalDateTime.now());
|
vo.setOrgId(PropertyUtils.getSnowflakeId()).setCreateDate(LocalDateTime.now());
|
||||||
SysOrg full = this.buildOrgFullPath(vo);
|
SysOrg full = this.buildOrgFullPath(vo);
|
||||||
vo.setOrgFullId(full.getOrgFullId()).setOrgFullName(full.getOrgFullName());
|
vo.setOrgFullId(full.getOrgFullId()).setOrgFullName(full.getOrgFullName());
|
||||||
validEntityBeforeSave(vo,false);
|
validEntityBeforeSave(vo, false);
|
||||||
return baseMapper.insert(vo) > 0;
|
return baseMapper.insert(vo) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateByVo(SysOrgVO vo) {
|
public Boolean updateByVo(SysOrgVO vo) {
|
||||||
validEntityBeforeSave(vo,true);
|
validEntityBeforeSave(vo, true);
|
||||||
SysOrg full = this.buildOrgFullPath(vo);
|
SysOrg full = this.buildOrgFullPath(vo);
|
||||||
vo.setOrgFullId(full.getOrgFullId()).setOrgFullName(full.getOrgFullName());
|
vo.setOrgFullId(full.getOrgFullId()).setOrgFullName(full.getOrgFullName());
|
||||||
// 删除机构与人员关联
|
// 删除机构与人员关联
|
||||||
// roleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, vo.getRoleId()));
|
// roleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, vo.getRoleId()));
|
||||||
@ -116,8 +116,23 @@ public class SysOrgServiceImpl extends BaseServiceImpl<SysOrgMapper,SysOrg> imp
|
|||||||
return this.removeById(orgId);
|
return this.removeById(orgId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SysOrg getCompanyByOrgId(String orgId) {
|
||||||
|
LambdaQueryWrapper<SysOrg> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysOrg::getOrgId, orgId).eq(SysOrg::getDeleteFlag, "normal");
|
||||||
|
SysOrg currentOrg = baseMapper.selectOne(queryWrapper);
|
||||||
|
while ((currentOrg != null) && !currentOrg.getOrgCategory().equals("Org") && !CommonUtil.ROOT_NODE.equals(currentOrg.getOrgId())) {
|
||||||
|
queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysOrg::getOrgId, currentOrg.getUpOrgId())
|
||||||
|
.eq(SysOrg::getDeleteFlag, "normal");
|
||||||
|
currentOrg = baseMapper.selectOne(queryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
// @Override
|
return currentOrg;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @Override
|
||||||
public SysOrg buildOrgFullPath(SysOrg nowOrg) {
|
public SysOrg buildOrgFullPath(SysOrg nowOrg) {
|
||||||
String upOrgId = StringUtils.isBlank(nowOrg.getUpOrgId()) ? CommonUtil.ROOT_NODE : nowOrg.getUpOrgId();
|
String upOrgId = StringUtils.isBlank(nowOrg.getUpOrgId()) ? CommonUtil.ROOT_NODE : nowOrg.getUpOrgId();
|
||||||
List<String> idPath = new ArrayList<>();
|
List<String> idPath = new ArrayList<>();
|
||||||
@ -129,7 +144,7 @@ public class SysOrgServiceImpl extends BaseServiceImpl<SysOrgMapper,SysOrg> imp
|
|||||||
idPath.add(0, currentOrg.getOrgId());
|
idPath.add(0, currentOrg.getOrgId());
|
||||||
namePath.add(0, currentOrg.getOrgName());
|
namePath.add(0, currentOrg.getOrgName());
|
||||||
|
|
||||||
if (StringUtils.isBlank(currentOrg.getUpOrgId()) || currentOrg.getUpOrgId().equals(CommonUtil.ROOT_NODE)) {
|
if (StringUtils.isBlank(currentOrg.getUpOrgId()) || currentOrg.getUpOrgId().equals(CommonUtil.ROOT_NODE)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,15 +163,15 @@ public class SysOrgServiceImpl extends BaseServiceImpl<SysOrgMapper,SysOrg> imp
|
|||||||
/**
|
/**
|
||||||
* 保存前的数据校验
|
* 保存前的数据校验
|
||||||
*/
|
*/
|
||||||
private void validEntityBeforeSave(SysOrg entity, boolean isUpdate){
|
private void validEntityBeforeSave(SysOrg entity, boolean isUpdate) {
|
||||||
//校验角色编码是否重复
|
//校验角色编码是否重复
|
||||||
LambdaQueryWrapper<SysOrg> lqw = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<SysOrg> lqw = Wrappers.lambdaQuery();
|
||||||
lqw.eq(StringUtils.isNotBlank(entity.getOrgNum()), SysOrg::getOrgNum, entity.getOrgNum());
|
lqw.eq(StringUtils.isNotBlank(entity.getOrgNum()), SysOrg::getOrgNum, entity.getOrgNum());
|
||||||
if (isUpdate){
|
if (isUpdate) {
|
||||||
lqw.ne(StringUtils.isNotBlank(entity.getOrgId()), SysOrg::getOrgId, entity.getOrgId());
|
lqw.ne(StringUtils.isNotBlank(entity.getOrgId()), SysOrg::getOrgId, entity.getOrgId());
|
||||||
}
|
}
|
||||||
List<SysOrg> orgList =baseMapper.selectList(lqw);
|
List<SysOrg> orgList = baseMapper.selectList(lqw);
|
||||||
CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("组织编码已存在",orgList.size()>1);
|
CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("组织编码已存在", orgList.size() > 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private SysOrgVO setInfoForTree(SysOrgVO orgVO) {
|
private SysOrgVO setInfoForTree(SysOrgVO orgVO) {
|
||||||
@ -165,6 +180,7 @@ public class SysOrgServiceImpl extends BaseServiceImpl<SysOrgMapper,SysOrg> imp
|
|||||||
.setKey(orgVO.getOrgId())
|
.setKey(orgVO.getOrgId())
|
||||||
.setValue(orgVO.getOrgId());
|
.setValue(orgVO.getOrgId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 递归查询部门信息树形展示
|
* 递归查询部门信息树形展示
|
||||||
*
|
*
|
||||||
@ -199,7 +215,7 @@ public class SysOrgServiceImpl extends BaseServiceImpl<SysOrgMapper,SysOrg> imp
|
|||||||
|
|
||||||
private LambdaQueryWrapper<SysOrg> buildQueryWrapper(SysOrgVO vo) {
|
private LambdaQueryWrapper<SysOrg> buildQueryWrapper(SysOrgVO vo) {
|
||||||
LambdaQueryWrapper<SysOrg> lqw = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<SysOrg> lqw = Wrappers.lambdaQuery();
|
||||||
lqw.like(StringUtils.isNotBlank(vo.getOrgName()), SysOrg::getOrgName , vo.getOrgName());
|
lqw.like(StringUtils.isNotBlank(vo.getOrgName()), SysOrg::getOrgName, vo.getOrgName());
|
||||||
lqw.eq(StringUtils.isNotBlank(vo.getOrgNum()), SysOrg::getOrgNum, vo.getOrgNum());
|
lqw.eq(StringUtils.isNotBlank(vo.getOrgNum()), SysOrg::getOrgNum, vo.getOrgNum());
|
||||||
lqw.like(StringUtils.isNotBlank(vo.getOrgFullId()), SysOrg::getOrgFullId, vo.getOrgFullId());
|
lqw.like(StringUtils.isNotBlank(vo.getOrgFullId()), SysOrg::getOrgFullId, vo.getOrgFullId());
|
||||||
lqw.like(StringUtils.isNotBlank(vo.getOrgFullName()), SysOrg::getOrgFullName, vo.getOrgFullName());
|
lqw.like(StringUtils.isNotBlank(vo.getOrgFullName()), SysOrg::getOrgFullName, vo.getOrgFullName());
|
||||||
|
Reference in New Issue
Block a user