<Host name="domain1.com" appBase="myApp"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>domain2.com</Alias>
</Host>
我们还想限制对web应用的访问(不同于使用站点的登录),所以我们使用了Tomcat安全性。
以下是应用程序web.xml中的安全约束片段:
<security-constraint>
<web-resource-collection>
<web-resource-name>HTMLManger and Manager command</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<!-- NOTE: This role is not present in the default users file -->
<role-name>manager</role-name>
</auth-constraint>
</security-constraint>
<!-- Define the Login Configuration for this Application -->
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>My Realm</realm-name>
</login-config>
<!-- Security roles referenced by this web application -->
<security-role>
<description>
The role that is required to log in to the Manager Application
</description>
<role-name>manager</role-name>
</security-role>
<error-page>
<error-code>401</error-code>
<location>/401.jsp</location>
</error-page>
下面是一个场景:当用户浏览domain1.com时,将显示基本身份验证弹出窗口。然后用户输入用户名和密码组合以进入站点。然后,用户希望登录到web应用程序(以便能够使用更多功能)。登录机制(使用acegi)也需要登录domain2.com。现在,在用户可以登录domain2.com之前,他/她需要为基本身份验证弹出窗口输入相同的凭据。所以基本上,用户需要使用tomcatweb安全两次,这是我们需要避免的。
谢谢!