Newsgroup: it.comp.java
Titolo: passare la password ad un programma

Ho visto un programma java (non applicazione web, ma installato sul pc )che 
se cliccavi l'icona sul desktop si apriva la maschera di login dove inserire 
le credenziali.
 
Per i pigri era possibile avviare il programma da riga di comando , facendo 
seguire al nome dell'eseguibile  le credenziali, esempio
 
mioprogramma.exe   -pippo  -password
 
Tale stringa la si può mettere anche nelle proprietà del link che lancia 
l'icona sul desktop...per cui si apre il programma subito senza digitare le 
credenziali.
 
Come si realizza tale trucco?
 
grazie 
 


L'estensione .exe non fa pensare propriamente ad un programma java, in 
genere un programma java e' contenuto in un file .jar.
In un programma java gli argomenti vengono passati alla classe con il 
metodo main, ad esempio:
public class MioProgramma {
   public static voin main(String[] args) {
     String user = null, password = null;
     if (args != null && args.length == 2) {
	user = args[0].substring(1).trim();
         password = args[1].substring(1).trim();
     } else {
         Login login = new Login();
         if (login.showDialog() == 0) {
            user = login.getUser();
            password = login.getPassword();
         }
     }
     if (user == null || user.trim().isEmpty() ||
         password == null || password .trim().isEmpty())
       system.exit(1);
     // il processo abbia inizio
   }
}
 
dove la classe Login puo' essere realizzata semplicemente estendendo o 
incapsulando una Dialog. Ma troverai mille esempi su internet.
 

 Come si realizza tale trucco?
 
Il trucco e` facile da realizzare, ma e` una pratica sicura? Sei 
veramente sicuro di voler tenere la password costantemente in chiaro in 
un link all'eseguibile?
 
-- 
4ndre4
"The use of COBOL cripples the mind; its teaching should, therefore, be 
regarded as a criminal offense." (E. Dijkstra)
"Ora, questo "Delta11" non è nulla di più di uno scemo del villaggio" - 
(L'Accalappiafasci)

 
 
"Dr.UgoGagliardelli"  ha scritto nel messaggio 
news:nrdc4c$19lj$1...@gioia.aioe.org...
 
<<In un programma java gli argomenti vengono passati alla classe con il
<metodo main, ad esempio:
 
ok, grazie 
 

 
 
"4ndre4"  ha scritto nel messaggio news:nrdivt$vbi$3...@dont-email.me...
 
<Il trucco e` facile da realizzare, ma e` una pratica sicura? Sei
<veramente sicuro di voler tenere la password costantemente in chiaro in
<un link all'eseguibile?
 
in effetti è un gestionale di fatturazione, strano che il programmatore 
abbia previsto questa possibilità... 
 

 ha scritto:

..Probabilmente è stato cacciaro prima che correggesse stà strunzata...
 
 

 
 
"Dr.UgoGagliardelli"  ha scritto nel messaggio 
news:nrdc4c$19lj$1...@gioia.aioe.org...
<user = args[0].substring(1).trim();
 
come mai prendi solo la prima sottostringa? 
 

-pippo -password guarda il primo post 
Deve saltare il dash
Ennesima bizzarria di questo main😂!

Scusa Ugo mi sono confuso, pensavo che il codice main fosse dall'OP. Il main fa correttamente il suo lavoro,la bizzarria è nel fatto che il gestionale accetti user e password mettendo un trattino davanti. Ha senso se ci fosse un prefisso che indichi che parametro è, ma il prefisso non c'è e quindi l'unico modo di interpretarlo è posizionale, ma allora non ha senso il trattino

 mioprogramma.exe   -pippo  -password
 
ho immaginato che il trattino non facesse parte del nome, quindi per 
evitarlo si prende la sottostringa a partire dal secondo carattere, 
ovvero dall'indice 1.

 ha scritto:

probabilmente non ha senso tutta la parte di gestione credenziali...
 
 

 
 
"Dr.UgoGagliardelli"  ha scritto nel messaggio 
news:ns2me4$v5$1...@gioia.aioe.org...
 
<<ho immaginato che il trattino non facesse parte del nome, quindi per
<evitarlo si prende la sottostringa a partire dal secondo carattere,
<ovvero dall'indice 1.
 
ok