在web.xml安全约束配置一个异常
问题描述:
我知道已经有其他职位类似于我的疑问,但问题是我无法解决问题。 我必须名为“passport.jsp”映射一个servlet,因为外部应用程序(不能改变调用)使得通过一个URL的请求http://myipserver:portserver/nameApplication/passport.jsp?xxx 我在这一点上的web.xml是在这里:在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”作为例外。
感谢您的关注。
答
我解决只是增加我的web.xml中一个新的标签(其它安全约束)
<security-constraint>
<web-resource-collection>
<web-resource-name>free pages</web-resource-name>
<url-pattern>/passport.jsp</url-pattern>
</web-resource-collection>
</security-constraint>
安它的工作。谢谢
答
您可以添加其他的安全约束它上面有没有保护
<security-constraint>
<web-resource-collection>
<url-pattern>/passport.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
或者你可以改变应用程序的请求,开始与不同的东西来进行保护。这将使护照申请不受保护。
http://myipserver:portserver/nameApplication/otherRequests/foobar.jsp
http://myipserver:portserver/nameApplication/passport.jsp
那么只有保护/otherRequests/*
<url-pattern>/otherRequests/*</url-pattern>
嗨!感谢您的关注。我用你的小费解决了我的问题。我把空闲页面 web-resource-name> /passport.jsp url-pattern> web-资源收集> security-constraint> –