Web開發框架中的架構模式比較(五) (轉)

worldblog發表於2007-12-14
Web開發框架中的架構模式比較(五) (轉)[@more@]

身份確認Authentication 和授權Authorization

當使用者訪問web上的受到保護的資源時,通常要經過兩個步驟。(從文件摘錄)

1.使用者身份確認Authentication

確保使用者不是假冒的。應用獲取使用者的憑據(各種形式的標識,如使用者名稱和密碼)並透過某些授權機構驗證那些憑據。如果這些憑據有效,則提交這些憑據的實體被視為經過身份驗證的標識。

2.授權Authorization

透過對已驗證身份授予或拒絕特定來限制訪問許可權。

:namespace prefix = o ns = "urn:schemas--com::office" />

.Net和 web框架的資源保護策略都遵循這樣的模型:對應於被保護的資源,定義一組角色,使用者,和允許的操作。操作在java web框架中稱為http-method,在中稱為Verb,都表示HTTP GET,HTTP POST等HTTP方法。

根據2.4規範,java web框架的網頁的login form應該按照下例書寫。注意,form的action屬性的值應該為j_security_check。

的伺服器端web.config例子。(節錄)

下面的例子從.Net框架文件中摘錄出來。

 

  loginurl="/login."

  decryptionkey="1!#$$*13^">

 

 

 

 

 


 


 




 


 


 



框架的伺服器端配置檔案web.xml例子。

下例從servlet2.4規範中摘錄。其中的< security-role >和< security-constraint >部分中定義了受保護資源對應的角色,使用者,和允許的操作。

xmlns:xsi=""

xsi:schemaLocation="j2ee http://

java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version=”2.4”>

A Secure Application

catalog

com.mycorp.CatalogServlet

catalog

MGR

<!-- role name used in code --&gt

manager

manager

catalog

/catalog/*

SalesInfo

/salesinfo/*

GET

POST

manager

CONFNTIAL

P Web Service

.Net框架和 Axis專案都提供了Web Service的SOAP實現。採用的基本如下。

透過XML序列化實現SOAP XML資料到應用程式的繫結;XML序列化(和反序列化)發生在服務端和客戶段;XML資料和應用程式物件的對映規則為,Object對映為一個XML元素,Object的“屬性”(property)成員對映為該XML元素的子元素。

Java和 都支援Reflection機制,能夠在執行時判斷Object的型別。但有些細微的差別:Java物件的“屬性”(property)並不是一種型別,而是一種符合getXXX,setXXX形式的約定;C#物件的“屬性”(property)是在類內部宣告的一種型別;還有,C#支援Attribute,比如,[SoapElement]、[XmlElement]、[WebMethod]、[SoapRpcMethod]等屬性。所以,C#物件的XML序列化定義更加嚴格一些。

另外,兩種語言的集合類也有差別,對於某些特殊的集合類,如hashtable,會有不相容的情況,所以,最好傳送陣列型別,以保證不同語言開發的SOAP Web Service能夠相互使用。

SOAP支援幾種陣列型別,其中有兩種陣列型別 —— 多維陣列和複合陣列,這裡說明一下。多維陣列是指如 3 * 4 之類的3行4列的整齊陣列,C# 語言支援這種多維陣列,java語言不支援這種多維陣列;複合陣列是指陣列的陣列,即陣列的元素也可以是屬組,C# 語言和java語言都支援這種複合陣列。不過,複合陣列也可以用來表示多維陣列,比如複合陣列的元素個數為3,元素型別為大小為4的陣列,就可以用來表示3 * 4 之類的3行4列的整齊陣列。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993464/,如需轉載,請註明出處,否則將追究法律責任。

相關文章