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

Java EE Discussion :

sécurité d'accès à une application multi-tiers Java EE


Sujet :

Java EE

  1. #21
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 68
    Points : 52
    Points
    52
    Par défaut
    A propos de la gestion d'acegi et d'une base de données, est-ce que c'est possible qu'un utilisateur puisse avoir plusieurs roles ? Car pour le moment, ma table authorities a pour clé primaire et étrangère les id des users. Je pense que ca doit être possible en modifiant la table authorities et en prenant comme clé primaire de la table authorities un identifiant à part ? non ?

  2. #22
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    oui, c'est bien l'objet de la gestion par rôle

  3. #23
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 68
    Points : 52
    Points
    52
    Par défaut
    Je pensais bien que c'était possible, je le fait d'ailleurs avec un ldap. Mais pour la base de données, comment doit être le modele de la table authorities ?

    D'autre part, j'essaie de coupler acegi avec un serveur CAS. Est-ce que qq'un pourrait me dire pourquoi il ne trouve pas le filtre j_acegi_cas_security_check au sein de mon application ? Est-ce qu'il me manque une librairie ? Où sont placés ces filtres (j_acegi_security_check, j_acegi_cas_security_check) ? J'espere que qq'un pourra m'aider car je bloque la dessus depuis un petit moment.

    Merci.

  4. #24
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Pour les rôles / user, tout est dans l'article sur ego.developpez.com

  5. #25
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 68
    Points : 52
    Points
    52
    Par défaut
    Oui merci, je m'en suis inspiré.
    Mais comme je travaille avec Postgre et pgAdmin pour ma base, je ne peux pas laisser ma table authorities sans clé primaire. J'ai donc rajouté un id s'incrémentant automatiquement et ca marche bien.
    Encore merci.
    Concernant acegi avec cas, mon serveur cas redirige vers mon appli sécurisée avec le ticket mais l'authentification n'est pas reconnue dans mon appli sécurisée, c'est à dire qu'il considère que j'y accède en tant qu'utilisateur anonyme, alors que je me suis authentifié/identifié sur cas juste avant... Si quelqu'un voit mon problème...
    Cordialement,

  6. #26
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    merci bcp pour vos réponses
    alors pour moi : je travaille avec une db mysql et en utilisant eclipse.
    j'ai fait la connexion avec la bd
    il me reste comment faire l'appel aux bean qui se trouvent dans le fichier de conf application-context.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
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
     
    <beans>
        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
            <property name="url"><value>jdbc:mysql://localhost:3306/acegiDB</value></property>
            <property name="username"><value>acegi</value></property>
            <property name="password"><value>acegi</value></property>
        </bean>
     
        <bean id="jdbcDaoImpl" class="net.sf.acegisecurity.providers.dao.jdbc.JdbcDaoImpl">
            <property name="dataSource">
                <ref bean="dataSource"/>
            </property>
        </bean>
     
     
        <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
            <property name="configLocation"><value>classpath:/ehcache-failsafe.xml</value></property>
        </bean>
     
        <bean id="userCacheBackend" class="org.springframework.cache.ehcache.EhCacheFactoryBean">
            <property name="cacheManager"><ref local="cacheManager"/></property>
            <property name="cacheName"><value>userCache</value></property>
        </bean>
     
        <bean id="userCache" class="net.sf.acegisecurity.providers.dao.cache.EhCacheBasedUserCache">
            <property name="cache"><ref local="userCacheBackend"/></property>
        </bean>
     
        <bean id="daoAuthenticationProvider" class="net.sf.acegisecurity.providers.dao.DaoAuthenticationProvider">
            <property name="authenticationDao"><ref bean="jdbcDaoImpl"/></property>
            <property name="passwordEncoder"><ref bean="passwordEncoder"/></property>
            <property name="userCache"><ref bean="userCache"/></property>
        </bean>
     
     
        <bean id="passwordEncoder" class="net.sf.acegisecurity.providers.encoding.Md5PasswordEncoder">
            <property name="encodeHashAsBase64"><value>false</value></property>
        </bean>
     
        <bean id="authenticationManager" class="net.sf.acegisecurity.providers.ProviderManager">
            <property name="providers">
                <list>
                    <ref bean="daoAuthenticationProvider"/>
                </list>
            </property>
        </bean>
     
        <bean id="casPasswordHandler" class="net.sf.acegisecurity.adapters.cas.CasPasswordHandler">
            <property name="authenticationManager">
                <ref bean="authenticationManager"/>
            </property>
        </bean>
     
    </beans>
    mon problème c comment je fait l'appel à partir d'une classe java simple ces beans présentés dans ce fichier ?
    j'ai besoin d'aide svp
    merci d'avance

  7. #27
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    mon problème c comment je fait l'appel à partir d'une classe java simple ces beans présentés dans ce fichier ?
    C'est quoi la question exactement ?

  8. #28
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    bonjour
    en fait ma question c'est comment je peux utiliser les beans déclarés dans le fichier application-context.xml (en utilisant des classex java)
    je n'utilise pas de jsp .
    j'espère que vous m'avez compris .

  9. #29
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    mais comme pour tout bean d'une application Spring, via une factory !! ??
    Regardes les exemples de base dans la doc Spring, cela t'aidera

  10. #30
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    bonjour
    je ne sais pas comment faire
    svp un peu d'aide

  11. #31
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 2
    Points
    2
    Par défaut aide
    bonjour ugo
    j'ai lu votre article concernant acegisecurity et le code source accompagné.
    puisque j'ai pas travaillé sur les web services, j'ai pas compris comment je peux éxécuter le code source pour voir le résultat.
    merci de me répondre.

  12. #32
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Voici le code source de l'exemple utilisé pour l'article.

    .zip = source
    build.xml : script Ant de fabrication

    Pour tout fabriquer, il faut faire "ant deploy".

    Attention, il y a des chemins en dur dans le fichier build.xml; les adapter en fonction de ton installation de Tomcat (c'est avec Tomcat que j'ai fait mes tests).
    Il faut aussi les librairies, regardes au début du script xml
    Fichiers attachés Fichiers attachés

  13. #33
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    salut,
    j'ai testé l'exemple avec ant mais il m'affiche des messages d'erreurs.
    svp est ce que vous pouvez m'expliquer comment je peux faire l'exécution de cet exemple? vraiment je suis bloqué.(est ce que vous pouvez m'expliquer comment je peux l'exécuter sous eclopse sans ant svp?)
    merci d'avance.

  14. #34
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    envois moi ton email, je t'enverrai mon workspace Eclipse

  15. #35
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    salut à tous,

    j'entend beaucoup parler de ce framework,mais, j'ai lu rapidement la docil parait qu'il s'intègre à spring, peut on l'utiliser sans spring?
    Si j'ai bien compris, le framework encapsule la la gestion de la sécurité par le container avec jaas; je voudrais que tomcat gere l'authentification, je ne peux pas utiliser directement le Realm de tomcat car, le serveur ne peut acceder à la base de données où sont stockés les users et passwords, l'acces aux elements de la base se fait via des web services..puis le faire avec ce framework et est ce compliqué à implementer?

    merciiiii

  16. #36
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    acegi sans Spring ? la réponse a déjà été posée.
    La réponse est non.
    Tu peux tout à fait créer ton propre "Provider" pour faire tes accès WebServices.

    Regardes mon article sur http://ego.developpez.com, tu trouveras l'utilisation de 2 providers. Dans ton cas il faudra en créer un particulier

  17. #37
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par ego
    acegi sans Spring ? la réponse a déjà été posée.
    La réponse est non.
    Tu peux tout à fait créer ton propre "Provider" pour faire tes accès WebServices.

    Regardes mon article sur http://ego.developpez.com, tu trouveras l'utilisation de 2 providers. Dans ton cas il faudra en créer un particulier
    Merci; désolè je n'ai pas bien lu la doc avant d'envoyer le post..finalement j'ai résolu mon problème en utilisant simplement JAAS, je ne vois pas pourquoi utiliser un framework acegi ou Jguard pour une simple authentification, déjà que je trouve qu'il ya trop de framework dans les applications J2EE!!

    à++

  18. #38
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Regardes le pourquoi d'acegi sur leur site, tu comprendras pourquoi acegi existe

  19. #39
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 2
    Points
    2
    Par défaut inmemory dao
    bonjour,
    je suis encore bloqué dans la partie concernant l'authentification en utilisant acegi.
    j'ai fait la configuration de inmemorydao comme suit dans le fichier de configuration de spring
    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
     
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
    <beans>
    <bean id="authenticationManager"
    class="net.sf.acegisecurity.providers.ProviderManager">
    <property name="providers">
    <list>
    <ref bean="daoAuthenticationProvider"/>
    <ref bean="passwordDaoProvider"/>
    </list>
    </property>
    </bean>
    <bean id="authenticationProvider" class="net.sf.acegisecurity.
    providers.dao.DaoAuthenticationProvider">
    <property name="authenticationDao">
    <ref bean="authenticationDao"/>
    </property>
    </bean>
    <bean id="authenticationDao" class="net.sf.acegisecurity.
    providers.dao.memory.InMemoryDaoImpl">
    <property name="userMap">
    <value>
    palmerd=4moreyears,ROLE_PRESIDENT
    bauerj=ineedsleep,ROLE_FIELD_OPS,ROLE_DIRECTOR
    myersn=traitor,disabled,ROLE_FIELD_OPS
    </value>
    </property>
    </bean>
    </beans>
    j'utilise eclipse comme ide.
    mnt je veux récupérer les données présentes dans le bean"authenticationdao".
    pour cela j'ai utilisé la classe:TestInMemory 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
     
    package com.west.acegi.testinmemory;
     
    import java.io.FileInputStream;
     
    import org.acegisecurity.userdetails.memory.InMemoryDaoImpl;
    import org.apache.log4j.lf5.util.Resource;
    import org.springframework.beans.factory.BeanFactory;
    import org.springframework.beans.factory.xml.XmlBeanFactory;
     
    public class TestIn {
     
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		BeanFactory factory = new XmlBeanFactory((Resource) new FileInputStream("application-context.xml"));
    		InMemoryDaoImpl authenticationDao = (InMemoryDaoImpl) factory.getBean("authenticationDao");
     
     
    	}
     
    }
    mais il y a tj des erreurs:
    Exception in thread "main" java.lang.Error: Unresolved compilation problems:
    The constructor XmlBeanFactory(Resource) is undefined
    Cannot cast from FileInputStream to Resource

    at com.west.acegi.testinmemory.TestIn.main(TestIn.java:15)

    je ne sais pas comment je peux resoudre ce problème.

  20. #40
    Membre habitué
    Profil pro
    Inscrit en
    Février 2003
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 136
    Points : 143
    Points
    143
    Par défaut
    sinon, tu peux toujours utiliser jguard...
    :-)
    si tu postes tes questions sur le forum de jguard sur sourceforge, tu auras la plupart du temps des réponses très rapides.
    et de temps en temps, je passe sur developpez.com pour répondre aussi.
    dnc n'hésite pas!

    :-p

    @+,

    Charles.
    www.jguard.net
    ps:pour répondre à une question précédente, jguard ne requiert pas spring

Discussions similaires

  1. Bien créer une application multi-langues ? Unicode ou non ?
    Par Maxime Abbey dans le forum Composants VCL
    Réponses: 28
    Dernier message: 10/09/2007, 18h20
  2. Réponses: 15
    Dernier message: 15/05/2006, 10h26
  3. [API][Système] Appel d'une application externe via java
    Par Tasslekender dans le forum Général Java
    Réponses: 2
    Dernier message: 17/03/2006, 15h13
  4. Développement d'une application multi-sites ?
    Par ChrisPM dans le forum Architecture
    Réponses: 7
    Dernier message: 09/11/2005, 14h22
  5. Accès à une application ouverte (OLE Automation ?)
    Par PascalB dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/06/2002, 15h39

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