src/it/finsiel/siged/mvc/business/FirmaDigitaleDelegate.java
public ActionMessages aggiornaListaCertificatiRevocati() {
        // get all CA_CRL
        ActionMessages errors = new ActionMessages();
        Iterator itUrls;
        try {
            itUrls = dao.getPuntiDistribuzioneCRL().iterator();
        } catch (DataException e1) {
            errors
                    .add("generale", new ActionMessage("errore.crl.generale",
                            "Impossibile leggere dalla base dati.\n"
                                    + e1.getMessage()));
            return errors;
        }
        // for each CRL URL --> cruCRL
        while (itUrls.hasNext()) {
            CrlUrlVO vo = (CrlUrlVO) itUrls.next();
            logger.info("Checking for CRL update of CA id:" + vo.getCaId());
            Date lastUpdate = vo.getDataEmissione();
            byte[] bytes = null;
            boolean gotData = false;
            boolean crlValidFormat = false;
            boolean dataSaved = false;
            try {
                if (ProtocolConstants.HTTP.equalsIgnoreCase(vo.getTipo())) {
                    // download from http
                    bytes = HttpUtil.writeToStream(vo.getUrl());
                    gotData = bytes != null;
                } else if (ProtocolConstants.HTTPS.equalsIgnoreCase(vo
                        .getTipo())) {
                    // download from https
                    bytes = HttpUtil.writeToStreamFromHttps(vo.getUrl());
                    gotData = bytes != null;
                } else if (ProtocolConstants.LDAP
                        .equalsIgnoreCase(vo.getTipo())) {
                    // download from ldap
                    bytes = LdapUtil.downloadCRLfromURL(vo.getUrl());
                    gotData = bytes != null;
                } else {
                    throw new Exception("Protocollo non supportato:"
                            + vo.getTipo());
                }
                if (bytes != null && bytes.length > 0) {
                    X509CRL curCRL = VerificaFirma.getCRL(bytes);
                    Set revokedCertificates = curCRL.getRevokedCertificates();
                    crlValidFormat = true;
                    if (lastUpdate == null
                            || curCRL.getThisUpdate().after(lastUpdate)) {
                        dao.salvaListaCertificatiRevocati(revokedCertificates,
                                vo.getCaId(), vo.getId().intValue());
                        dataSaved = true;
                    }
                } else {
                    throw new Exception(
                            "Errore nell'elaborazione dei dati della CRL:"
                                    + vo.getUrl());
                }
            } catch (Exception e) {
                if (gotData) {
                    if (crlValidFormat) {
                        if (dataSaved) {
                            // dovrebbe essere irrangiungibile questo punto.....
                        } else {
                            // errore nel salvataggio della CRL nella base dati:
                            // set stato su ErroreSalvataggio
                            dao.setStatoErroreCRL(vo.getId().intValue(),
                                    Parametri.CRL_ERRORE_DB);
                        }
                    } else {
                        // link ok ma dati non di tipo CRL valido: set statoCRL
                        // su ErroreDownload
                        dao.setStatoErroreCRL(vo.getId().intValue(),
                                Parametri.CRL_ERRORE_FORMATO);
                    }
                } else {
                    // errore nel download della CRL, set statoCRL su
                    // ErrorDownload;
                    dao.setStatoErroreCRL(vo.getId().intValue(),
                            Parametri.CRL_ERRORE_DOWNLOAD);
                }
                errors.add("generale", new ActionMessage("errore.crl.generale",
                        "Errore nel salvataggio dei dati:" + e.getMessage()));
                logger.error("", e);
            }
        }
        return errors;
    }
/**
     * Aggiorna la lista dei Certificati Revocati di tutte le CA presenti nella
     * base dati.
     * 
     * @return ArrayList Contenente tutti gli eventuali messaggi di errore
     *         riscontrati durante l'operazione.
     */
Aggiorna la lista dei Certificati Revocati di tutte le CA presenti nella
base dati.

@return ArrayList Contenente tutti gli eventuali messaggi di errore
riscontrati durante l'operazione.
Aggiorna la lista dei Certificati Revocati di tutte le CA presenti nella base dati . @return ArrayList Contenente tutti gli eventuali messaggi di errore riscontrati durante l ' operazione .
public ActionMessages aggiornaListaCertificatiRevocati() {
        ActionMessages errors = new ActionMessages();
        Iterator itUrls;
        try {
            itUrls = dao.getPuntiDistribuzioneCRL().iterator();
        } catch (DataException e1) {
            errors
                    .add("generale", new ActionMessage("errore.crl.generale",
                            "Impossibile leggere dalla base dati.\n"
                                    + e1.getMessage()));
            return errors;
        }
        while (itUrls.hasNext()) {
            CrlUrlVO vo = (CrlUrlVO) itUrls.next();
            logger.info("Checking for CRL update of CA id:" + vo.getCaId());
            Date lastUpdate = vo.getDataEmissione();
            byte[] bytes = null;
            boolean gotData = false;
            boolean crlValidFormat = false;
            boolean dataSaved = false;
            try {
                if (ProtocolConstants.HTTP.equalsIgnoreCase(vo.getTipo())) {
                    bytes = HttpUtil.writeToStream(vo.getUrl());
                    gotData = bytes != null;
                } else if (ProtocolConstants.HTTPS.equalsIgnoreCase(vo
                        .getTipo())) {
                    s
                    bytes = HttpUtil.writeToStreamFromHttps(vo.getUrl());
                    gotData = bytes != null;
                } else if (ProtocolConstants.LDAP
                        .equalsIgnoreCase(vo.getTipo())) {
                    bytes = LdapUtil.downloadCRLfromURL(vo.getUrl());
                    gotData = bytes != null;
                } else {
                    throw new Exception("Protocollo non supportato:"
                            + vo.getTipo());
                }
                if (bytes != null && bytes.length > 0) {
                    X509CRL curCRL = VerificaFirma.getCRL(bytes);
                    Set revokedCertificates = curCRL.getRevokedCertificates();
                    crlValidFormat = true;
                    if (lastUpdate == null
                            || curCRL.getThisUpdate().after(lastUpdate)) {
                        dao.salvaListaCertificatiRevocati(revokedCertificates,
                                vo.getCaId(), vo.getId().intValue());
                        dataSaved = true;
                    }
                } else {
                    throw new Exception(
                            "Errore nell'elaborazione dei dati della CRL:"
                                    + vo.getUrl());
                }
            } catch (Exception e) {
                if (gotData) {
                    if (crlValidFormat) {
                        if (dataSaved) {
                        } else {
                            dao.setStatoErroreCRL(vo.getId().intValue(),
                                    Parametri.CRL_ERRORE_DB);
                        }
                    } else {
                        dao.setStatoErroreCRL(vo.getId().intValue(),
                                Parametri.CRL_ERRORE_FORMATO);
                    }
                } else {
                    dao.setStatoErroreCRL(vo.getId().intValue(),
                            Parametri.CRL_ERRORE_DOWNLOAD);
                }
                errors.add("generale", new ActionMessage("errore.crl.generale",
                        "Errore nel salvataggio dei dati:" + e.getMessage()));
                logger.error("", e);
            }
        }
        return errors;
    }
public ActionMessages aggiornaListaCertificatiRevocati ( ) { ActionMessages errors = new ActionMessages ( ) ; Iterator itUrls ; try { itUrls = dao . getPuntiDistribuzioneCRL ( ) . iterator ( ) ; } catch ( DataException e1 ) { errors . add ( "generale" , new ActionMessage ( "errore.crl.generale" , "Impossibile leggere dalla base dati.\n" + e1 . getMessage ( ) ) ) ; return errors ; } while ( itUrls . hasNext ( ) ) { CrlUrlVO vo = ( CrlUrlVO ) itUrls . next ( ) ; logger . info ( "Checking for CRL update of CA id:" + vo . getCaId ( ) ) ; Date lastUpdate = vo . getDataEmissione ( ) ; byte [ ] bytes = null ; boolean gotData = false ; boolean crlValidFormat = false ; boolean dataSaved = false ; try { if ( ProtocolConstants . HTTP . equalsIgnoreCase ( vo . getTipo ( ) ) ) { bytes = HttpUtil . writeToStream ( vo . getUrl ( ) ) ; gotData = bytes != null ; } else if ( ProtocolConstants . HTTPS . equalsIgnoreCase ( vo . getTipo ( ) ) ) { bytes = HttpUtil . writeToStreamFromHttps ( vo . getUrl ( ) ) ; gotData = bytes != null ; } else if ( ProtocolConstants . LDAP . equalsIgnoreCase ( vo . getTipo ( ) ) ) { bytes = LdapUtil . downloadCRLfromURL ( vo . getUrl ( ) ) ; gotData = bytes != null ; } else { throw new Exception ( "Protocollo non supportato:" + vo . getTipo ( ) ) ; } if ( bytes != null && bytes . length > 0 ) { X509CRL curCRL = VerificaFirma . getCRL ( bytes ) ; Set revokedCertificates = curCRL . getRevokedCertificates ( ) ; crlValidFormat = true ; if ( lastUpdate == null || curCRL . getThisUpdate ( ) . after ( lastUpdate ) ) { dao . salvaListaCertificatiRevocati ( revokedCertificates , vo . getCaId ( ) , vo . getId ( ) . intValue ( ) ) ; dataSaved = true ; } } else { throw new Exception ( "Errore nell'elaborazione dei dati della CRL:" + vo . getUrl ( ) ) ; } } catch ( Exception e ) { if ( gotData ) { if ( crlValidFormat ) { if ( dataSaved ) { } else { dao . setStatoErroreCRL ( vo . getId ( ) . intValue ( ) , Parametri . CRL_ERRORE_DB ) ; } } else { dao . setStatoErroreCRL ( vo . getId ( ) . intValue ( ) , Parametri . CRL_ERRORE_FORMATO ) ; } } else { dao . setStatoErroreCRL ( vo . getId ( ) . intValue ( ) , Parametri . CRL_ERRORE_DOWNLOAD ) ; } errors . add ( "generale" , new ActionMessage ( "errore.crl.generale" , "Errore nel salvataggio dei dati:" + e . getMessage ( ) ) ) ; logger . error ( "" , e ) ; } } return errors ; }
Aggiorna la lista dei Certificati Revocati di tutte le CA presenti nella
 base dati.
Aggiorna la lista dei Certificati Revocati di tutte le CA presenti nella base dati .
// get all CA_CRL // for each CRL URL --> cruCRL // download from http // download from https // download from ldap // dovrebbe essere irrangiungibile questo punto..... // errore nel salvataggio della CRL nella base dati: // set stato su ErroreSalvataggio // link ok ma dati non di tipo CRL valido: set statoCRL // su ErroreDownload // errore nel download della CRL, set statoCRL su // ErrorDownload;