1.security-constraint元素html
部署描述符中的<security-constraint>元素容許不經過編程就能夠限制對某個資源的訪問。web
- <security-constraint>
- <display-name>default</display-name>
- <web-resource-collection>
- <web-resource-name>all files</web-resource-name>
- <url-pattern>/*</url-pattern>
- </web-resource-collection>
- <auth-constraint>
- <role-name>admin</role-name>
- </auth-constraint>
- <user-data-constraint>
- <transport-guarantee>NONE</transport-guarantee>
- </user-data-constraint>
- </security-constraint>
(1) web-resource-collection元素編程
web-resource-collection元素標識須要限制訪問的資源子集。在web-resource-collection元素中,能夠定義URL模式和HTTP方法。若是不存在HTTP方法,就將安全約束應用於全部的方法。安全
web-resource-name是與受保護資源相關聯的名稱。http-method元素可被賦予一個HTTP方法,好比GET和POS。服務器
(2) auth-constraint元素app
auth-constraint元素用於指定能夠訪問該資源集合的用戶角色。若是沒有指定auth-constraint元素,就將安全約束應用於全部角色。jsp
role-name元素包含安全角色的名稱。ide
(3) user-data-constraint元素加密
user-data-constraint元素用來顯示怎樣保護在客戶端和Web容器之間傳遞的數據。url
transport-guarantee元素必須具備以下的某個值:
● NONE,這意味着應用不須要傳輸保證。
● INTEGRAL,意味着服務器和客戶端之間的數據必須以某種方式發送,並且在傳送中不能改變。
● CONFIDENTIAL,這意味着傳輸的數據必須是加密的數據。
在大多數狀況下,安全套接字層(SSL)用於INTEGRAL或CONFIDENTIAL。
2.login-config元素
login-config元素用來指定所使用的驗證方法、領域名和表單驗證機制所需的特性。
<login-config>
<auth-method>FORM</auth-method>
<realm-name>appTest</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/login_failed.jsp</form-error-page>
</form-login-config>
</login-config>
login-config子元素的描述以下:
● auth-method指定驗證方法。它的值爲下面的一個:BASIC、DIGEST、FORM或 CLIENT-CERT
● realm-name指定HTTP Basic驗證中使用的領域名。
●form-login-config指定基於表單的登陸中應該使用的登陸頁面和出錯頁面。若是沒有使用基於表單的驗證,則忽略這些元素。這個元素的定義以下,其中form-login-page用於指定顯示登陸頁面的資源路徑, form-error-page則用於指定用戶登陸失敗時顯示出錯頁面的資源路徑。這兩個頁面路徑都必須以a/開始,並與應用目錄相對應。
3.security-role元素
security-role元素指定用於安全約束中的安全角色的聲明。
<security-role>
<description>admin</description>
<role-name>admin</role-name>
</security-role>
- <security-constraint>
- <display-name>
- baseporject</display-name>
- <web-resource-collection>
- <web-resource-name>baseproject</web-resource-name>
- <url-pattern>*.jsp</url-pattern>
- <url-pattern>*.do</url-pattern>
- <http-method>GET</http-method>
- <http-method>PUT</http-method>
- <http-method>HEAD</http-method>
- <http-method>TRACE</http-method>
- <http-method>POST</http-method>
- <http-method>DELETE</http-method>
- <http-method>OPTIONS</http-method>
- </web-resource-collection>
- <auth-constraint>
- <description>
- baseproject</description>
- <role-name>All Role</role-name>
- </auth-constraint>
- <user-data-constraint>
- <transport-guarantee>NONE</transport-guarantee>
- </user-data-constraint>
- </security-constraint>
- <login-config>Xml代碼
- <!--四種驗證方式,附在最後有說明-->
- <auth-method>FORM</auth-method>
- <form-login-config>
- <form-login-page>/login.html</form-login-page>
- <form-error-page>/error.html</form-error-page>
- </form-login-config>
- </login-config>
- <security-role>
- <role-name>All Role</role-name>
- </security-role>
本身項目採用:
- <security-constraint>
- <web-resource-collection>
- <web-resource-name>testxiangmu</web-resource-name>
- <url-pattern>/ssl/*</url-pattern>
- </web-resource-collection>
- <user-data-constraint>
- <transport-guarantee>CONFIDENTIAL</transport-guarantee>
- </user-data-constraint>
- </security-constraint>
網上配置SSL的例子
http://www.oschina.net/question/12_23148
參考連接:https://liuna718-163-com.iteye.com/blog/2217057