1. 在web.xml文件中加入Filter聲明 <!-- Spring security Filter -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
這個Filter會攔截所有的URL請求,并且對這些URL請求進行Spring Security的驗證。
注意,springSecurityFilterChain這個名稱是由命名空間默認創建的用于處理web安全的一個內部的bean的id。所以你在你的Spring配置文件中,不應該再使用這個id作為你的bean。
與Acegi的配置不同,Acegi需要自行聲明一個Spring的bean來作為Filter的實現,而使用Spring Security后,無需再額外定義bean,而是使用<http>元素進行配置。
通過擴展Spring Security的默認實現來進行用戶和權限的管理 事實上,Spring Security提供了2個認證的接口,分別用于模擬用戶和權限,以及讀取用戶和權限的操作方法。這兩個接口分別是:UserDetails和UserDetailsService。
public interface UserDetails extends Serializable {
GrantedAuthority[] getAuthorities();
String getPassword();
String getUsername();
boolean isAccountNonExpired();
boolean isAccountNonLocked();
boolean isCredentialsNonExpired();
boolean isEnabled();
}
public interface UserDetailsService {
UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException, DataAccessException;
}
非常清楚,一個接口用于模擬用戶,另外一個用于模擬讀取用戶的過程。所以我們可以通過實現這兩個接口,來完成使用數據庫對用戶和權限進行管理的需求。在這里,我將給出一個使用Hibernate來定義用戶和權限之間關系的示例。
posted on 2012-01-20 10:41
RoyPayne 閱讀(1716)
評論(1) 編輯 收藏 所屬分類:
SSH