MOD:Token key:long to string
Showing
6 changed files
with
17 additions
and
33 deletions
| @@ -12,7 +12,7 @@ public interface ITokenManager { | @@ -12,7 +12,7 @@ public interface ITokenManager { | ||
| 12 | * @param userId 指定用户的id | 12 | * @param userId 指定用户的id |
| 13 | * @return 生成的token | 13 | * @return 生成的token |
| 14 | */ | 14 | */ |
| 15 | - public TokenModel createToken(long userId); | 15 | + public TokenModel createToken(String userId); |
| 16 | 16 | ||
| 17 | /** | 17 | /** |
| 18 | * 检查token是否有效 | 18 | * 检查token是否有效 |
| @@ -32,6 +32,6 @@ public interface ITokenManager { | @@ -32,6 +32,6 @@ public interface ITokenManager { | ||
| 32 | * 清除token | 32 | * 清除token |
| 33 | * @param userId 登录用户的id | 33 | * @param userId 登录用户的id |
| 34 | */ | 34 | */ |
| 35 | - public void deleteToken(long userId); | 35 | + public void deleteToken(String userId); |
| 36 | 36 | ||
| 37 | } | 37 | } |
| @@ -18,7 +18,7 @@ import java.util.concurrent.TimeUnit; | @@ -18,7 +18,7 @@ import java.util.concurrent.TimeUnit; | ||
| 18 | @Component | 18 | @Component |
| 19 | public class RedisTokenManager implements ITokenManager { | 19 | public class RedisTokenManager implements ITokenManager { |
| 20 | 20 | ||
| 21 | - private RedisTemplate<Long, String> redis; | 21 | + private RedisTemplate<String, String> redis; |
| 22 | 22 | ||
| 23 | @Autowired | 23 | @Autowired |
| 24 | public void setRedis(RedisTemplate redis) { | 24 | public void setRedis(RedisTemplate redis) { |
| @@ -27,7 +27,7 @@ public class RedisTokenManager implements ITokenManager { | @@ -27,7 +27,7 @@ public class RedisTokenManager implements ITokenManager { | ||
| 27 | redis.setKeySerializer(new JdkSerializationRedisSerializer()); | 27 | redis.setKeySerializer(new JdkSerializationRedisSerializer()); |
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | - public TokenModel createToken(long userId) { | 30 | + public TokenModel createToken(String userId) { |
| 31 | //使用uuid作为源token | 31 | //使用uuid作为源token |
| 32 | String token = UUID.randomUUID().toString().replace("-", ""); | 32 | String token = UUID.randomUUID().toString().replace("-", ""); |
| 33 | TokenModel model = new TokenModel(userId, token); | 33 | TokenModel model = new TokenModel(userId, token); |
| @@ -45,7 +45,7 @@ public class RedisTokenManager implements ITokenManager { | @@ -45,7 +45,7 @@ public class RedisTokenManager implements ITokenManager { | ||
| 45 | return null; | 45 | return null; |
| 46 | } | 46 | } |
| 47 | //使用userId和源token简单拼接成的token,可以增加加密措施 | 47 | //使用userId和源token简单拼接成的token,可以增加加密措施 |
| 48 | - long userId = Long.parseLong(param[0]); | 48 | + String userId = param[0]; |
| 49 | String token = param[1]; | 49 | String token = param[1]; |
| 50 | return new TokenModel(userId, token); | 50 | return new TokenModel(userId, token); |
| 51 | } | 51 | } |
| @@ -63,7 +63,7 @@ public class RedisTokenManager implements ITokenManager { | @@ -63,7 +63,7 @@ public class RedisTokenManager implements ITokenManager { | ||
| 63 | return true; | 63 | return true; |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | - public void deleteToken(long userId) { | 66 | + public void deleteToken(String userId) { |
| 67 | redis.delete(userId); | 67 | redis.delete(userId); |
| 68 | } | 68 | } |
| 69 | } | 69 | } |
| 1 | package com.xkl.authorization.model; | 1 | package com.xkl.authorization.model; |
| 2 | 2 | ||
| 3 | +import lombok.AllArgsConstructor; | ||
| 4 | +import lombok.Data; | ||
| 5 | + | ||
| 3 | /** | 6 | /** |
| 4 | * Token的Model类,可以增加字段提高安全性,例如时间戳、url签名 | 7 | * Token的Model类,可以增加字段提高安全性,例如时间戳、url签名 |
| 5 | */ | 8 | */ |
| 9 | +@Data | ||
| 10 | +@AllArgsConstructor | ||
| 6 | public class TokenModel { | 11 | public class TokenModel { |
| 7 | 12 | ||
| 8 | //用户id | 13 | //用户id |
| 9 | - private long userId; | 14 | + private String userId; |
| 10 | 15 | ||
| 11 | //随机生成的uuid | 16 | //随机生成的uuid |
| 12 | private String token; | 17 | private String token; |
| 13 | - | ||
| 14 | - public TokenModel(long userId, String token) { | ||
| 15 | - this.userId = userId; | ||
| 16 | - this.token = token; | ||
| 17 | - } | ||
| 18 | - | ||
| 19 | - public long getUserId() { | ||
| 20 | - return userId; | ||
| 21 | - } | ||
| 22 | - | ||
| 23 | - public void setUserId(long userId) { | ||
| 24 | - this.userId = userId; | ||
| 25 | - } | ||
| 26 | - | ||
| 27 | - public String getToken() { | ||
| 28 | - return token; | ||
| 29 | - } | ||
| 30 | - | ||
| 31 | - public void setToken(String token) { | ||
| 32 | - this.token = token; | ||
| 33 | - } | ||
| 34 | } | 18 | } |
| @@ -37,10 +37,10 @@ public class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentR | @@ -37,10 +37,10 @@ public class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentR | ||
| 37 | @Override | 37 | @Override |
| 38 | public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { | 38 | public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { |
| 39 | //取出鉴权时存入的登录用户Id | 39 | //取出鉴权时存入的登录用户Id |
| 40 | - Long currentUserId = (Long) webRequest.getAttribute(Constants.CURRENT_USER_ID, RequestAttributes.SCOPE_REQUEST); | 40 | + String currentUserId = (String) webRequest.getAttribute(Constants.CURRENT_USER_ID, RequestAttributes.SCOPE_REQUEST); |
| 41 | if (currentUserId != null) { | 41 | if (currentUserId != null) { |
| 42 | //从数据库中查询并返回 | 42 | //从数据库中查询并返回 |
| 43 | - return userRepository.findOne(currentUserId); | 43 | + return userRepository.findOne(Long.parseLong(currentUserId)); |
| 44 | } | 44 | } |
| 45 | throw new MissingServletRequestPartException(Constants.CURRENT_USER_ID); | 45 | throw new MissingServletRequestPartException(Constants.CURRENT_USER_ID); |
| 46 | } | 46 | } |
| @@ -52,7 +52,7 @@ public class TokenController { | @@ -52,7 +52,7 @@ public class TokenController { | ||
| 52 | return new ResponseEntity<>(ResultModel.error(ResultStatus.USERNAME_OR_PASSWORD_ERROR), HttpStatus.NOT_FOUND); | 52 | return new ResponseEntity<>(ResultModel.error(ResultStatus.USERNAME_OR_PASSWORD_ERROR), HttpStatus.NOT_FOUND); |
| 53 | } | 53 | } |
| 54 | //生成一个token,保存用户登录状态 | 54 | //生成一个token,保存用户登录状态 |
| 55 | - TokenModel model = tokenManager.createToken(user.getId()); | 55 | + TokenModel model = tokenManager.createToken(String.valueOf(user.getId())); |
| 56 | return new ResponseEntity<>(ResultModel.ok(model), HttpStatus.OK); | 56 | return new ResponseEntity<>(ResultModel.ok(model), HttpStatus.OK); |
| 57 | } | 57 | } |
| 58 | 58 | ||
| @@ -63,7 +63,7 @@ public class TokenController { | @@ -63,7 +63,7 @@ public class TokenController { | ||
| 63 | @ApiImplicitParam(name = "authorization", value = "请输入登录返回信息:userId_tokens", required = true, dataType = "string", paramType = "header"), | 63 | @ApiImplicitParam(name = "authorization", value = "请输入登录返回信息:userId_tokens", required = true, dataType = "string", paramType = "header"), |
| 64 | }) | 64 | }) |
| 65 | public ResponseEntity<ResultModel> logout(@CurrentUser User user) { | 65 | public ResponseEntity<ResultModel> logout(@CurrentUser User user) { |
| 66 | - tokenManager.deleteToken(user.getId()); | 66 | + tokenManager.deleteToken(String.valueOf(user.getId())); |
| 67 | return new ResponseEntity<>(ResultModel.ok(), HttpStatus.OK); | 67 | return new ResponseEntity<>(ResultModel.ok(), HttpStatus.OK); |
| 68 | } | 68 | } |
| 69 | 69 |
| @@ -70,7 +70,7 @@ public class UserInfoController { | @@ -70,7 +70,7 @@ public class UserInfoController { | ||
| 70 | user.setPassword(pass); | 70 | user.setPassword(pass); |
| 71 | user.setSalt(salt); | 71 | user.setSalt(salt); |
| 72 | userRepository.save(user); | 72 | userRepository.save(user); |
| 73 | - tokenManager.deleteToken(user.getId());//退出登录 | 73 | + tokenManager.deleteToken(String.valueOf(user.getId()));//退出登录 |
| 74 | return new ResponseEntity<>(ResultModel.ok(ResultStatus.USER_LOGOUT), HttpStatus.OK); | 74 | return new ResponseEntity<>(ResultModel.ok(ResultStatus.USER_LOGOUT), HttpStatus.OK); |
| 75 | } | 75 | } |
| 76 | 76 |
-
Please register or login to post a comment