Commit ed77ab6d by zhangxingmin

日志

parent f0b21d20
...@@ -57,26 +57,28 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter { ...@@ -57,26 +57,28 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
log.info("从HTTP请求中解析JWT令牌(通常从Authorization头获取):{}",token); log.info("从HTTP请求中解析JWT令牌(通常从Authorization头获取):{}",token);
// 2. 检查令牌是否存在且有效 // 2. 检查令牌是否存在且有效
if (token != null && tokenProvider.validateToken(token)) { if (token != null) {
// 3. 从JWT令牌中提取用户唯一标识(业务ID) if (tokenProvider.validateToken(token)){
String userBizId = tokenProvider.getUserBizIdFromToken(token); // 3. 从JWT令牌中提取用户唯一标识(业务ID)
String userBizId = tokenProvider.getUserBizIdFromToken(token);
// 4. 根据用户唯一标识查询用户详细信息(包括权限信息)从缓存里面获取
UserDetails userDetails = redisUtil.getCacheObject(RedisConstants.LOGIN_USER + userBizId); // 4. 根据用户唯一标识查询用户详细信息(包括权限信息)从缓存里面获取
if (Objects.isNull(userDetails)) { UserDetails userDetails = redisUtil.getCacheObject(RedisConstants.LOGIN_USER + userBizId);
throw new UsernameNotFoundException("用户登录信息已失效,请重新登录!"); if (Objects.isNull(userDetails)) {
} throw new UsernameNotFoundException("用户登录信息已失效,请重新登录!");
}
// UserDetails userDetails = queryUserDetails(userBizId); // UserDetails userDetails = queryUserDetails(userBizId);
// 5. 创建Spring Security认证对象 // 5. 创建Spring Security认证对象
// - userDetails: 包含用户身份和权限信息 // - userDetails: 包含用户身份和权限信息
// - null: 凭证(密码),JWT认证中不需要 // - null: 凭证(密码),JWT认证中不需要
// - userDetails.getAuthorities(): 用户的权限集合 // - userDetails.getAuthorities(): 用户的权限集合
UsernamePasswordAuthenticationToken authentication = UsernamePasswordAuthenticationToken authentication =
new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
// 6. 将认证对象设置到SecurityContext中,表示用户已认证,这里设置后续接口能直接拿到登录用户信息 // 6. 将认证对象设置到SecurityContext中,表示用户已认证,这里设置后续接口能直接拿到登录用户信息
SecurityContextHolder.getContext().setAuthentication(authentication); SecurityContextHolder.getContext().setAuthentication(authentication);
}
} }
// 7. 继续执行后续过滤器链(无论是否认证都要继续处理请求) // 7. 继续执行后续过滤器链(无论是否认证都要继续处理请求)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment