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..dec6b6fb 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 */ @@ -78,11 +84,11 @@ public class UserUtils { * 获取当前登录用户名 */ public static String getUserName() { -// JWTRealm.Principal principal = (Principal) SecurityUtils.getSubject().getPrincipal(); -// if (principal != null) { -// return principal.getLoginName(); -// } - return "admin"; + UserEO userEO = getUser(); + if (userEO != null) { + return userEO.getAccount(); + } + return null; } /** @@ -90,27 +96,25 @@ public class UserUtils { * @throws Exception */ public static String getUserId() { - UserEO userEO = getUser(); - if (userEO != null) { - return userEO.getUsid(); - } - return null; + return jwtUtils.getUserIdByToken(); } /** * 获取当前登录用户信息 */ public static UserEO getUser() { - UserEO user = (UserEO) CacheUtils.getCache(CURRENT_USER); + UserEO user = jwtUtils.getUserByToken(); if (user == null) { user = new UserEO(); - String userName = getUserName(); + String userId = getUserId(); - if (StringUtils.isNotEmpty(userName)) { - UserEO userInDb = userService.getUserByLoginNameNotDeleted(userName); - user = ObjectUtil.clone(userInDb); - user.setPassword(""); - CacheUtils.putCache(CURRENT_USER, user); + if (StringUtils.isNotEmpty(userId)) { + List userEOS = userService.getUser(userId); + if(!userEOS.isEmpty()){ + user = ObjectUtil.clone(userEOS.get(0)); + user.setPassword(""); + CacheUtils.putCache(CURRENT_USER, user); + } } } return user; diff --git a/adc-da-main/src/main/resources/application-dev.properties b/adc-da-main/src/main/resources/application-dev.properties index a4e5272b..72319dce 100644 --- a/adc-da-main/src/main/resources/application-dev.properties +++ b/adc-da-main/src/main/resources/application-dev.properties @@ -74,7 +74,7 @@ OCR.userId =dayuzhou1234 OCR.authCode =123456 OCR.publicKey =EC4KKA6ZDTCPAOCRBC5M # OCR文件存储路径 -OCR.ocrPath=/opt/foton-slrs/front/dist/file/a +OCR.ocrPath=/opt/foton-slrs/front/dist/file/ # OCR文件请求下载或在线预览时URL OCR.ocrDownPath=http://62.234.136.153:8038/file/ OCR.times=20 diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java index 4b2f8784..300b63ab 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java @@ -62,8 +62,8 @@ public class TsUserController extends BaseController { @ApiOperation("查询当前登录用户权限") @GetMapping("/menu") - public ResponseMessage> getMenu(@RequestParam("userId") String userId){ - List menus=tsUserService.getMenu(userId); + public ResponseMessage> getMenu(){ + List menus=tsUserService.getMenu(); return Result.success(menus); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java index bcadca3f..3703d472 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java @@ -48,7 +48,7 @@ public interface ITsUserService extends IService { * 查询当前登录的用户权限 * @return List */ - List getMenu(String userId); + List getMenu(); List getResource(TsResource tsResource); 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..5f361bea 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() { + 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} + +