Java for Web學習筆記(一四二)Spring security準備(3)初窺

瞭解Spring Security的基本知識

完全J2EE的web container也能提供完整的安全框架,但tomcat不是。Spring Security可以使用JDBC,或者我們的服務或倉庫來認證用戶,也提供了內置的對微軟Active Derectory,Jasig的CAS(Central Authentication Service),JAAS(Java Authentication and Authorization Service),LDAP和OpenID的認證和授權。使用Spring Security要求客戶端有額外的處理。

  • org.springframework.security.core.Authentication 繼承了Principal。
  • org.springframework.security.core.GrantedAuthority 提供授權。可以支持role和activity授權。如果使用LDAP或者Active Directory進行認證,Spring Security會自動用戶歸屬的directory groups填入Authentication 的授權中。
  • org.springframework.security.authentication.AuthenticationProvider,是爲我們應用提供認證服務的提供者。AuthenticationProvider可以有Active Directory, CAS, JAAS, LDAP, OpenID, JDBC多個實現,也可以自定義。

使用Spring Security的授權服務

在Spring Security中,有集中使用授權的方式。當中最好的可能就是使用全局方法安全標記,它可以標記在service的方法上,Spring Security確保帶有合適的GrantedAuthority(s)的Authentication來執行方法。

還可以在Spring Security配置中定義方法攔截規則。採用標記還是採用xml配置視我們代碼的複雜性,如果應用比較複雜,可能定義方法連接規則比標記更爲簡單,另外,修改規則,不需要重新編譯。

還可以使用URL攔截跪着,這是最容易實現的,但缺點不少,例如我們只能用於web應用,其他的不行;有例如如果我們有多種用戶接口(web,REST,SOAP)我們需要爲每個用戶接口進行定義,這容易造成規則的不一致,從而產生授權漏洞。

一般來講,我們需要使用標記或者配置規則,加上針對login和logout定義一些URL安全規則。我們將在後面學習到。

配置Spring Security

Spring安全配置和Spring框架配置緊密結合,大量使用ApplicationContext來管理它的安全上下文。

設置Spring Security,可以使用XML,Java或者混合配製。在一個應用上下文中可以有多個Spring Security上下文的配置。具體後面學習。

相關鏈接:我的Professional Java for Web Applications相關文章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章