Bonjour,

J'écrit actuellement un script en Java qui doit me récupérer le nom d'utilisateur de la session courante sous Windows.

Pour cela j'utilise un applet ainsi qu'une classe "utilisateur".
Voici leurs code :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
public class Utilisateur
{
	private String nom;
	public Utilisateur()
	{
		this.nom = System.getProperty("user.name");
	}
	public String getNom()
	{
		return this.nom;
	}
}
et
Code java : 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
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
public class Applet extends JApplet {// La classe AppletSommets hérite de la classe APPLET	
	public void init() {
		Utilisateur unUtilisateur = new Utilisateur();//On créé un utilisateur
		String nom_util = unUtilisateur.getNom();//on récupère son nom
 
		final JTextField txtReponse = new JTextField();//on construit le champ qui recevra le nom
		txtReponse.setText(nom_util);//on met le nom dans un champ de l'applet
 
		JPanel pnl = new JPanel (new java.awt.GridLayout (1,1,1,1));//on constrauit le panel
		pnl.add (txtReponse);//On ajoute le champ au panel
		getContentPane().add (pnl, BorderLayout.NORTH);//on met le panel dans l'applet
	}
}

Cependant ça ne fonctionne pas, l'applet m'affiche une jolie croix rouge et le message d'erreur de la console JAVA est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
java.security.AccessControlException: access denied (java.util.PropertyPermission user.name read)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
	at java.lang.System.getProperty(Unknown Source)
	at Utilisateur.<init>(Utilisateur.java:6)
	at Applet.init(Applet.java:8)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
D'après ce que j'en déduis c'est un problème de sécurité, mais comment le contourner?

Merci.