2017-10-13 4 views
1

Je sais qu'il y a déjà d'autres messages similaires à mon doute, mais le problème est que je n'ai pas pu résoudre le problème. J'ai un servlet qui doit être mis en correspondance avec le nom « passport.jsp », car une application externe (ne peut pas changer l'appel) fait une demande via une URL http://myipserver:portserver/nameApplication/passport.jsp?xxx Mon web.xml dans ce point est ici:Configuration d'une exception dans la contrainte de sécurité web.xml

<servlet-mapping> 
    <servlet-name>PortalServlet</servlet-name> 
    <url-pattern>/passport.jsp</url-pattern> 
</servlet-mapping> 

Le problème est que le mappage de ma contrainte de sécurité remplace la définition de la servlet passport.jsp, car elle est mappée "* .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> 

Est-ce que quelqu'un sait comment résoudre ce problème? Vous pouvez ajouter la servlet "/passport.jsp" en tant qu'exception.

Nous vous remercions de votre attention.

Répondre

0

je résous simplement d'ajouter une nouvelle balise dans mon web.xml (autre-contrainte de sécurité)

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>free pages</web-resource-name> 
     <url-pattern>/passport.jsp</url-pattern> 
    </web-resource-collection> 
</security-constraint> 

Ann, il travaille. Merci

0

Vous pouvez ajouter une autre-contrainte de sécurité au-dessus qui n'a pas de protection

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

Ou vous pouvez modifier les demandes d'application pour commencer quelque chose de différent à protéger. Cela laissera la demande de passeport non protégée.

http://myipserver:portserver/nameApplication/otherRequests/foobar.jsp 

http://myipserver:portserver/nameApplication/passport.jsp 

alors seulement protéger /otherRequests/*

<url-pattern>/otherRequests/*</url-pattern> 
+0

Salut! Merci de votre attention. Je résous mon problème avec votre conseil. Je mets pages libres /passport.jsp