Open luoqiren opened 7 years ago
在请求授权(Authorize Requests)的配置中, 例如:
`protected void configure(HttpSecurity http ) throws Exception {` ` http` `.authorizeRequests() 1 ` `.antMatchers( "/resources/**", "/signup" , "/about").permitAll() 2` ` .antMatchers( "/admin/**").hasRole("ADMIN" ) 3 ` ` .antMatchers( "/db/**").access("hasRole('ADMIN') and hasRole('DBA')") 4` `.anyRequest().authenticated() 5` `.and()` ` // ...` ` .formLogin();` ` }`
1、http.authorizeRequests()方法有很多子方法,每个子匹配器将会按照声明的顺序起作用。 2、指定用户可以访问的多个url模式。特别的,任何用户可以访问以"/resources"开头的url资源,或者等于"/signup"或about 3、任何以"/admin"开头的请求限制用户具有 "ROLEADMIN"角色。你可能已经注意的,尽管我们调用的hasRole方法,但是不用传入"ROLE"前缀 4、任何以"/db"开头的请求同时要求用户具有"ROLE_ADMIN"和"ROLE_DBA"角色。 5、任何没有匹配上的其他的url请求,只需要用户被验证。
antMatcher使用的是ant风格的路径匹配模式。 Ant风格路径匹配的通配符,Apache Ant样式的路径有三种通配符匹配方法: Wildcard Description ? 匹配任何单字符 * 匹配0或者任意数量的字符,不包含"/“ ** 匹配0或者更多的目录,包含"/"
Wildcard Description
?
匹配任何单字符
*
匹配0或者任意数量的字符,不包含"/“
**
匹配0或者更多的目录,包含"/"
ANT风格路径匹配案例 Path Description /app/*.x 匹配(Matches)所有在app路径下的.x文件 /app/p?ttern 匹配(Matches) /app/pattern 和 /app/pXttern,但是不包括/app/pttern /**/example 匹配(Matches) /app/example, /app/foo/example, 和 /example /app/**/dir/file. 匹配(Matches) /app/dir/file.jsp, /app/foo/dir/file.html,/app/foo/bar/dir/file.pdf, 和/app/dir/file.java /**/*.jsp 匹配(Matches)任何的.jsp 文件
Path Description
/app/*.x 匹配(Matches)所有在app路径下的.x文件
/app/p?ttern 匹配(Matches) /app/pattern 和 /app/pXttern,但是不包括/app/pttern
/**/example 匹配(Matches) /app/example, /app/foo/example, 和 /example
/app/**/dir/file. 匹配(Matches) /app/dir/file.jsp, /app/foo/dir/file.html,/app/foo/bar/dir/file.pdf, 和/app/dir/file.java
/**/*.jsp 匹配(Matches)任何的.jsp 文件
参考 http://www.tianshouzhi.com/api/tutorials/spring_security_4/293
在请求授权(Authorize Requests)的配置中, 例如:
1、http.authorizeRequests()方法有很多子方法,每个子匹配器将会按照声明的顺序起作用。 2、指定用户可以访问的多个url模式。特别的,任何用户可以访问以"/resources"开头的url资源,或者等于"/signup"或about 3、任何以"/admin"开头的请求限制用户具有 "ROLEADMIN"角色。你可能已经注意的,尽管我们调用的hasRole方法,但是不用传入"ROLE"前缀 4、任何以"/db"开头的请求同时要求用户具有"ROLE_ADMIN"和"ROLE_DBA"角色。 5、任何没有匹配上的其他的url请求,只需要用户被验证。
antMatcher使用的是ant风格的路径匹配模式。 Ant风格路径匹配的通配符,Apache Ant样式的路径有三种通配符匹配方法:
Wildcard Description
?
匹配任何单字符
*
匹配0或者任意数量的字符,不包含"/“
**
匹配0或者更多的目录,包含"/"
ANT风格路径匹配案例
Path Description
/app/*.x 匹配(Matches)所有在app路径下的.x文件
/app/p?ttern 匹配(Matches) /app/pattern 和 /app/pXttern,但是不包括/app/pttern
/**/example 匹配(Matches) /app/example, /app/foo/example, 和 /example
/app/**/dir/file. 匹配(Matches) /app/dir/file.jsp, /app/foo/dir/file.html,/app/foo/bar/dir/file.pdf, 和/app/dir/file.java
/**/*.jsp 匹配(Matches)任何的.jsp 文件