configuer方法讲解
// WebSecurityConfigurerAdapter默认设定访问权限和登录方式
protected void configure(HttpSecurity http) throws Exception {
logger.debug (”Using default configure(HttpSecurity).
+ "If subclassed thwill potentially"
+"overrdesubclass configure (HttpSecuri ty) ");
//只需要通过验证就可以防问所有的请求
//authorizeRequests方法限定只对签名成功的用户请求
//anyRequest方法限定所有请求
//authenticated方法对所有签名成功的用户允许方法
http.authorizeRequests().anyRequest () .
authenticated()
//and方法是连接词formLog代表使用Spring Security默认的登录界面
. and().formLogin ()
// httpBasic方法说明启用HTTP基础认证
.and().httpBasic() ;
}
源码可出,只需要通过用户认证便可以问所求地址。它还通过formLogin方法配置了使用Spring Security的默认登录页面和httpBasic方法启用浏览器的HTTP基础认证方式。所以在默认的情况,只要登录了用户,一切的请求就会畅通。
方法 | 含义 |
---|---|
access( String) | 参数为EL,如果返回为true则允许访问 |
anonymous() | 允许匿名访问 |
authorizeRequests() | 限定通过签名的请求 |
any Request() | 限定任意的请求 |
hasAnyRole(String … ) | 将访问权限赋予多个角色(角色会自动加入前缀“ROLE) |
hasRole(String) | 将访问权限赋予个角色(角色会自动加入前缀“ROLE”) |
permitAll() | 无条件允许访问 |
and() | 连接词,并取消之前限定前提规则 |
httpBasic() | 启用浏览器的HTTP基础验证 |
fromLogin() | 启用spring Security默认的登录页面 |
not() | 对其他方法的访问采取求反 |
fullyAuthenticated() | 如果是完整验证(并非Remember-me),则允许访问 |
denyAll() | 无条件不允许任何访问 |
hasIpAddress(String) | 如果是给定的IP地址则允许访问 |
remberme() | 用户通过Remember-me功能验证就允许访问 |
hasAuthority(String) | 如果是给定的角色就允许访问(不加入前缀“ROLE_") |
hasAnyAuthority(String … ) | 如果是给定的角色中的任意一个就允许访(不加入前缀“ROLE_”) |
上述的方法你就可以给予请求的地址一定权限保护了,有时候需要注意的一点是,对于这里的配置,会采取先配置优先的原则,因为有些时候权限会产生冲突。例如,代码若第二段是允许匿名的访问,而且没有给出地址但是,因为第一段中加入了限制,所以基于先配优先的原则,Spring Security还是会采用第一段的限制访问的。因此,在实际的工作中,把具体的配置放到前面配置,把不具体的配置放到后面配置。