public class TokenInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String token = request.getHeader("token");
DecodedJWT decode = JWT.decode(token);
Claim name = decode.getClaim("name");
System.out.println("TokenInterceptor name:"+name.as(String.class));
boolean abc = JwtUtil.verify(token, "abc");
System.out.println("TokenInterceptor abc:"+abc);
return abc;
}
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
List<String> excludePath = new ArrayList<>();
excludePath.add("/channel/login");
registry.addInterceptor(tokenInterceptor)
.excludePathPatterns(excludePath)
.addPathPatterns("/**");
WebMvcConfigurer.super.addInterceptors(registry);
}
public class JwtUtil {
public static String getToken(User user){
Map header = new HashMap<>();
header.put("Content-Type","application/json");
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.SECOND,60);
String token = JWT.create()
.withHeader(header)
.withClaim("name", user.getName())
.withExpiresAt(calendar.getTime())
.sign(Algorithm.HMAC256(user.getPass()));
System.out.println("JwtUtil getToken token:"+token);
return token;
}
public static boolean verify(String token,String pass){
try {
JWTVerifier require = JWT.require(Algorithm.HMAC256(pass)).build();
DecodedJWT verify = require.verify(token);
System.out.println("JwtUtil verify verify:"+verify);
return true;
}catch (Exception e){
return false;
}
}
}
@ResponseBody
@RequestMapping("/login")
public String login(@RequestBody User user){
String token = JwtUtil.getToken(user);
user.setToken(token);
return token;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步