我知道已经有其他类似我的疑问的帖子,但问题是我无法解决问题。我有一个必须用名称“passport.jsp”映射的 servlet,因为外部应用程序(不能更改调用)通过 URL http://myipserver:portserver/nameApplication/passport.jsp?xxx 发出请求此时的 web.xml 在这里:
<servlet-mapping>
<servlet-name>PortalServlet</servlet-name>
<url-pattern>/passport.jsp</url-pattern>
</servlet-mapping>
问题是我的安全约束的映射覆盖了servlet passport.jsp 的定义,因为映射的是“*.jsp”。
<security-constraint>
<display-name>EsconderJSP</display-name>
<web-resource-collection>
<web-resource-name>JSP</web-resource-name>
<description/>
<url-pattern>*.jsp</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>jsps</role-name>
</auth-constraint>
</security-constraint>
有谁知道如何解决这个问题?您可以将 servlet“/passport.jsp”添加为例外。
感谢您的关注。