我有一个小型的TestSpring启动应用程序,其中包括一个包含简单服务的控制器。该服务只是一个测试服务,它使浏览器显示一些html,如下所示:
@RestController
public class TestController
{
@GetMapping("/testserv")
public String getUserInformation()
{
return("<p>User authenticated!</p>");
}
}
我还有一个配置类,它要求用户进行身份验证才能访问服务。其目的是使应用程序中的所有其他服务无需登录即可访问,而访问/testserv需要登录:
@Configuration
@EnableWebSecurity
public class TestSecure extends WebSecurityConfigurerAdapter
{
@Override
protected void configure(HttpSecurity httpSecure) throws Exception
{
httpSecure.authorizeRequests()
.antMatchers("/testserv").authenticated()
.anyRequest().permitAll();
}
}
如果我在没有testsecure类的情况下运行应用程序,我可以毫无问题地访问/testserv服务。然而,当我放入testsecure类时,我在尝试访问该服务时遇到404个not found失败。
我做了更多的测试。我发现导致未找到故障的原因似乎是:
.antMatchers("/testserv").authenticated()
如果我注解掉那一行,我就可以访问/testserv。有了这一行,应用程序突然找不到/testserv服务,并生成404notfound故障。
我相信我已经做了一切必要的工作,以使这项工作,但也许我错过了什么?有人能告诉我为什么使用antmatchers()会导致找不到服务吗?我如何才能正确访问此服务?
1条答案
按热度按时间mepcadol1#
问题是你失踪了
@RequestMapping
对于控制器。我认为只要添加注解就可以让代码正常工作。根据您还应使用的op注解进行更新
.formLogin()
以显示登录表单