程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Spring security,springsecurity

Spring security,springsecurity

編輯:JAVA綜合教程

Spring security,springsecurity


安全包括兩個主要操作。

  第一個被稱為“認證”,是為用戶建立一個他所聲明的主題。主題一般式指用戶,設備或可以在你系統中執行動作的其他系統。

  第二個叫“授權”,指的是一個用戶能否在你的應用中執行某個操作,在到達授權判斷之前,身份的主題已經由身份驗證過程建立。

 

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>  

 

獲得當前已認證的用戶的名字(obtain the name of the currently authenticated user)
 (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal();

官方案例如下:

Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();

if (principal instanceof UserDetails) {

  String username = ((UserDetails)principal).getUsername();

} else {

  String username = principal.toString();

}

 

訪問受保護的資源

 

使用數據庫對用戶和權限進行管理 

一般來說,我們都有使用數據庫對用戶和權限進行管理的需求,而不會把用戶寫死在配置文件裡。所以,我們接下來就重點討論使用數據庫對用戶和權限進行管理的方法。 

 

通過擴展Spring Security的默認實現來進行用戶和權限的管理 

事實上,Spring Security提供了2個認證的接口,分別用於模擬用戶和權限,以及讀取用戶和權限的操作方法。這兩個接口分別是:UserDetails和UserDetailsService。

Java代碼  



 

Java代碼  



非常清楚,一個接口用於模擬用戶,另外一個用於模擬讀取用戶的過程。所以我們可以通過實現這兩個接口,來完成使用數據庫對用戶和權限進行管理的需求。在這裡,我將給出一個使用Hibernate來定義用戶和權限之間關系的示例。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved