在我的应用程序中,我想允许未经身份验证的API很少。因此,我在allowall()中添加了该模式。但这仅在那些模式在@RestController批注内时才有效。如果这些模式在@Controller批注中(我想返回视图),即使它们位于allowall()下,Spring也会要求进行身份验证。

WebsecutiryConfig类

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable().
        .authorizeRequests().antMatchers("/pattern1", "/pattern2").permitAll()
        .anyRequest().authenticated()
}


具有@RestController批注的类

@RestController
public class RESTClass {

    @GetMapping("/pattern1")
    public String hello() {
        return "my response";
    }


具有@Controller注释的类

@Controller
public class ControllerClass {

    @GetMapping("/pattern2")
    public String hello(Model model) {
        return "my view";
    }


java - Spring Security allowall()适用于@RestController但不适用于@Controller-LMLPHP

java - Spring Security allowall()适用于@RestController但不适用于@Controller-LMLPHP
那么,如何允许用户无需身份验证即可查看那些视图?

最佳答案

所以我想通了。发生的事情是,spring允许未经身份验证加载视图文件,但不允许加载相关的css和js文件。因此,我不得不将它们添加到allowall()模式中。

10-06 09:24