我正在使用 struts 1.2 并使用 global-forwards 来访问我的 jsp 文件,并且即使在将 /pages/* 放入安全约束之后,我也将安全约束放在了我的 web.xml 文件中,我可以控制通过 url http:/直接访问我的 jsp /localhost:8080/mywebsite/pages/home.jsp但是每当有人将鼠标指向我的菜单项时,他都能看到像
http://localhost:8080/mywebsite/home.do这样的 URL,我在 iframe 中显示,所以什么也没有可以通过点击上面的 url 来停止对 home.jsp 的直接访问,并且能够看到我只想在我的 index.jsp 的 iframe 中显示的 home.jsp 下面是我正在使用的安全约束,我也不会使用这样的约束 <url-pattern>*.do</url-pattern>
甚至会停止也在 iframe 中显示 home.jsp。
<security-constraint>
<web-resource-collection>
<web-resource-name>JSP Files</web-resource-name>
<description>No direct access to JSP files</description>
<url-pattern>/pages/*</url-pattern>
<http-method>POST</http-method>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<description>No direct browser access to JSP files</description>
<role-name>NobodyHasThisRole</role-name>
</auth-constraint>
</security-constraint>
这是我的 struts-config.xml 中的配置
<global-forwards>
<forward name="home" path="/home.do"/>
</global-forwards>
<action-mappings>
<action path="/home" forward="/pages/home.jsp"/>
</action-mappings>