您配置了所有其他URL必须通过身份验证,请参阅Spring Security Reference:
我们的示例仅要求对用户进行身份验证,并且对应用程序中的每个URL都进行了身份验证。我们可以通过向我们的http.authorizeRequests()
方法添加多个子级来为URL指定自定义要求。例如:
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
1 .antMatchers(“/resources/”).hasRole(“ADMIN”) 3 .antMatchers(“/db/**”).access(“hasRole(‘ADMIN’) and hasRole(‘DBA’)”) 4 .anyRequest().authenticated() 5 .and() // … .formLogin(); }
http.authorizeRequests()方法有多个子级,每个匹配器都按声明顺序考虑。
我们指定了任何用户都可以访问的多个URL模式。具体来说,如果URL以“ / resources /”开头,等于“ / signup”或等于“ / about”,则任何用户都可以访问请求。
任何以“ / admin /”开头的URL都将限于角色为“ ROLE_ADMIN”的用户。您将注意到,由于我们正在调用hasRole方法,因此无需指定“ ROLE_”前缀。
任何以“ / db /”开头的URL都要求用户同时具有“ ROLE_ADMIN”和“ ROLE_DBA”。您将注意到,由于我们使用的是hasRole表达式,因此无需指定“ ROLE_”前缀。
任何尚未匹配的URL仅要求对用户进行身份验证