你好我是java spring的新手,我想登录用户时遇到问题。 我得到了错误:
Servlet.service() for servlet [dispatcherServlet] 在路径上下文中 [] 抛出异常 [Handler dispatch failed;嵌套异常是 java.lang.StackOverflowError] 与根本原因 java.lang.StackOverflowError: 空
非常感谢^^
public class SecurityFilter extends OncePerRequestFilter {
private static final Logger logger = LogManager.getLogger();
/** Injecté par le setter */
private UserService userService;
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
try {
String token = extractTokenFromHeader(request);
UserDetails user = userService.getUserFromJwt(token);
setPrincipalInSecurityContext(user);
} catch (Exception e) {
logger.info("Impossible de trouver le token", e);
}
filterChain.doFilter(request, response);
}
private String extractTokenFromHeader(HttpServletRequest request) {
String bearerToken = request.getHeader("Authorization");
if (bearerToken != null) {
return bearerToken.substring(7);
}
return null;
}
private void setPrincipalInSecurityContext(UserDetails user) {
UsernamePasswordAuthenticationToken token =
new UsernamePasswordAuthenticationToken(user, null, user.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(token);
}
/// Setters ///
@Autowired
public void setUserService(UserService userService) {
this.userService = userService;
}
}