| | |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.panzhihua.common.constants.HttpStatus; |
| | | import com.panzhihua.common.constants.SecurityConstants; |
| | | import com.panzhihua.common.constants.TokenConstant; |
| | | import com.panzhihua.common.constants.UserConstants; |
| | | import com.panzhihua.common.constants.*; |
| | | import com.panzhihua.common.model.vos.LoginUserInfoVO; |
| | | import com.panzhihua.common.model.vos.R; |
| | | import com.panzhihua.common.service.user.UserService; |
| | | import com.panzhihua.common.utlis.AES; |
| | | import com.panzhihua.common.utlis.JWTTokenUtil; |
| | | import com.panzhihua.common.utlis.ResultUtil; |
| | | import io.jsonwebtoken.Claims; |
| | |
| | | ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue(); |
| | | userService=ctx.getBean(UserService.class); |
| | | String requestURI = request.getRequestURI(); |
| | | boolean contains = requestURI.contains("login"); |
| | | boolean login = requestURI.contains("login"); |
| | | boolean doc = requestURI.contains("doc.html"); |
| | | boolean css = requestURI.contains(".css"); |
| | | boolean js = requestURI.contains(".js"); |
| | |
| | | boolean refreshToken = requestURI.contains("refreshToken"); |
| | | boolean logout = requestURI.contains("logout"); |
| | | SafeboxRequestWrapper safeboxRequestWrapper = new SafeboxRequestWrapper(request); |
| | | if (contains||doc||css||js||ui||swagger||ico||docs||error||refreshToken) { |
| | | if (login||doc||css||js||ui||swagger||ico||docs||error||refreshToken) { |
| | | //什么也不做 |
| | | } else { |
| | | // 获取请求头中JWT的Token |
| | |
| | | Boolean hasKeyLoginUserInfo = stringRedisTemplate.hasKey(userKey); |
| | | if(hasKeyLoginUserInfo){ |
| | | String userInfo = valueOperations.get(userKey); |
| | | safeboxRequestWrapper.addHeader(UserConstants.LOGIN_USER_INFO,userInfo); |
| | | byte[] encrypt = AES.encrypt(userInfo, Constants.AES_KEY); |
| | | String hexStr = AES.parseByte2HexStr(encrypt); |
| | | safeboxRequestWrapper.addHeader(TokenConstant.TOKEN_USERINFO, hexStr); |
| | | }else{ |
| | | R<LoginUserInfoVO> userInfoByUserId = userService.getUserInfoByUserId(username); |
| | | LoginUserInfoVO data = userInfoByUserId.getData(); |
| | | String userInfo = JSONObject.toJSONString(data); |
| | | valueOperations.set(userKey,userInfo,24,TimeUnit.HOURS); |
| | | safeboxRequestWrapper.addHeader(UserConstants.LOGIN_USER_INFO,userInfo); |
| | | byte[] encrypt = AES.encrypt(userInfo, Constants.AES_KEY); |
| | | String hexStr = AES.parseByte2HexStr(encrypt); |
| | | safeboxRequestWrapper.addHeader(TokenConstant.TOKEN_USERINFO,hexStr ); |
| | | } |
| | | |
| | | } else { |
| | | ResultUtil.responseJson(response, R.fail(HttpStatus.UNAUTHORIZED, "token校验失败")); |
| | | return; |