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

Weblogic Java Discussion :

[Weblogic 8.1] modifier le password d'un user par programmation


Sujet :

Weblogic Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 46
    Points : 38
    Points
    38
    Par défaut [Weblogic 8.1] modifier le password d'un user par programmation
    Bonjour,

    Pour une petit application Java, j'utilise le mecanisme d'authentification de weblogic 8.1 (realm).
    Le client etant ecrit en SWT, la communication et l'acces au serveur se fait au moyen d'EJB.
    L'authentification ne pose pas de probleme.

    Par contre, je dois permettre aux utilisateurs de changer leur mot de passe.
    J'ai trouvé dans les api fournies les interfaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    weblogic.management.security.authentication.UserEditorMBean
    weblogic.management.security.authentication.UserPasswordEditorMBean
    celles ci possedent la methode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public void changeUserPassword(String userName, String oldPassword, String newPassword)
    mais je ne trouve pas le moyen de récupérer une classe les implementants dans une methode d'un EJB (bean).

    Merci d'avance pour votre aide.

  2. #2
    Membre habitué
    Inscrit en
    Décembre 2002
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 186
    Points : 130
    Points
    130
    Par défaut
    je ne connais pas weblogic mais
    regarde du coté des Mbean (jmx) qui gerent la sécurité

  3. #3
    Membre actif Avatar de coco62
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 237
    Points : 278
    Points
    278
    Par défaut
    Au niveau weblo, les mbean sont accesibles par des EJB, les interfaces que tu as découvert doivent être ceux des ejb utilisés par la console weblo.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 46
    Points : 38
    Points
    38
    Par défaut Solution
    Bonjour,

    Merci à f273345 et mauvais_karma pour leur réponse.

    Voici comment modifier le mot de passe d'un utilisateur (méthode à insérée dans le bean de l'EJB) valable uniquement pour Weblogic Server
    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
     
    	public void changerMotDePasse(String ancien, String nouveau) throws NamingException, NotFoundException, InvalidParameterException {
     
    		String userName = getSessionContext().getCallerPrincipal().getName();
    		DefaultAuthenticatorMBean authBean = null;
    		Properties h = new Properties();
    		h.put(Context.SECURITY_PRINCIPAL, "weblogic");
    		h.put(Context.SECURITY_CREDENTIALS, "weblogic");
    		Context ctx = new InitialContext(h);
    		MBeanHome mbeanHome = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
    		DomainMBean dmb = mbeanHome.getActiveDomain();
    		SecurityConfigurationMBean scmb = dmb.getSecurityConfiguration();
    		RealmMBean rmb = scmb.findDefaultRealm();
    		AuthenticationProviderMBean[] providers = rmb.getAuthenticationProviders();
    		for (int i = 0; i < providers.length; i++) {
    			if (providers[i] instanceof DefaultAuthenticatorMBean) {
    				authBean = (DefaultAuthenticatorMBean) providers[i];
    				break;
    			}
    		}		
    		if (authBean != null) {
    			authBean.changeUserPassword(userName, ancien, nouveau);
    		}
    	}
    Malheureusement, on doit utiliser un profil administateur (weblogic/weblogic) dans le code lors du lookup sur MBeanHome.
    BEA devrait permettre prochainement à un utilisateur de changer son propre mot de passe dans un Service Pack pour Weblogic Server 9.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 31/12/2013, 15h16
  2. Modifier le password d'un user à partir d'une webpart
    Par nassim12 dans le forum SharePoint
    Réponses: 3
    Dernier message: 16/04/2009, 13h13
  3. Réponses: 9
    Dernier message: 02/02/2009, 13h39
  4. Modifier l'icone de l'exe par programmation
    Par lepirate dans le forum WinDev
    Réponses: 1
    Dernier message: 06/07/2008, 22h13
  5. [IBSecurityService] Modifier le password d'un user
    Par Benjamin GAGNEUX dans le forum Connexion aux bases de données
    Réponses: 3
    Dernier message: 14/10/2004, 20h51

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