成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

acegi到Spring security的轉換方式

開發 后端
本文主要介紹了如果把之前建立在acegi基礎上的spring應用轉換到spring security 2.0上。

以前叫做spring的acegi安全框架,現在重新標識為spring security 2.0,它實現了簡易配置的承諾,提高了開發者的生產力。它已經是java平臺上應用最廣的安全框架了,在sourceforge上擁有250,000的下載量,Spring Security 2.0又提供了一系列的新功能。

Spring Security是什么

Spring Security是目前用于替換acegi的框架,它提供了一系列新的功能。
◆大為簡化了配置
◆繼承OpenID,標準單點登錄
◆支持windows NTLM,在windows合作網絡上實現單點登錄
◆支持JSR 250("EJB 3")的安全注解
◆支持AspectJ切點表達式語言
◆全面支持REST Web請求授權
◆長期要求的支持組,層級角色和用戶管理API
◆提升了功能,使用后臺數據庫的remember-me實現
◆通過spring webflow 2.0對web狀態和流轉授權進行新的支持
◆通過Spring Web Services 1.5加強對WSS(原來的WS-Security)的支持
◆整個更多的……

目標

目前,我工作在一個spring的web應用上,使用acegi控制對資源的訪問權限。用戶信息保存在數據庫中,我們配置acegi使用了基于JDBC的UserDetails服務。同樣的,我們所有的web資源都保存在數據庫里,acegi配置成使用自定義的 AbstractFilterInvocationDefinitionSource,對每個請求檢測授權細節。

隨著Spring Security 2.0的發布,我想看看是不是可以替換acegi,但還要保持當前的功能,使用數據庫作為我們驗證和授權的數據源,而不是xml配置文件(大多數演示程序里使用的都是xml)。

這里是我采取的步驟……


步驟


1.第一步(也是最重要的)是下載新的Spring Security 2.0框架,并確保jar文件放到正確的位置(/WEB-INF/lib/)。
Spring Security 2.0下載包里包含22個jar文件。我不需要把它們全用上(尤其是那些sources包)。在這次練習中我僅僅包含了以下幾個:
◆spring-security-acl-2.0.0.jar
◆spring-security-core-2.0.0.jar
◆spring-security-core-tiger-2.0.0.jar
◆spring-security-taglibs-2.0.0.jar


2.在web.xml文件里配置一個DelegatingFilterProxy


3.Spring Security 2.0的配置比acegi簡單太多了,所以我沒有在以前acegi配置文件的基礎上進行修改,我發現從一個空白文件開始更簡單。如果你想修改你以前的配置文件,我確定你刪除的行數比添加的行數還要多。配置文件的第一部分是指定安全資源過濾器的細節,這讓安全資源可以通過數據庫讀取,而不是在配置文件里保存信息。這里是一個你將在大多數例子中看到的代碼。
使用這些內容進行替換:
這段配置的主要部分secureResourceFilter,這是一個實現了FilterInvocationDefinitionSource 的類,它在Spring Security需要對請求頁面檢測權限的時候調用。這里是MySecureResouceFilter的代碼:
getAttributes()方法返回權限的名稱(我稱之為角色),它們控制當前url的訪問權限。


4.好了,現在我們需要安裝信息數據庫,下一步是讓Spring Security從數據庫中讀取用戶信息。這個Spring Security 2.0的例子告訴你如何從下面這樣的配置文件里獲得用戶和權限的列表:

你可以把這些例子的配置替換掉,這樣你可以像這樣從數據庫中直接讀取用戶信息:

這里有一種非常快速容易的方法來配置安全數據庫,意思是你需要使用默認的數據庫表結構。默認情況下,<jdbc-user- service>需要下面的幾個表:user,authorities,groups,group_members和 group_authorities。

我的情況下,我的安全數據庫表無法這樣工作,它和<jdbc-user-service>要求的不同,所以我需要修改<authentication-provider>:

通過添加users-by-username-query和authorities-by-username-query屬性,你可以使用你自己的 SQL覆蓋默認的SQL語句。就像在acegi中一樣,你必須確保你的SQL語句返回的列與Spring Security所期待的一樣。這里有另一個group-authorities-by-username-query屬性,我在這里沒有用到,所以也沒有出現在這里例子中,不過它的用法與其他兩個SQl語句的方法完全一致。

<jdbc-user-service>的這些功能大概是在上個月才加入的,在Spring Security之前版本中是無法使用的。幸運的是它已經被加入到Spring Security中了,這讓我們的工作更加簡單。你可以通過 這里 和這里 獲取信息。

dataSource bean中指示的是鏈接數據庫的信息,它沒有包含在我的配置文件中,因為它并不只用在安全中。這里是一個dataSource的例子,如果誰不熟悉可以參考一下:


5.這就是Spring Security的所有配置文件。我最后一項任務是修改以前的登陸頁面。在acegi中你可以創建自己的登陸<form>,向正確的URL發送正確命名的HTML輸入元素。現在你也可以在Spring Security 2.0里這樣做,只是一些名稱發生了改變。你可以像以前一樣使用用戶名j_username和密碼j_password。

但是你必須把<form>中的action指向j_spring_security_check而不是j_acegi_security_check。

在你的應用中有一些地方,用戶可以進行注銷,這是一個鏈接把注銷請求發送給安全框架,這樣它就可以進行相應的處理。需要把它從j_acegi_logout改成j_spring_security_logout。

總結

這個簡短的指南,包含了如何配置Spring Security 2.0使用數據庫中的資源,它并沒有演示Spring Security 2.0中的新特性,然而我想它可以演示一些非常常用的框架功能,我希望你們覺得它有用。

Spring Security 2.0與acegi相比的好處之一是配置文件非常簡單,這在我比較老acegi配置文件(172行)和新配置文件(42行)的時候,清楚的顯示出路愛。

這里是我完整的securityContext.xml文件:

就像在第一步時提到到,下載Spring Security是最重要的步驟。從那里開始就可以一帆風順了。

【編輯推薦】

  1. Spring IDE的2.0版的未來計劃
  2. Eclipse下spring配置的應用
  3. 在Spring中裝配bean的基本xml配置
  4. 用Spring framework實現定時器功能
  5. 簡單介紹Spring Timer
責任編輯:佚名 來源: 網易博客
相關推薦

2020-06-17 08:31:10

權限控制Spring Secu

2021-07-27 10:49:10

SpringSecurity權限

2009-06-19 09:52:46

Acegi安全框架Spring框架

2021-04-23 07:33:10

SpringSecurity單元

2021-08-29 18:36:57

項目

2023-04-10 11:41:15

2013-04-07 09:57:45

CouchbaseMySQLNoSQL

2022-01-26 00:05:00

接口Spring管理器

2022-05-19 11:29:14

計時攻擊SpringSecurity

2022-11-26 00:00:02

2023-12-08 12:12:21

2022-08-30 08:50:07

Spring權限控制

2009-06-22 16:19:40

Acegi安全系統JSF

2022-08-15 08:42:46

權限控制Spring

2022-08-30 08:36:13

Spring權限控制

2022-08-30 08:55:49

Spring權限控制

2022-08-30 08:43:11

Spring權限控制

2022-08-15 08:45:21

Spring權限控制

2022-06-16 10:38:24

URL權限源代碼

2009-06-29 14:19:50

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人免费大片黄在线播放 | 久久久久久久国产精品影院 | 99精品视频在线观看 | 午夜在线精品偷拍 | 97精品久久 | 国产精品久久久久久中文字 | 91麻豆精品国产91久久久久久 | 久久久久国产精品人 | 亚洲精美视频 | 欧美综合一区二区三区 | 台湾佬成人网 | 国产高清在线观看 | 成人网视频 | 国产精品久久久久久久久久久久久久 | av色站| 久久精品国产一区 | 久久综合狠狠综合久久综合88 | 国产美女自拍视频 | 精品不卡 | 毛片入口 | 精品一区电影 | 精品久久久久久久久久久久 | 久久久久久成人 | 精品一区二区三区av | 久久婷婷av | 国产精品a一区二区三区网址 | 精品欧美乱码久久久久久 | 91九色在线观看 | 国产黄色av网站 | 成人在线视频一区二区三区 | 欧美 日韩 国产 一区 | 久久久久久国产 | 亚洲精选一区 | 国产性网 | 欧美性生活一区二区三区 | 欧美激情国产精品 | 久久中文字幕一区 | 一区二区三区亚洲 | 成人免费网站 | 亚洲精品99999 | 国产精品久久久久久久久久了 |