@Component
public class JwtInterceptor implements HandlerInterceptor {
private static final Logger log= LoggerFactory.getLogger(JwtInterceptor.class);
@Resource
private AdminService adminService;
@Resource
private UService uService;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
String token=request.getHeader("token");
if(StrUtil.isBlank(token)){
token=request.getParameter("token");
}
if(StrUtil.isBlank(token)){
throw new CustomException("请登录账号后在访问");
}
String adminId;
Admin admin;
try{
adminId= JWT.decode(token).getAudience().get(0);
admin=adminService.findById(Integer.parseInt(adminId));
}catch (Exception e){
String ErrMsg="token验证失败,请重新登录";
log.error(ErrMsg+"token="+token,e);
throw new CustomException(ErrMsg);
}
if(admin==null){
throw new CustomException("用户不存在,请重新登录");
}
try{
JWTVerifier jwtVerifier=JWT.require(Algorithm.HMAC256(admin.getPassword())).build();
jwtVerifier.verify(token);
}catch (JWTVerificationException e){
throw new CustomException("token验证失败,请重新登录");
}
return true;
}
}
如果我需要多添加一个实体user进行jwt鉴权该如何修改代码