From 91ff42cb12669fa266d582a9fb77ae0fd78d0730 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Mon, 18 Oct 2021 12:45:02 +0800 Subject: [PATCH] feat: There is no way the user jwt --- .../java/com/adc/da/login/util/JwtUtils.java | 41 ++++++++++++++++++- .../java/com/adc/da/login/util/UserUtils.java | 10 ++++- .../service/impl/TsUserServiceImpl.java | 6 +-- .../java/com/adc/da/sys/dao/UserEODao.java | 2 + .../adc/da/sys/service/IUserEOService.java | 2 + .../sys/service/impl/UserEOServiceImpl.java | 5 +++ .../mybatis/mapper/sys/UserEOMapper.xml | 7 ++++ 7 files changed, 66 insertions(+), 7 deletions(-) diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/JwtUtils.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/JwtUtils.java index 3ad992e0..0296dd12 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/JwtUtils.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/JwtUtils.java @@ -1,12 +1,21 @@ package com.adc.da.login.util; +import com.adc.da.att.entity.TsUser; +import com.adc.da.sys.entity.UserEO; +import com.adc.da.sys.service.IUserEOService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.jsonwebtoken.Claims; import io.jsonwebtoken.ExpiredJwtException; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import javax.servlet.http.HttpServletRequest; import java.util.Date; +import java.util.List; /** * token 工具类 @@ -25,6 +34,9 @@ public class JwtUtils { // 秘钥 private static String secret = "HSyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9"; + @Autowired + private IUserEOService userService; + /** * 创建一个token * @@ -35,8 +47,8 @@ public class JwtUtils { Date now = new Date(); Date expireDate = new Date(now.getTime() + expire); return Jwts.builder().setHeaderParam("type", "JWT").setSubject(userId).setIssuedAt(now) - .setExpiration(expireDate).signWith( - SignatureAlgorithm.HS512, secret).compact(); + .setExpiration(expireDate).signWith( + SignatureAlgorithm.HS512, secret).compact(); } /** @@ -55,6 +67,31 @@ public class JwtUtils { return claims; } + public String getUserIdByToken(){ + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + String user = ""; + if(attributes != null){ + HttpServletRequest request = attributes.getRequest(); + Claims claim = getClaimsByToken(request.getHeader("token")); + user = claim.getSubject(); + } + return user; + } + + public UserEO getUserByToken(){ + UserEO userEO = new UserEO(); + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + if(attributes != null){ + HttpServletRequest request = attributes.getRequest(); + //添加token + Claims claim = getClaimsByToken(request.getHeader("token")); + String subject = claim.getSubject(); + List userEOS = userService.getUser(subject); + userEO = userEOS.get(0); + } + return userEO; + } + /** * 判断 token 是否过期 */ diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/UserUtils.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/UserUtils.java index 01507f03..8bfaa40b 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/UserUtils.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/UserUtils.java @@ -17,6 +17,7 @@ import org.apache.shiro.authz.SimpleAuthorizationInfo; import org.apache.shiro.session.InvalidSessionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.util.List; import java.util.Map; @@ -46,6 +47,11 @@ public class UserUtils { public static final String CACHE_AREA_LIST = "areaList"; public static final String CACHE_OFFICE_LIST = "officeList"; + /** + * @see JwtUtils + */ + private static JwtUtils jwtUtils = SpringContextHolder1.getBean(JwtUtils.class); + /** * @see IUserEOService */ @@ -82,7 +88,7 @@ public class UserUtils { // if (principal != null) { // return principal.getLoginName(); // } - return "admin"; + return jwtUtils.getUserIdByToken(); } /** @@ -101,7 +107,7 @@ public class UserUtils { * 获取当前登录用户信息 */ public static UserEO getUser() { - UserEO user = (UserEO) CacheUtils.getCache(CURRENT_USER); + UserEO user = jwtUtils.getUserByToken(); if (user == null) { user = new UserEO(); String userName = getUserName(); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java index 45f8e607..fd6603a0 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java @@ -149,9 +149,9 @@ public class TsUserServiceImpl extends ServiceImpl implements * @return List */ @Override - public List getMenu(String userId) { -/* UserEO userEO=UserUtils.getUser(); - String userId= userEO.getUsid();*/ + public List getMenu(String userIds) { + UserEO userEO=UserUtils.getUser(); + String userId= userEO.getUsid(); List positionIds=tsUserDao.selectPositionIds(userId); /** * 当用户没有所属岗位,默认给一个other岗位,适用于特定权限外的其他用户 diff --git a/adc-da-sys/src/main/java/com/adc/da/sys/dao/UserEODao.java b/adc-da-sys/src/main/java/com/adc/da/sys/dao/UserEODao.java index c3388fa1..7350abc3 100644 --- a/adc-da-sys/src/main/java/com/adc/da/sys/dao/UserEODao.java +++ b/adc-da-sys/src/main/java/com/adc/da/sys/dao/UserEODao.java @@ -106,6 +106,8 @@ public interface UserEODao extends BaseMapper { */ UserEO selectOrgByPrimaryKey(String usid); + List getUser(String usid); + Integer selectOrgCountByPrimaryKey(String usid); UserEO selectRoleMessageByPrimaryKey(String usid); diff --git a/adc-da-sys/src/main/java/com/adc/da/sys/service/IUserEOService.java b/adc-da-sys/src/main/java/com/adc/da/sys/service/IUserEOService.java index 3aa8e180..3e3e70ec 100644 --- a/adc-da-sys/src/main/java/com/adc/da/sys/service/IUserEOService.java +++ b/adc-da-sys/src/main/java/com/adc/da/sys/service/IUserEOService.java @@ -71,6 +71,8 @@ public interface IUserEOService extends IService { public UserEO getOrgIdByUserId(String userId); + public List getUser(String userId); + public UserEO getUserByLoginNameNotDeleted(String userName); diff --git a/adc-da-sys/src/main/java/com/adc/da/sys/service/impl/UserEOServiceImpl.java b/adc-da-sys/src/main/java/com/adc/da/sys/service/impl/UserEOServiceImpl.java index e95c0432..b98902f4 100644 --- a/adc-da-sys/src/main/java/com/adc/da/sys/service/impl/UserEOServiceImpl.java +++ b/adc-da-sys/src/main/java/com/adc/da/sys/service/impl/UserEOServiceImpl.java @@ -428,6 +428,11 @@ public class UserEOServiceImpl extends ServiceImpl implements return this.baseMapper.get(userId); } + @Transactional(readOnly = true, rollbackFor = Exception.class) + public List getUser(String usid){ + return this.baseMapper.getUser(usid); + } + /** * @Author liwenxuan diff --git a/adc-da-sys/src/main/resources/mybatis/mapper/sys/UserEOMapper.xml b/adc-da-sys/src/main/resources/mybatis/mapper/sys/UserEOMapper.xml index 45a34226..2ffc9c1b 100644 --- a/adc-da-sys/src/main/resources/mybatis/mapper/sys/UserEOMapper.xml +++ b/adc-da-sys/src/main/resources/mybatis/mapper/sys/UserEOMapper.xml @@ -397,6 +397,13 @@ AND usid !=#{usid} + +