我对容器管理的安全性完全陌生,需要一些帮助来在我的 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 元素中的realm-name 的用途是什么?
在哪里配置用户名、密码并将用户映射到角色?
当我尝试访问 Web 应用程序中的 jsp 时,系统会要求我输入用户名和密码。我在那里给什么?那么这个安全机制是如何运作的呢?
我对安全性完全陌生,所以如果有人能给我指出一篇好文章,解释配置安全性的基础知识及其实际工作原理,我将不胜感激。
问:“login-config 元素中的领域名称的用途是什么?”
来自Java EE 6 教程 http://download.oracle.com/javaee/6/tutorial/doc/bnbxj.html:
A realm是为 Web 或应用程序服务器定义的安全策略域。领域包含用户的集合,这些用户可能会也可能不会分配到某个组。
当前定义的行为Servlet 3.0 规范 http://jcp.org/en/jsr/detail?id=315:
HTTP 基本身份验证,基于用户名和密码,
是HTTP/1.0规范中定义的身份验证机制。
Web 服务器请求 Web 客户端对用户进行身份验证。作为一部分
请求中,Web 服务器会传递领域(字符串),其中
用户将被认证。 Web客户端获取用户名
和用户的密码并将其传输到 Web 服务器。
然后,Web 服务器对指定领域中的用户进行身份验证。
问:“在哪里配置用户名、密码并将用户映射到角色?”
这是容器特定的。也就是说,每个服务器供应商可以自由定义如何定义用户/组以及如何配置此信息。通常有不止一种方法可以做到这一点。
用户和组通常在目录中定义。然后将服务器配置为使用此目录,管理员将在部署时映射应用程序角色。
开发者 Tomcat 测试服务器可能使用平面文件;生产WebSphere 服务器可能通过LDAP 连接到公司的Exchange 目录。
有关更多信息,请参阅您的服务器文档。
你可以做比遵循更糟糕的事情甲骨文Java EE 6 http://download.oracle.com/javaee/6/tutorial/doc/index.htmlNetbeans 和 Glassfish 教程,但请注意特定于该供应商产品的步骤。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)