在我的应用程序中,我想允许未经身份验证的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";
}
那么,如何允许用户无需身份验证即可查看那些视图?
最佳答案
所以我想通了。发生的事情是,spring允许未经身份验证加载视图文件,但不允许加载相关的css和js文件。因此,我不得不将它们添加到allowall()模式中。