我正在尝试通过手动添加所有依赖项等方式将 spring 安全性添加到自定义 Java 项目中。到目前为止,我已经成功了,但是我(认为我)的 WebSecurityConfigurerAdapter 有问题:
@Override
protected void configure(HttpSecurity http) throws Exception{
http.authorizeRequests()
.antMatchers("/index.html").hasAnyRole("USER", "ADMIN")
.and()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.NEVER)
.and()
.formLogin()
.loginPage("/sign-in")
.permitAll();
}
如上所述限制 index.html 时,用户在输入应用程序 base-URL 时需要立即登录(例如 localhost:8080/myapp/)。但是,如果我将 antMatcher 更改为:
...
http.authorizeRequests()
.antMatchers("/test**").hasAnyRole("USER", "ADMIN")
.and()
...
我无需登录即可点击应用程序基本 URL。值得一提的是 index.html 和 test.html 完全相同(它们只包含一个 h1-tag),并且都位于生成的 .war 文件的根目录中: 在此处输入图片描述
如何配置应用程序,以便用户在输入基本 URL 时不必登录,而仅在请求 index.html 时(例如 localhost:8080/myapp/index.html)?
提前致谢
编辑:我的应用程序在 localhost:8080/myapp/ 有一个端点,如下所示:
@GetMapping("/")
public String home() {
return ("<h1>Welcome</h1>");
}
这个想法是用户应该能够在无需进行身份验证的情况下访问它。