IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Détourner une jsp d'un filter Tomcat


Sujet :

Servlets/JSP Java

  1. #1
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut Détourner une jsp d'un filter Tomcat
    Bonjour,

    j'ai une application Web dans laquelle sont appliqués des filtres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    <filter>
    		<filter-name>CAS Validation Filter</filter-name>
    		<filter-class>
    			org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
    		<init-param>
    			<param-name>casServerUrlPrefix</param-name>
    			<param-value>https://identification.smacl.fr:8443/</param-value>
    		</init-param>
    		<init-param>
    			<param-name>serverName</param-name>
    			<param-value>http://localhost:8080</param-value>
    		</init-param>
    		<init-param>
    			<param-name>redirectAfterValidation</param-name>
    			<param-value>true</param-value>
    		</init-param>
    	</filter>
     
    	<filter>
    		<filter-name>CAS Authentication Filter</filter-name>
    		<filter-class>
    			org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
    		<init-param>
    			<param-name>casServerLoginUrl</param-name>
    			<param-value>https://identification.smacl.fr:8443/login</param-value>
    		</init-param>
    		<init-param>
    			<param-name>serverName</param-name>
    			<param-value>http://localhost:8080</param-value>
    		</init-param>
    		<init-param>
    			<param-name>renew</param-name>
    			<param-value>false</param-value>
    		</init-param>
    		<init-param>
    			<param-name>gateway</param-name>
    			<param-value>false</param-value>
    		</init-param>
    	</filter>
     
    	<filter-mapping>
    		<filter-name>CAS Validation Filter</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>
     
    	<filter-mapping>
    		<filter-name>CAS Authentication Filter</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>
    Ces filtres servent à rediriger l'application vers un serveur d'authentification CAS.

    Le mapping de ma servlet est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <servlet>
    		<display-name>Servlet</display-name>
    		<servlet-name>Servlet</servlet-name>
    		<servlet-class>fr.smacl.ficheutilisateur.servlet.Servlet</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>Servlet</servlet-name>
    		<url-pattern>*.srv</url-pattern>
    	</servlet-mapping>
    Le problème, c'est que j'aurai besoin qu'une jsp de l'application ne soit pas filtrée et je ne sais pas comment faire. Que faut-il mettre comme mapping de servlet et comme mapping de filtre pour que certaines pages puissent contourner ce filtre ?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ce qu'il faut c'est changer le mapping de ton filtre. Soit tu remplace /* par /CAS/* et tu déplace tout ce qui doit rester derrière ton filtre dans CAS/ ensuite, ta servlet tu ne la met pas dans CAS et le tour est joué.

    Soit, plus compliqué, si tu veux pas jouer avec la structure, tu commence à faire plein de regles de filtrage pour les petit bout qui tournent autour de ta servlet, autant dire la galère

    que je sache, les mapping servlet n'ont pas de règle d'exclusion.

  3. #3
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    j'ai placer toutes mes jsp à protéger dans le dossier "protected" et j'ai configurer mon fichier web.xml de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_ID" version="2.4"
    	xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    	<display-name>FicheUtilisateur</display-name>
     
     
    	<filter>
    		<filter-name>CAS Validation Filter</filter-name>
    		<filter-class>
    			org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
    		<init-param>
    			<param-name>casServerUrlPrefix</param-name>
    			<param-value>https://identification.smacl.fr:8443/</param-value>
    		</init-param>
    		<init-param>
    			<param-name>serverName</param-name>
    			<param-value>http://localhost:8080</param-value>
    		</init-param>
    		<init-param>
    			<param-name>redirectAfterValidation</param-name>
    			<param-value>true</param-value>
    		</init-param>
    	</filter>
     
    	<filter>
    		<filter-name>CAS Authentication Filter</filter-name>
    		<filter-class>
    			org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
    		<init-param>
    			<param-name>casServerLoginUrl</param-name>
    			<param-value>https://identification.smacl.fr:8443/login</param-value>
    		</init-param>
    		<init-param>
    			<param-name>serverName</param-name>
    			<param-value>http://localhost:8080</param-value>
    		</init-param>
    		<init-param>
    			<param-name>renew</param-name>
    			<param-value>false</param-value>
    		</init-param>
    		<init-param>
    			<param-name>gateway</param-name>
    			<param-value>false</param-value>
    		</init-param>
    	</filter>
     
    	<filter-mapping>
    		<filter-name>CAS Validation Filter</filter-name>
    		<url-pattern>/protected/</url-pattern>
    	</filter-mapping>
     
    	<filter-mapping>
    		<filter-name>CAS Authentication Filter</filter-name>
    		<url-pattern>/protected/</url-pattern>
    	</filter-mapping>
     
     
    	<servlet>
    		<display-name>Servlet</display-name>
    		<servlet-name>Servlet</servlet-name>
    		<servlet-class>fr.smacl.ficheutilisateur.servlet.Servlet</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>Servlet</servlet-name>
    		<url-pattern>*.srv</url-pattern>
    	</servlet-mapping>
    	<welcome-file-list>
    		<welcome-file>index.html</welcome-file>
    		<welcome-file>index.jsp</welcome-file>
    	</welcome-file-list>
    </web-app>
    Le problème c'est que je n'ai plus accès à ces jsp protégées même en étant authentifié.
    Ma page non protégée elle est toujours accessible. (ce qui est normal)

    Comment résoudre mon problème.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    c'est peut etre ca ton problème?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	<filter-mapping>
    		<filter-name>CAS Validation Filter</filter-name>
    		<url-pattern>/protected/*</url-pattern>
    	</filter-mapping>
     
    	<filter-mapping>
    		<filter-name>CAS Authentication Filter</filter-name>
    		<url-pattern>/protected/*</url-pattern>
    	</filter-mapping>

  5. #5
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    J'ai testé tchize, mais j'obtiens les mêmes erreurs "404"

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    404 c'est fichier non trouvé, si t'as déplacé tes jsp, faut aussi changer tes urls

  7. #7
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    j'avais bien changé les url dans mon index.jsp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     
    <%@page import="org.jasig.cas.client.validation.Assertion"%>
    <%@page import="org.jasig.cas.client.util.AbstractCasFilter"%>
    <%@page import="org.jasig.cas.client.authentication.AttributePrincipal"%><html>
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    	<a href="/protected/ficheUtilisateur.srv">Fiche Utilisateur</a>
    	<br/>
    	<a href="oubliMotDePasse.jsp">Oubli du mot de passe</a>
    	<br/>
    	<a href="/protected/modifMotDePasse.jsp">Modification du mot de passe</a>
    	<br/>
    	<a href="/protected/confirmFicheUtilisateur.jsp">Validation</a>
    	<br/>
    	<a href="/protected/maquettes/mail.jsp">Email</a>
    	<br/>
    	<a href="/protected/confirmationValidation.jsp">Confirmation Validation</a>
    </body>
    </html>

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    je vois que tu met /protected dans l'url. Normalement, a moisn que ta webapplication soit à la racine de ton serveur, tu dois faire précéder le / du nom de la webapplication.

    Exemple: /maWebapp/protected/ficheUtilisateur.srv

    le tag jsp c:url sert d'ailleurs à construire facilement ce genre d'url

  9. #9
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Je suis en local sur mon poste.
    J'ai donc changer comme tu me l'a indiqué plus haut mon index.jsp mais sans succès

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     
    <%@page import="org.jasig.cas.client.validation.Assertion"%>
    <%@page import="org.jasig.cas.client.util.AbstractCasFilter"%>
    <%@page import="org.jasig.cas.client.authentication.AttributePrincipal"%><html>
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    	<a href="/FicheUtilisateur/protected/ficheUtilisateur.srv">Fiche Utilisateur</a>
    	<br/>
    	<a href="oubliMotDePasse.jsp">Oubli du mot de passe</a>
    	<br/>
    	<a href="/FicheUtilisateur/protected/modifMotDePasse.jsp">Modification du mot de passe</a>
    	<br/>
    	<a href="/FicheUtilisateur/protected/confirmFicheUtilisateur.jsp">Validation</a>
    	<br/>
    	<a href="/FicheUtilisateur/protected/maquettes/mail.jsp">Email</a>
    	<br/>
    	<a href="/FicheUtilisateur/protected/confirmationValidation.jsp">Confirmation Validation</a>
    </body>
    </html>
    Je ne devrais pas protéger ma servlet ou en faire deux peut être une protégée et l'autre non ?

  10. #10
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    pour faire simple, quelle adresse tu as dans ton navigateur quand tu entre dans ta webapplication?

    ton fichier "modifMotDePasse.jsp" (exemple) se trouve ou par rapport à la racine de ta webapp (je parle pas du serveur là mais de ton .war)?

  11. #11
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    dsl jsui pas une brute en java.....

    pour la jsp qui marche voici l'adresse url du navigateur : "http://localhost:8080/FicheUtilisateur/oubliMotDePasse.jsp"

    après pour le .war pourrais tu me donner plus d'explication car j'ai pas tout compris ...

  12. #12
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par danyboy85 Voir le message
    après pour le .war pourrais tu me donner plus d'explication car j'ai pas tout compris ...
    Si c'est pas avec un .war, pourrais-tu me dire comment tu déploie ta webapplication?

    En gros est-ce que tes jsp sont dans un répertoire FicheUtilisateur de ta webapp mise en racine du serveur, ou est-ce que ta webapp s'appelle "FicheUtilisateur" et qu'elle a un fichier "oublimotdepasse.jsp" à sa racine?

    Parce que ca fait toute la différence sur le mapping et le urls à utiliser

  13. #13
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Voici l'arbo du projet....si ça te va
    Images attachées Images attachées  

  14. #14
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    t'as mis ton dossier protected dans WEB-INF, cela n'a rien à y faire. Déplace ton protected dans Webcontent/

  15. #15
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    pffff quel con ....

    Merci bcp ça marche .... quel souci de CSS et image à cause des chemin dans mes jsp.

    MERCI BCP BCP BCP

Discussions similaires

  1. pb d'affichage de form sur une jsp avec tomcat
    Par startin dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 25/05/2007, 09h32
  2. Réponses: 7
    Dernier message: 23/03/2007, 16h23
  3. pb de lancement d'une JSP en Eclipse-Tomcat
    Par adilo dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 17/11/2006, 16h58
  4. Comment créer et executer une page jsp sur eclipse et tomcat
    Par debutantjak dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 16/03/2006, 18h21
  5. [Tomcat]Probleme d'accès Servlet via une JSP
    Par jeune63000 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 29/01/2005, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo