访问受保护的spring启动资源时找不到失败

nkhmeac6  于 2021-09-30  发布在  Java
关注(0)|答案(1)|浏览(303)

我有一个小型的TestSpring启动应用程序,其中包括一个包含简单服务的控制器。该服务只是一个测试服务,它使浏览器显示一些html,如下所示:

  1. @RestController
  2. public class TestController
  3. {
  4. @GetMapping("/testserv")
  5. public String getUserInformation()
  6. {
  7. return("<p>User authenticated!</p>");
  8. }
  9. }

我还有一个配置类,它要求用户进行身份验证才能访问服务。其目的是使应用程序中的所有其他服务无需登录即可访问,而访问/testserv需要登录:

  1. @Configuration
  2. @EnableWebSecurity
  3. public class TestSecure extends WebSecurityConfigurerAdapter
  4. {
  5. @Override
  6. protected void configure(HttpSecurity httpSecure) throws Exception
  7. {
  8. httpSecure.authorizeRequests()
  9. .antMatchers("/testserv").authenticated()
  10. .anyRequest().permitAll();
  11. }
  12. }

如果我在没有testsecure类的情况下运行应用程序,我可以毫无问题地访问/testserv服务。然而,当我放入testsecure类时,我在尝试访问该服务时遇到404个not found失败。
我做了更多的测试。我发现导致未找到故障的原因似乎是:

  1. .antMatchers("/testserv").authenticated()

如果我注解掉那一行,我就可以访问/testserv。有了这一行,应用程序突然找不到/testserv服务,并生成404notfound故障。
我相信我已经做了一切必要的工作,以使这项工作,但也许我错过了什么?有人能告诉我为什么使用antmatchers()会导致找不到服务吗?我如何才能正确访问此服务?

mepcadol

mepcadol1#

问题是你失踪了 @RequestMapping 对于控制器。我认为只要添加注解就可以让代码正常工作。
根据您还应使用的op注解进行更新 .formLogin() 以显示登录表单

相关问题