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

Applets Java Discussion :

Applet et user name client


Sujet :

Applets Java

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut Applet et user name client
    Bonjour,

    Je suis en train de développer un petit Applet pour récupérer le nom de l'utilisateur local (sous XP en intranet uniquement). Je suis tombé sur quelques sujets qui m'ont aidé sur ce site , mais malgré tout, je n'arrive pas à obtenir les droits nécessaires pour lire mon paramètre user.name comme je souhaiterai.

    J'ai bien évidement tenté de faire un certificat, sans succès, puis de modifier le fichier java.policy sur mon poste. Quand j'ajoute un :

    permission java.util.PropertyPermission "user.name", "read";

    là ça fonctionne, mon user.name est bien lu

    Sauf que, pour des raison pratique et transparente pour les utilisateurs, je ne veux pas avoir à modifier tous les java.policy de mon parc client !

    J'ai pu lire qu'il était possible de modifier ces droits un peu a la volée, a l'aide de la classe AccesController. J'ai intrégré cette classe, comme indiqué dans la doc java, mais mes droits sont toujours denied en ce qui concerne la lecture de mon user.name

    import javax.swing.*;
    import java.awt.*;
    import java.security.*;

    public class InfoSystem extends JApplet {
    public void init() {
    String userName = (String) AccessController.doPrivileged (new PrivilegedUserNameAccess());

    final JTextField txtReponse = new JTextField();
    txtReponse.setText(userName);

    JPanel pnl = new JPanel (new java.awt.GridLayout (1,1,1,1));
    pnl.add (txtReponse);
    getContentPane().add (pnl, BorderLayout.NORTH);
    }
    }

    class PrivilegedUserNameAccess implements java.security.PrivilegedAction {
    public Object run() {
    return System.getProperty ("user.name");
    }
    }

    Quelqu'un saurait il pourquoi, ma classe "privilège", ne me donne pas les droits voulu ?

    Merci a tous par avance

  2. #2
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut
    Finalement, j'ai trouvé une solution à mon problème. Je vais faire un petit exemple simple pour celles et ceux qui sont intéressé, et post tout ça d'ici peu

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut
    Voici l'exemple complet d'une Applet capable de lire le nom de l'utilisateur courant du poste client.

    D'abord, 2 choses indispensables pour que cela fonctionne :

    1. Le security manager doit être désactivé dans le code java
    2. L'applet doit être signée


    Le code de l'applet :
    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
    import javax.swing.*;
     
    public class UserName extends JApplet {
     
    	String userName;
     
    	public void init() {
    		try {
    			System.setSecurityManager(null);
    		} catch (Exception exp) {
    			System.out.println("Impossible de lire les informations du systeme");
    			System.exit(0);
    		}	
     
    		userName = System.getProperty("user.name");
    		System.out.println("Le userName est : " + userName);
    	}	
     
    }
    L'autorisation en lecture du user.name, sera réalisée notamment grâce au System.setSecurityManager(null); En le mettant à null, on ignore temporairement, toutes les règles définies dans le fichier java.policy

    Maintenant, il faut créer une archive .jar que l'on va ensuite signer à l'aide d'une clé, pour autoriser la lecture des propriétés du système. Les outils dont vous avez besoin (jar.exe, keytool.exe et jarsigner.exe) se trouvent au même endroit que votre compilateur (donc, sous bin/ en principe).

    Pour créer le jar :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jar -cfv ./UserName.jar ./UserName.class
    Pour créer une clé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    keytool  -genkey -alias maCle -validity 365
    L'option -validity permet de spécifier la durée de vie du certificat. Plusieurs questions seront posées (nom, prénom, organisme etc...). Surtout, notez bien le mot de passe du keystore, et celui de votre cle, car vous en aurez besoin à chaque nouvelle signature d'archive.

    Pour signer ensuite le jar avec la clé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jarsigner ./UserName.jar maCle
    Ici on vous demandera le mot de passe de votre keystore, puis celui de votre clé.

    Et voila, votre archive est maintenant signée

    Dans votre page html appelez votre applet de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <applet code="UserName.class" archive="UserName.jar" width="300px" height="300px"></applet>
    Rechargez la page, autorisez le certificat, et admirez ensuite le résultat dans la console java de votre navigateur

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

Discussions similaires

  1. récupérer l'user name à partir de l'uid
    Par Hypnocrate dans le forum Administration système
    Réponses: 2
    Dernier message: 02/07/2007, 16h50
  2. user name et password oracle10G
    Par zsafae dans le forum Oracle
    Réponses: 1
    Dernier message: 29/04/2006, 13h34
  3. [DBExpress] invalid user name/password sous XP
    Par Rudy 34 dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/02/2005, 15h25
  4. Connexion sur une base via BDE (pb de User Name)
    Par Sharky21 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/12/2004, 10h31
  5. eliminisation du masque user name/ passeword du oracle
    Par kkhaled dans le forum Bases de données
    Réponses: 3
    Dernier message: 05/07/2004, 17h23

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