2017-10-13 177 views
1

我知道已经有其他职位类似于我的疑问,但问题是我无法解决问题。 我必须名为“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”作为例外。

感谢您的关注。

回答

0

我解决只是增加我的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> 

安它的工作。谢谢

0

您可以添加其他的安全约束它上面有没有保护

<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> 
+0

嗨!感谢您的关注。我用你的小费解决了我的问题。我把 空闲页面 /passport.jsp