大佬教程收集整理的这篇文章主要介绍了JWT 拦截器 Springboot,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想让持有 JWT 的人可以访问所有 API,但现在人们只能在 EXCLUDE PATH 上访问。我应该为此设置什么?
这是我的 WebConfig。
DegreeProvIDerID
这是我的拦截器。
private static final String[] EXCLUDE_PATHS = {
"/API/user/**"
};
public voID addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(jwTinterceptor)
.addpathPatterns("/**")
.excludePathPatterns(EXCLUDE_PATHS);
这是我的valIDatetoken fn
public class JwTinterceptor implements handlerinterceptor {
private static final String header_AUTH = "Authorization";
private final JwtTokenProvIDer jwtTokenProvIDer;
@OverrIDe
public Boolean preHandle(httpServletrequest request,httpServletResponse response,Object handler) throws Exception {
final String token = request.getheader(header_AUTH);
if(token !=null && jwtTokenProvIDer.valIDatetoken(token)){
return true;
}else{
throw new UnauthorizedException();
}
这是我的 doFilter
public Boolean valIDatetoken(String jwtToken) {
try {
Jws<Claims> claims = Jwts.parser().setSigningKey(secretKey).parseClaimsJws(jwtToken);
return !claims.getbody().getExpiration().before(new Date());
} catch (Exception E) {
return false;
}
}
这是我的安全配置。
public voID doFilter(Servletrequest request,ServletResponse response,FilterChain chain) throws IOException,servletexception {
String token = jwtTokenProvIDer.resolvetoken((httpServletrequest) request);
if (token != null && jwtTokenProvIDer.valIDatetoken(token)) {
Authentication authentication = jwtTokenProvIDer.getAuthentication(token);
SecurityContextHolder.getContext().setAuthentication(authentication);
}
chain.doFilter(request,responsE);
}
我错过了什么吗?我添加了安全配置。
您应该使用 WebSecurity 而不是拦截器。
类似这样的东西,用于配置哪些路径可以访问,哪些不能
@Override
protected void configure(httpSecurity http) throws Exception {
http.cors().and().authorizerequests()
.antMatchers(httpR_787_11845@ethod.POST,SIGN_UP_URL).permitAll()
.anyrequest().authenticated()
.and()
.addFilter(new JWTAuthenticationFilter(authenticationManager()))
.addFilter(new JWTAuthorizationFilter(authenticationManager()))
// this disables session creation on Spring Security
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}
这个 link 应该对你有帮助。
以上是大佬教程为你收集整理的JWT 拦截器 Springboot全部内容,希望文章能够帮你解决JWT 拦截器 Springboot所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。