Commit b88cb5dc by ypenglv

新增工具类

1 parent cdd1ef5a
...@@ -57,6 +57,7 @@ public class UserServiceImpl implements UserService { ...@@ -57,6 +57,7 @@ public class UserServiceImpl implements UserService {
@Override @Override
public ApiResponse<UserVO> login() { public ApiResponse<UserVO> login() {
ApiResponse result = new ApiResponse(); ApiResponse result = new ApiResponse();
long EXPIRITION = 1000 * 60 * 60 * 24 * 7;
//假设验证数据通过 //假设验证数据通过
UserVO userVO = new UserVO(); UserVO userVO = new UserVO();
userVO.setLoginPwd("zzz"); userVO.setLoginPwd("zzz");
...@@ -79,7 +80,7 @@ public class UserServiceImpl implements UserService { ...@@ -79,7 +80,7 @@ public class UserServiceImpl implements UserService {
String substring = sRole.substring(0, sRole.lastIndexOf(",")); String substring = sRole.substring(0, sRole.lastIndexOf(","));
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();
map.put(HttpClientHeaderEnum.USER_HEADER_USER_ID.getCode(),userVO.getId()); map.put(HttpClientHeaderEnum.USER_HEADER_USER_ID.getCode(),userVO.getId());
String token = JwtUtils.generateJsonWebToken(map); String token = JwtUtils.generateJsonWebToken(map,EXPIRITION);
// userVO.setToken(token); // userVO.setToken(token);
result.setData(userVO); result.setData(userVO);
return result; return result;
...@@ -140,6 +141,7 @@ public class UserServiceImpl implements UserService { ...@@ -140,6 +141,7 @@ public class UserServiceImpl implements UserService {
@Override @Override
public ApiResponse<UserVO> userLogin(LoginDto loginDto) { public ApiResponse<UserVO> userLogin(LoginDto loginDto) {
UserVO userVo = new UserVO(); UserVO userVo = new UserVO();
long EXPIRITION = 1000 * 60 * 60 * 24 * 7;
//首先判断登陆方式 //首先判断登陆方式
if (loginDto.getType().equals("0")){ if (loginDto.getType().equals("0")){
//密码登陆 //密码登陆
...@@ -164,7 +166,7 @@ public class UserServiceImpl implements UserService { ...@@ -164,7 +166,7 @@ public class UserServiceImpl implements UserService {
} }
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();
map.put(HttpClientHeaderEnum.USER_HEADER_USER_ID.getCode(),userVo.getId()); map.put(HttpClientHeaderEnum.USER_HEADER_USER_ID.getCode(),userVo.getId());
String token = JwtUtils.generateJsonWebToken(map); String token = JwtUtils.generateJsonWebToken(map,EXPIRITION);
userVo.setAuthorization(token); userVo.setAuthorization(token);
ApiResponse apiResponse =new ApiResponse(); ApiResponse apiResponse =new ApiResponse();
apiResponse.setData(userVo); apiResponse.setData(userVo);
......
...@@ -8,7 +8,8 @@ public enum HttpClientHeaderEnum { ...@@ -8,7 +8,8 @@ public enum HttpClientHeaderEnum {
*/ */
USER_HEADER_USER_ID("userId", "用户ID"), USER_HEADER_USER_ID("userId", "用户ID"),
USER_HEADER_USER_TOKEN("Authorization", "用户token"), USER_HEADER_USER_TOKEN("Authorization", "用户token"),
USER_HEADER_MODE("mode", "设备:PC,APP,PAD"); USER_HEADER_MODE("mode", "设备:PC,APP,PAD"),
USER_VO("USERVO","用户信息");
HttpClientHeaderEnum(String code, String name){ HttpClientHeaderEnum(String code, String name){
this.code = code; this.code = code;
......
...@@ -18,15 +18,18 @@ public class JwtUtils { ...@@ -18,15 +18,18 @@ public class JwtUtils {
public static final String APPSECRET_KEY = "qwertyuiop123456780"; public static final String APPSECRET_KEY = "qwertyuiop123456780";
public static String generateJsonWebToken(Map<String,Object> param) { public static String generateJsonWebToken(Map<String,Object> param,long timeOut) {
if(timeOut < 0){
timeOut = EXPIRITION;
}
if (param.isEmpty()) { if (param.isEmpty()) {
return null; return null;
} }
return Jwts return Jwts
.builder() .builder()
.claim(HttpClientHeaderEnum.USER_HEADER_USER_ID.getCode(), param.get(HttpClientHeaderEnum.USER_HEADER_USER_ID.getCode())) .claim(HttpClientHeaderEnum.USER_VO.getCode(),param)
.setIssuedAt(new Date()) .setIssuedAt(new Date())
.setExpiration(new Date(System.currentTimeMillis() + EXPIRITION)) .setExpiration(new Date(System.currentTimeMillis() + timeOut))
.signWith(SignatureAlgorithm.HS256, APPSECRET_KEY).compact(); .signWith(SignatureAlgorithm.HS256, APPSECRET_KEY).compact();
} }
...@@ -68,10 +71,11 @@ public class JwtUtils { ...@@ -68,10 +71,11 @@ public class JwtUtils {
public static void main(String[] args) { public static void main(String[] args) {
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();
map.put("userId",12312321313L); map.put("userId",12312321313L);
String token = generateJsonWebToken(map); String token = generateJsonWebToken(map,EXPIRITION);
System.out.println(token); System.out.println(token);
Claims claims = getUserInfo(token); Claims claims = getUserInfo(token);
System.out.println(claims.get(HttpClientHeaderEnum.USER_HEADER_USER_ID.getCode())); Map<String,Object> map1 = (Map<String, Object>) claims.get(HttpClientHeaderEnum.USER_VO.getCode());
System.out.println(map.get(HttpClientHeaderEnum.USER_HEADER_USER_ID.getCode()));
System.out.println(isExpiration(token)); System.out.println(isExpiration(token));
} }
} }
package org.nafmii.common.utils; package org.nafmii.common.utils;
import org.apache.commons.lang.StringUtils;
import org.nafmii.common.constant.MessageEnum; import org.nafmii.common.constant.MessageEnum;
import org.nafmii.common.constant.HttpClientHeaderEnum; import org.nafmii.common.constant.HttpClientHeaderEnum;
import org.nafmii.common.exception.BusinessException; import org.nafmii.common.exception.BusinessException;
import org.springframework.util.StringUtils;
import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestAttributes;
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;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.Map;
public class RequestUtils { public class RequestUtils {
...@@ -28,15 +29,19 @@ public class RequestUtils { ...@@ -28,15 +29,19 @@ public class RequestUtils {
public static Long getUserId(){ public static Long getUserId(){
//token 获取用户信息 //token 获取用户信息
String token = getToken(); String token = getToken();
String userId = JwtUtils.getUserInfo(token).get(HttpClientHeaderEnum.USER_HEADER_USER_ID.getCode()).toString(); if (StringUtils.isNotBlank(token)){
if (!StringUtils.isEmpty(userId)){ throw new BusinessException("令牌不能为空");
}
Map<String,Object> map = (Map<String, Object>) JwtUtils.getUserInfo(token).get(HttpClientHeaderEnum.USER_VO.getCode());
String userId = map.get(HttpClientHeaderEnum.USER_HEADER_USER_ID.getCode()).toString();
if (StringUtils.isNotBlank(userId)){
try { try {
return Long.valueOf(userId); return Long.valueOf(userId);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
return null; return null;
} }
} }
return null; throw new BusinessException("用户主键不能为空");
} }
public static String getToken(){ public static String getToken(){
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!