2011-10-19 106 views
4

我完全不熟悉容器託管安全性,需要一些幫助來在我的Web應用程序中對其進行配置。適用於Web應用程序的容器託管安全

我想在我的web應用程序中限制對jsp的訪問。這是我如何在我的web.xml中配置安全

<security-constraint> 
    <display-name>PrivilegedConstraint</display-name> 
    <web-resource-collection> 
     <web-resource-name>JSP Files</web-resource-name> 
     <description>All the jsp files in the web application</description> 
     <url-pattern>*.jsp</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <description/> 
     <role-name>PrivilegedRole</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <description/> 
     <transport-guarantee>NONE</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 
<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>BasicRealm</realm-name> 
</login-config> 
<security-role> 
    <description>This is a privileged role. Has access to everything in the web app</description> 
    <role-name>PrivilegedRole</role-name> 
</security-role> 

我的問題是:

什麼是境界名在login-config元素的目的是什麼? 我在哪裏配置用戶名,密碼並將用戶映射到角色?

當我嘗試訪問我的web應用程序中的jsp時,我被要求輸入用戶名和密碼。我在那裏給了什麼?這個安全機制是如何工作的?

我對安全性很陌生,所以我會很感激,如果有人能指出我一篇很好的文章,解釋配置安全性的基礎知識以及它的實際工作原理?

回答

3

問:「login-config元素中域名的用途是什麼?

Java EE 6 tutorial

一個境界是一個Web或應用服務器定義的安全策略域。領域包含一組用戶,他們可能會或可能不會被分配到一個組。

如從而在當前Servlet 3.0 spec定義的行爲:

HTTP基本認證,這是基於用戶名和密碼, 是在HTTP/1.0規範中定義的認證機制。 Web服務器請求Web客戶端對用戶進行身份驗證。作爲請求的部分 ,Web服務器傳遞用戶將被認證的領域(字符串)。 Web客戶端從用戶獲取用戶名 和密碼並將它們發送到Web服務器。 然後,Web服務器在指定的領域中對用戶進行身份驗證。


問: 「我在哪裏可以配置用戶名,密碼和用戶映射到角色?」

這是容器特定的。也就是說,每個服務器供應商都可以自由定義如何定義用戶/組以及如何配置此信息。通常有多種方法可以做到這一點。

用戶和組通常在目錄中定義。然後將服務器配置爲使用此目錄,管理員將在部署時映射應用程序角色。

開發人員Tomcat測試服務器可能使用平面文件;生產WebSphere服務器可能通過LDAP掛接到公司的Exchange目錄。

有關更多信息,請參閱您的服務器文檔。


你可以做不如跟着Oracle Java EE 6教程與NetBeans和Glassfish的,但要注意的是特定於供應商的產品的步驟。

相關問題