Spring Auth 入口点不重写抽象的开始方法

问题描述 投票:0回答:1

我正在 Spring 服务器中实现 JWT 身份验证,但在尝试定义 JWT 令牌检查的入口点时遇到错误:

下面是我的代码,在我看来,我的方法正确地覆盖了

AuthenticationEntryPoint.commence()

package letterbookd.server.security;

import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.stereotype.Component;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@Component
public class JwtAuthEntryPoint implements AuthenticationEntryPoint {
    @Override
    public void commence(
            HttpServletRequest request, 
            HttpServletResponse response, 
            AuthenticationException authException) throws IOException, ServletException {
        response.sendError(HttpServletResponse.SC_UNAUTHORIZED, authException.getMessage());
            }
}

任何有关如何解决此问题的想法将不胜感激!

java spring spring-boot security jwt
1个回答
0
投票

讽刺的是,我在发帖后基本上立即找到了问题的答案🙈

原来我的 spring AuthenticationEntryPoint 版本使用 jakarta 而不是 javax (https://docs.spring.io/spring-security/site/docs/current/api/org/springframework/security/web/AuthenticationEntryPoint.html) .

这段代码似乎解决了我所有的问题:


package letterbookd.server.security;

import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.stereotype.Component;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;

@Component
public class JwtAuthEntryPoint implements AuthenticationEntryPoint {
    @Override
    public void commence(
            HttpServletRequest request, 
            HttpServletResponse response, 
            AuthenticationException authException) throws IOException, ServletException {
        response.sendError(HttpServletResponse.SC_UNAUTHORIZED, authException.getMessage());
            }
}

© www.soinside.com 2019 - 2024. All rights reserved.