Bonjour,

Je dois faire évoluer une application Java pour sécuriser les traces écrites par celle-ci, et malgré toutes mes recherches je ne trouve pas comment le faire. Je viens donc ici dans l'espoir que quelqu'un puisse m'indiquer une solution ou une piste pour répondre à mon besoin.

Mon application écrit aujourd'hui des traces des actions effectuées par ses utilisateurs dans un fichier de log en utilisant la classe Logger.
A chaque endroit de l'application où j'ai besoin d'écrire dans le fichier, je fais appel à la fonction 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
	public static Logger getLOGGER(){
		if(LOGGER == null){
			LOGGER = Logger.getAnonymousLogger();
			try {
				SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
				String date = sdf.format(new Date());
				String repLogs = ParamsXml.getInstance().getParams().get("logs").get("repertoire");
				String fileName = repLogs + "/traces" + date + ".log";
				FileHandler fHandler = new FileHandler(fileName, 0, 1, true);
				fHandler.setFormatter(new MyFormatter());
				LOGGER.addHandler(fHandler);
				LogManager.getLogManager().reset();
			} 
			catch (SecurityException e) {e.printStackTrace();}
			catch (IOException e) {e.printStackTrace();}
		}
		return LOGGER;
	}
Actuellement, ce fichier est écrit sur le disque dur où est exécutée l'application, avec les droits de l'utilisateur.
Le fichier est donc éditable par l'utilisateur, ce qui n'est pas sécurisé.
Mon objectif est donc d'écrire ce même fichier dans un répertoire où l'utilisateur n'aura que des droits en lecture, et donc que l'application n'écrive pas le fichier avec les droits de l'utilisateurs, mais ceux d'un compte technique qui sera autorisé à écrire.

Sauriez-vous comment spécifier un compte pour l'écriture d'un fichier de log au travers de la classe Logger ?

Merci d'avance pour votre aide.