我已经启动了一个spring boot应用程序。我添加了一个这样的休息控制器
@RestController
public class EmailController {
@RequestMapping(value = "/2", method = RequestMethod.GET)
public int getNumber() {
return 2;
}
}
当我调用网址http://localhost:8080/2时,我收到401异常。
{"timestamp":1498409208660,"status":401,"error":
"Unauthorized","message":"Full authentication is
required to access this resource", "path":"/2"}
我绝对没有任何安全保障。这是一个干净的春季启动项目!我为什么收到未经授权的例外。
答案 0 :(得分:0)
您未配置身份验证(表单登录,HTTP Basic,...),因此使用了默认的AuthenticationEntryPoint,请参阅Spring Security API here:
设置要使用的AuthenticationEntryPoint。
如果未指定authenticationEntryPoint(AuthenticationEntryPoint),则将使用defaultAuthenticationEntryPointFor(AuthenticationEntryPoint,RequestMatcher)。将使用第一个AuthenticationEntryPoint作为默认值,未找到匹配项。
如果未提供,则默认为Http403ForbiddenEntryPoint。 您可以将AuthenticationEntryPoint设置为@ksokol写入或配置身份验证,该身份验证定义AuthenticationEntryPoint。
答案 1 :(得分:0)
寻找解决方案的人。我把它添加到我的application.yml
security:
ignored: /**
答案 2 :(得分:0)
在主类中添加@EnableWebSecurity批注,它将忽略访问该应用程序的默认安全性。
示例代码如下:
@EnableWebSecurity
@SpringBootApplication
public class SampleApplication {
SampleApplication (){}
public static void main(String[] args) {
SpringApplication.run(SampleApplication .class, args);
}
答案 3 :(得分:0)
检查pom.xml
文件中是否不包含依赖项spring-boot-starter-security
。