函式功能
部署描述符中的security-constraint元素允許不通過編程就可以限制對某個資源的訪問。
函式示例
<!ELEMENT security-constraint (display-name?,
web-resource-collection+,
auth-constraint?, user-data-constraint?)>
<!ELEMENT display-name (#PCDATA)>
<!ELEMENT web-resource-collection (web-resource-name, description?,
url-pattern*, http-method*)>
<!ELEMENT auth-constraint (description?, role-name*)>
<!ELEMENT user-data-constraint (description?, transport-guarantee)>
(1) web-resource-collection元素
web-resource-collection元素標識需要限制訪問的資源子集。在web-resource-collection元素中,可以定義URL模式和HTTP方法。如果不存在HTTP方法,就將安全約束套用於所有的方法。
<!ELEMENT web-resource-collection (web-resource-name, description?,
url-pattern*, http-method*)>
<!ELEMENT web-resource-name (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT url-pattern (#PCDATA)>
<!ELEMENT http-method (#PCDATA)>
web-resource-name是與受保護資源相關聯的名稱。http-method元素可被賦予一個HTTP方法,比如GET和POST。
(2) auth-constraint元素
auth-constraint元素用於指定可以訪問該資源集合的用戶角色。如果沒有指定auth-constraint元素,就將安全約束套用於所有角色。
<!ELEMENT auth-constraint (description?, role-name*)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT role-name (#PCDATA)>
role-name元素包含安全角色的名稱。
(3) user-data-constraint元素
user-data-constraint元素用來顯示怎樣保護在客戶端和Web容器之間傳遞的數據。
<!ELEMENT user-data-constraint (description?, transport-guarantee)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT transport-guarantee (#PCDATA)>
transport-guarantee元素必須具有如下的某個值:
● NONE,這意味著套用不需要傳輸保證。
● INTEGRAL,意味著伺服器和客戶端之間的數據必須以某種方式傳送,而且在傳送中不能改變。
● CONFIDENTIAL,這意味著傳輸的數據必須是加密的數據。
在大多數情況下,安全套接字層(SSL)用於INTEGRAL或CONFIDENTIAL。