luoqiren / springsecurity4.x

springsecurity4.x
0 stars 0 forks source link

Ant Parttern语法 #3

Open luoqiren opened 7 years ago

luoqiren commented 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或者更多的目录,包含"/"

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 文件

luoqiren commented 7 years ago

参考 http://www.tianshouzhi.com/api/tutorials/spring_security_4/293