Spring Security模块
| 模块 | 描述 |
|---|---|
| ACL | 支持通过访问控制列表(access control list, ACL)为域对象提供安全性 |
| Aspects | 使用Spring Security注解时,会使用基于AspectJ的切面,而不是使用标准的Spring AOP |
| CAS Client | 提供与Jasig的中心认证服务(Central Authentication Service)进行集成的功能 |
| Configuration | 包含通过XML和Java配置Spring Security的功能支持 |
| Core | 提供Spring Security的基本库 |
| Cryptography | 提供加密和密码编码功能 |
| LDAP | 支持基于LDAP进行验证 |
| OpenID | 支持试用OpenID进行集中式认证 |
| Remoting | 提供对Spring Remoting的支持 |
| Tag Library | Spring Security的JSP标签库 |
| Web | 提供Spring Security基于Filter的Web安全性支持 |
@EnableWebSecurity:启用web安全性
@EnableWebMvcSecurity:使用SpringMVC开发时可替代@EnableWebSecurity。
@EnableWebMvcSecurity还配置了一个SpringMVC参数解析器(argument Resolver),使处理器方法可通过带有@AuthenticationPrincipa注解的参数获得认证用户的principal/username。
重载WebSecurityConfigurerAdapter的configure方法
| 方法 | 描述 |
|---|---|
| configure(WebSecurity) | 配置Spring Security的Filter链 |
| configure(HttpSecurity) | 配置如何通过拦截器保护请求 |
| configure(AuthenticationManagerBuilder) | 配置user-detail服务 |
配置用户详细信息的方法
| 方法 | 描述 |
|---|---|
| accountexpired(boolean) | 定义账号是否已经过期 |
| accountLocked(boolean) | 定义账号是否已经锁定 |
| and() | 用来连接配置 |
| authorities(GrantedAuthority...) | 授予某个用户一项或多项权限 |
| authorities(List<? extends GrantedAuthority>) | 授予某个用户一项或多项权限 |
| authorities(String...) | 授予某个用户一项或多项权限 |
| credentialsExpired(boolean) | 定义凭证是否过期 |
| disabled(boolean) | 定义账号是否被禁用 |
| password(String) | 定义用户密码 |
| roles(String...) | 授予某个用户一项或多项角色 |
定义如何保护路径的配置方法
| 方法 | 描述 |
|---|---|
| access(String) | 如果给定的SpEL表达式计算结果为true,就允许访问 |
| anonymous() | 允许匿名用户访问 |
| authenticated() | 允许认证过的用户访问 |
| denyAll() | 无条件拒绝所有访问 |
| fullyAuthenticated() | 如果用户是完整认证的话(不是通过remember-me功能认证的),就允许访问 |
| hasAnyAuthority(String...) | 如果用户具备给定权限中的某一个,就允许访问 |
| hasAnyRole(String...) | 如果用户具备给定角色中的某一个,就允许访问 |
| hasAuthority(String) | 如果用户具备给定权限,就允许访问 |
| hasIpAddress(String) | 如果请求来自给定IP地址,就允许访问 |
| hasRole(String) | 如果用户具备给定角色,就允许访问 |
| not() | 对其他访问方法结果求反 |
| permitAll() | 无条件允许访问 |
| rememberMe() | 如果用户是通过Remember-me功能认证的,就允许访问 |