PDA

Visualizza la versione completa : [Java] Gestione EVENTO


fraper
24-02-2005, 12:56
Salve a tutti...sto "lavorando" con i certificati digitali...non so quanti di voi hanno lavorato
con essi, ma cmq non credo che serva conoscere package o metodi specifici...fondamentalmente il
mio problema è il seguente...
ho un main che chiama una classe "GestKeyStore()"...adesso in questa classe c'è la creazione di un input stream per l'input di un file (il certificato)....successivamente c'è applicato un metodo
per verificare la validità temporale...so già a priori che la data è scaduta ma cmq lo eseguo lo
stesso...ricevo un messaggio di errore...che cmq credo sia normale perchè mi dice che la validità temporale del certificato "has expired"...cioè è scaduta...guardando la documentazione relativa al metodo in questione mi dice di aggiungere la gestione dell'evento "expired"...ma non sò come fare...adesso vi posto il codice e vi chiederei gentilmente cosa e dove inserire la gestione di tale evento...grazie



import java.io.*;
import java.util.*;
import javax.crypto.*;
import java.security.*;
import java.security.cert.*;
import java.math.*;

public class GestKeyStore
{
protected int RTValue = 100; //valore di debug (server per verificare)
Signature sig;
//Costruttore
public GestKeyStore (){}

public int portaChiavi (String Certificato_file){

try{
RTValue = 101;

//***************************CREO UN NUOVO INPUTSTREAM PER LA LETTURA DEL FILE-CERTIFICATO***********************

FileInputStream fis = new FileInputStream(Certificato_file);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate certificato = (X509Certificate)cf.generateCertificate(fis);

//***************************VERIFICO LA VALIDITA' TEMPORALE DEL CERTIFICATO***********************

//certificato.checkValidity();

//************************************************** ***********************************************
fis.close();

}
catch (Exception ex){
System.out.println("Errore: "+ex.getMessage());
ex.printStackTrace();
}
return RTValue;

}

};


nella documentazione mi dà questo...

METODO "checkValidity"

public abstract void checkValidity()
throws CertificateExpiredException,
CertificateNotYetValidException

Checks that the certificate is currently valid. It is if the current date and time are within the validity period given in the certificate.

Throws:
CertificateExpiredException - if the certificate has expired.

Ringrazio anticipatamente

MMarzia
24-02-2005, 13:14
il linguaggio va sempre indicato nel titolo, come da regolamento

fraper
24-02-2005, 15:14
hai ragione scusa....ma....suggerimenti a riguardo???

unomichisiada
24-02-2005, 17:30
Originariamente inviato da fraper
hai ragione scusa....ma....suggerimenti a riguardo???
Apsetta fammi capire?In pratica tu devi fare qualcosa di diverso dallo stampare solo un messaggio di errore quando il documento è scaduto giusto?Allora al posto di

catch (Exception ex)
{
System.out.println("Errore: "+ex.getMessage());ex.printStackTrace();
}
devi inserire qualcosa tipo

catch (CertificateExpiredException ex){
Gestisci(); }
Dove Gestisci() è un metodo scrittto date in cui svolgi tutte le operazioni necessarie.Non so se ho capito il problema però...

fraper
25-02-2005, 10:52
ok,grazie, adesso provo...

Loading