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

Développement Web en Java Discussion :

Apache Shiro Tutoriel en Francais


Sujet :

Développement Web en Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 20
    Points : 10
    Points
    10
    Par défaut Apache Shiro Tutoriel en Francais
    Salut,

    J'ai fait quelque recherche sur le google concernant la sécurité en Java web (pour débutant) et j'ai décider d'essayer Apache Shiro, mais les quelque rar tuto que j'ai vu sont anglais,

    Si quelqu'un a un lien pour un tuto en francais ?

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java / JEE
    Inscrit en
    Février 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java / JEE

    Informations forums :
    Inscription : Février 2008
    Messages : 185
    Points : 293
    Points
    293
    Par défaut
    Bonjour

    En effet, je n'avais pas vu de documentation en français à l'époque où je m'en étais servi. Ceci dit le tutoriel en anglais est plutôt abordable. Au pire tu peux toujours tenter un "google translate"

    Est-ce que tu as des questions précises sur l'implémentation ? Est-ce que tu as déjà codé quelque chose ?

    Mathieu

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Influenza Voir le message
    Est-ce que tu as des questions précises sur l'implémentation ?
    Mathieu
    Bon là je doit avouer que j'ai pas compris la question,
    Mais c'est pour une application java web, je veux que l'utilisateur puisse accèder à certaine page qu'après avoir authentifier et que l'administrateur peut lui aussi acceder à des page spécifiques en plus de ceux d'un utilisateur simple

    Citation Envoyé par Influenza Voir le message
    Est-ce que tu as déjà codé quelque chose
    Mathieu
    Non pas encore.

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    OK, voila ce que j'ai essayer:


    1 J'ai télécharger Shiro-web.jar.

    2 j'ai creer un Java web Application (sur NetBeans)

    3 J'ai ajouter le .jar au dossier Libraries

    4 J'ai creer le fichier web.xml est j'ai ajouter ceci:

    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
       <?xml version="1.0" encoding="UTF-8"?>
     
            <web-app xmlns="http://java.sun.com/xml/ns/javaee"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
                    version="3.0">
                <session-config>
                    <session-timeout>
                        30
                    </session-timeout>
                </session-config>
            </web-app>
     
     
            <listener>
                <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
            </listener>
            <filter>
                <filter-name>shiroFilter</filter-name>
                <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
            </filter>
            <filter-mapping>
                <filter-name>shiroFilter</filter-name>
                <url-pattern>/*</url-pattern>
                <dispatcher>REQUEST</dispatcher>
                <dispatcher>FORWARD</dispatcher>
                <dispatcher>INCLUDE</dispatcher>
                <dispatcher>ERROR</dispatcher>
            </filter-mapping>

    5 J'ai créer le fichier shiro.ini dans web\WEB-INF et J'ai ajouter le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            [main]
            authc.loginUrl = /login.jsp
     
            [users]
            admin = password
     
            [urls]
            /index.jsp = authcBasic
    6 Et puis la page login.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
     
            <%@page contentType="text/html" pageEncoding="UTF-8"%>
            <!DOCTYPE html>
            <html>
                <head>
                    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
                    <title>Login Page</title>
                </head>
                <body>
     
                        <h2>Login</h2>
                <form method="post">
                    <label for="username">Username:</label>
                    <input type="text" id="username" name="username" />
                    <br/>
                    <label for="password">Password:</label>
                    <input type="password" id="password" name="password" />
                    <br/> 
                    <input type="submit" value="Login" />
                </form>
     
                </body>
            </html>
    et quand je lence l'application l'application,j'ai l'erreur suivant:
    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
     
    		init:
    		deps-module-jar:
    		deps-ear-jar:
    		deps-jar:
    		Created dir: C:\Users\WORK\Documents\NetBeansProjects\ShiroTestApp\build\web\WEB-INF\classes
    		Created dir: C:\Users\WORK\Documents\NetBeansProjects\ShiroTestApp\build\web\META-INF
    		Copying 1 file to C:\Users\WORK\Documents\NetBeansProjects\ShiroTestApp\build\web\META-INF
    		Copying 4 files to C:\Users\WORK\Documents\NetBeansProjects\ShiroTestApp\build\web
    		library-inclusion-in-archive:
    		library-inclusion-in-manifest:
    		Created dir: C:\Users\WORK\Documents\NetBeansProjects\ShiroTestApp\build\empty
    		Created dir: C:\Users\WORK\Documents\NetBeansProjects\ShiroTestApp\build\generated-sources\ap-source-output
    		compile:
    		compile-jsps:
    		In-place deployment at C:\Users\WORK\Documents\NetBeansProjects\ShiroTestApp\build\web
    		Initializing...
    		deploy?DEFAULT=C:\Users\WORK\Documents\NetBeansProjects\ShiroTestApp\build\web&name=ShiroTestApp&contextroot=/ShiroTestApp&force=true failed on GlassFish Server 3+ 
    		 Exception while deploying the app : java.io.IOException: org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed.
    		C:\Users\WORK\Documents\NetBeansProjects\ShiroTestApp\nbproject\build-impl.xml:721: The module has not been deployed.
    		See the server log for details.
    		BUILD FAILED (total time: 7 seconds)
    Est-ce correcte? Ou dois-je ajouter/modifier quelque chose

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Java / JEE
    Inscrit en
    Février 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java / JEE

    Informations forums :
    Inscription : Février 2008
    Messages : 185
    Points : 293
    Points
    293
    Par défaut
    Bonjour,

    Comme te l'indique l'erreur dans tes logs, ton web.xml n'est pas bon. Il faut que ce que tu as rajouté soit dans la balise principale "web-app".

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    	version="3.0">
    	<session-config>
    		<session-timeout>30</session-timeout>
    	</session-config>
    	<listener>
    		<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
    	</listener>
    	<filter>
    		<filter-name>shiroFilter</filter-name>
    		<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
    	</filter>
    	<filter-mapping>
    		<filter-name>shiroFilter</filter-name>
    		<url-pattern>/*</url-pattern>
    		<dispatcher>REQUEST</dispatcher>
    		<dispatcher>FORWARD</dispatcher>
    		<dispatcher>INCLUDE</dispatcher>
    		<dispatcher>ERROR</dispatcher>
    	</filter-mapping>
    </web-app>
    Ensuite il te faudra aussi utiliser la librairie shiro-core.jar. De plus si tu veux voir des logs il te faudra aussi slf4j-api.jar ainsi qu'éventuellement un logger comme slf4j-simple.jar par exemple.

    Enfin ton fichier shiro.ini me semble incomplet. Il te faudra mettre "authc" pour pouvoir utiliser ton formulaire d'authentification. Mais d'un autre coté utiliser "authcBasic" (qui va ouvrir une boite de dialogue de ton navigateur) est un bon test pour savoir si Shiro est bien appelé.

    Mathieu

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Merci Mathieu,

    J'ai recréer une autre application utilisant maven (ça à l'air plus facile avec),
    donc là, J'ai toutes les dependance installées :
    voila le web.xml
    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
    <?xml version="1.0" encoding="UTF-8"?>
     
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
             version="3.0">
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
     
        <listener>
            <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
        </listener>
        <filter>
            <filter-name>shiroFilter</filter-name>
            <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>shiroFilter</filter-name>
            <url-pattern>/index.jsp</url-pattern>
            <dispatcher>REQUEST</dispatcher>
            <dispatcher>FORWARD</dispatcher>
            <dispatcher>INCLUDE</dispatcher>
            <dispatcher>ERROR</dispatcher>
        </filter-mapping>
    </web-app>
    j'ai creer le fichier shiro.ini dans /WEB-INF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [main]
    authc.loginUrl = /login.jsp
    [users]
    admin = password
    [urls]
    /login.jsp = authc
    /app/** = authc
    et quand je lance l'application , il m'ouvre la page d'acceuil sans me demander de "loginer" d'abord.

    le server glassfish m'affiche cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    INFO: PWC1412: WebModule[/ShiroTest3_mvn] ServletContext.log():Cleaning up Shiro Environment
    INFO: PWC1412: WebModule[/ShiroTest3_mvn] ServletContext.log():Initializing Shiro environment
    GRAVE: 148 [http-thread-pool-4848-(2)] INFO org.apache.shiro.web.env.EnvironmentLoader - Starting Shiro environment initialization.
     
    GRAVE: 1281 [http-thread-pool-4848-(2)] INFO org.apache.shiro.web.env.EnvironmentLoader - Shiro environment initialized in 1115 ms.
     
    INFO: Loading application com.mycompany_ShiroTest3_mvn_war_1.0-SNAPSHOT at /ShiroTest3_mvn
    INFO: com.mycompany_ShiroTest3_mvn_war_1.0-SNAPSHOT was successfully deployed in 2*120 milliseconds.

  7. #7
    Membre actif
    Homme Profil pro
    Développeur Java / JEE
    Inscrit en
    Février 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java / JEE

    Informations forums :
    Inscription : Février 2008
    Messages : 185
    Points : 293
    Points
    293
    Par défaut
    Bonjour

    En effet avec Maven, c'est plus simple de gérer les dépendances
    Sinon tu as réussi à lancer Shiro ! Par contre il ne dit pas grand chose.
    Tu devrais changer ton niveau de log en "debug" pour y voir plus clair.

    Dans ton shiro.ini tu devrais protéger toutes tes URLs :
    Je pense que c'est pour ça qu'il ne te demande pas de te logger. Tu demandes l'affichage de l'URL "/ShiroTest3_mvn" mais tu protèges seulement "/app/*".

    Mathieu

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Ok, la ça marche maintenant. j'ai d'autres problemes mais je pense que je vais les mettre dans un nouveau post

    Merci beaucoup.

    Citation Envoyé par Influenza Voir le message
    Bonjour

    En effet avec Maven, c'est plus simple de gérer les dépendances
    Sinon tu as réussi à lancer Shiro ! Par contre il ne dit pas grand chose.
    Tu devrais changer ton niveau de log en "debug" pour y voir plus clair.

    Dans ton shiro.ini tu devrais protéger toutes tes URLs :
    Je pense que c'est pour ça qu'il ne te demande pas de te logger. Tu demandes l'affichage de l'URL "/ShiroTest3_mvn" mais tu protèges seulement "/app/*".

    Mathieu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'éclaircissement sur Apache Shiro
    Par scandinave dans le forum Frameworks Web
    Réponses: 0
    Dernier message: 17/04/2014, 14h01
  2. Apache Shiro: redirection au page login après Authentification
    Par helloct dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 28/05/2013, 17h56
  3. Asp.net AJAX: tutoriel en Francais
    Par emma3345 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/03/2013, 14h22
  4. [Apache Pivot] tutoriel
    Par Mageni dans le forum Autres
    Réponses: 1
    Dernier message: 16/02/2010, 10h26
  5. Réponses: 3
    Dernier message: 17/10/2006, 04h39

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