Spring Security模塊
| 模塊 | 描述 |
|---|---|
| ACL | 支持通過訪問控制列表(access control list, ACL)為域?qū)ο筇峁┌踩?/td> |
| Aspects | 使用Spring Security注解時,會使用基于AspectJ的切面,而不是使用標準的Spring AOP |
| CAS Client | 提供與Jasig的中心認證服務(wù)(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開發(fā)時可替代@EnableWebSecurity。
@EnableWebMvcSecurity還配置了一個SpringMVC參數(shù)解析器(argument Resolver),使處理器方法可通過帶有@AuthenticationPrincipa注解的參數(shù)獲得認證用戶的principal/username。
重載WebSecurityConfigurerAdapter的configure方法
| 方法 | 描述 |
|---|---|
| configure(WebSecurity) | 配置Spring Security的Filter鏈 |
| configure(HttpSecurity) | 配置如何通過攔截器保護請求 |
| configure(AuthenticationManagerBuilder) | 配置user-detail服務(wù) |
配置用戶詳細信息的方法
| 方法 | 描述 |
|---|---|
| accountexpired(boolean) | 定義賬號是否已經(jīng)過期 |
| accountLocked(boolean) | 定義賬號是否已經(jīng)鎖定 |
| and() | 用來連接配置 |
| authorities(GrantedAuthority...) | 授予某個用戶一項或多項權(quán)限 |
| authorities(List<? extends GrantedAuthority>) | 授予某個用戶一項或多項權(quán)限 |
| authorities(String...) | 授予某個用戶一項或多項權(quán)限 |
| credentialsExpired(boolean) | 定義憑證是否過期 |
| disabled(boolean) | 定義賬號是否被禁用 |
| password(String) | 定義用戶密碼 |
| roles(String...) | 授予某個用戶一項或多項角色 |
定義如何保護路徑的配置方法
| 方法 | 描述 |
|---|---|
| access(String) | 如果給定的SpEL表達式計算結(jié)果為true,就允許訪問 |
| anonymous() | 允許匿名用戶訪問 |
| authenticated() | 允許認證過的用戶訪問 |
| denyAll() | 無條件拒絕所有訪問 |
| fullyAuthenticated() | 如果用戶是完整認證的話(不是通過remember-me功能認證的),就允許訪問 |
| hasAnyAuthority(String...) | 如果用戶具備給定權(quán)限中的某一個,就允許訪問 |
| hasAnyRole(String...) | 如果用戶具備給定角色中的某一個,就允許訪問 |
| hasAuthority(String) | 如果用戶具備給定權(quán)限,就允許訪問 |
| hasIpAddress(String) | 如果請求來自給定IP地址,就允許訪問 |
| hasRole(String) | 如果用戶具備給定角色,就允許訪問 |
| not() | 對其他訪問方法結(jié)果求反 |
| permitAll() | 無條件允許訪問 |
| rememberMe() | 如果用戶是通過Remember-me功能認證的,就允許訪問 |