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功能認證的,就允許訪問 |