私はアプリケーションでspring:bootというjwt認証を使用しています。すべて順調。有効なトークンがヘッダーにある場合、それは検証されており、応答は正常に送信されています。SpringセキュリティのJWT Authendication Filterからのリダイレクト
しかし、無効なリクエストをログインページにリダイレクトする方法とログインが成功した後に、リクエストされた最初のページにリダイレクトする方法。ここで
は私のauthendicationフィルタ@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
String authToken = httpRequest.getHeader(this.tokenHeader);
// authToken.startsWith("Bearer ")
// String authToken = header.substring(7);
String username = jwtTokenUtil.getUsernameFromToken(authToken);
System.out.println("Token is " + authToken);
System.out.println("Username is " + username);
System.out.println("Audience is from " + jwtTokenUtil.getAudienceFromToken(authToken));
if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) {
UserDetails userDetails = this.userDetailsService.loadUserByUsername(username);
System.out.println(userDetails.getAuthorities());
if (jwtTokenUtil.validateToken(authToken, userDetails)) {
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
userDetails, null, userDetails.getAuthorities());
authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(httpRequest));
SecurityContextHolder.getContext().setAuthentication(authentication);
} else {
System.out.println("Token is invalid ");
}
}
chain.doFilter(request, response);
}
}