为什么Spring座控制器在未设置安全性的情况下未经授权返回

fcg9iug3  于 2023-02-03  发布在  Spring
关注(0)|答案(5)|浏览(95)

我已经启动了一个Spring Boot 应用程序。我添加了一个像这样的休息控制器

@RestController
public class EmailController {

    @RequestMapping(value = "/2", method = RequestMethod.GET)
    public int getNumber() {
        return 2;
    }
}

当我调用url http://localhost:8080/2时,我得到一个401异常。

{"timestamp":1498409208660,"status":401,"error": 
 "Unauthorized","message":"Full authentication is 
 required to access this resource", "path":"/2"}

我绝对没有安全设置,什么都没有。这是一个干净的Spring Boot 项目!为什么我收到一个未经授权的异常。

7cjasjjr

7cjasjjr1#

您未配置任何身份验证(表单登录、HTTP基本等),因此使用默认的AuthenticationEntryPoint,请参阅此处的Spring Security API:
设置要使用的身份验证入口点。
如果未指定authenticationEntryPoint(AuthenticationEntryPoint),则将使用defaultAuthenticationEntryPointFor(AuthenticationEntryPoint,RequestMatcher)。如果未找到匹配项,则将使用第一个AuthenticationEntryPoint作为默认值。
如果未提供,则默认值为Http 403 ForbiddenEntryPoint。您可以将AuthenticationEntryPoint设置为@ksokol编写的值或配置身份验证,这将定义AuthenticationEntryPoint。

bpzcxfmw

bpzcxfmw2#

在主类中添加@EnableWebSecurity注解,它将忽略默认安全性来访问该应用程序。
示例代码如下:

@EnableWebSecurity
    @SpringBootApplication

    public class SampleApplication {
        SampleApplication (){}
        public static void main(String[] args) {
            SpringApplication.run(SampleApplication .class, args);
        }
vnzz0bqm

vnzz0bqm3#

对于寻找解决方案的人。我把这个添加到了我的application.yml中

security: 
  ignored: /**
yjghlzjz

yjghlzjz4#

检查pom.xml文件中是否不包含依赖项spring-boot-starter-security

gwo2fgha

gwo2fgha5#

因为您将Spring Security Dependency添加到了项目中,但没有对其进行配置。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

相关问题