SoggettiVerificaCertificati.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.web.ctrlstat.servlet.soggetti;
- import java.net.URLEncoder;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Properties;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import org.apache.struts.action.Action;
- import org.apache.struts.action.ActionForm;
- import org.apache.struts.action.ActionForward;
- import org.apache.struts.action.ActionMapping;
- import org.openspcoop2.core.commons.Filtri;
- import org.openspcoop2.core.commons.Liste;
- import org.openspcoop2.core.id.IDSoggetto;
- import org.openspcoop2.core.registry.CredenzialiSoggetto;
- import org.openspcoop2.core.registry.ProtocolProperty;
- import org.openspcoop2.core.registry.Soggetto;
- import org.openspcoop2.core.registry.constants.PddTipologia;
- import org.openspcoop2.protocol.engine.ProtocolFactoryManager;
- import org.openspcoop2.protocol.sdk.IProtocolFactory;
- import org.openspcoop2.protocol.sdk.constants.ConsoleOperationType;
- import org.openspcoop2.protocol.sdk.properties.ConsoleConfiguration;
- import org.openspcoop2.protocol.sdk.properties.IConsoleDynamicConfiguration;
- import org.openspcoop2.protocol.sdk.properties.ProtocolProperties;
- import org.openspcoop2.protocol.sdk.registry.IConfigIntegrationReader;
- import org.openspcoop2.protocol.sdk.registry.IRegistryReader;
- import org.openspcoop2.protocol.sdk.registry.RegistryNotFound;
- import org.openspcoop2.utils.UtilsException;
- import org.openspcoop2.utils.certificate.ArchiveLoader;
- import org.openspcoop2.utils.certificate.Certificate;
- import org.openspcoop2.web.ctrlstat.core.CertificateChecker;
- import org.openspcoop2.web.ctrlstat.core.ControlStationCore;
- import org.openspcoop2.web.ctrlstat.core.ConsoleSearch;
- import org.openspcoop2.web.ctrlstat.costanti.CostantiControlStation;
- import org.openspcoop2.web.ctrlstat.dao.PdDControlStation;
- import org.openspcoop2.web.ctrlstat.servlet.GeneralHelper;
- import org.openspcoop2.web.ctrlstat.servlet.config.ConfigurazioneCore;
- import org.openspcoop2.web.ctrlstat.servlet.config.ConfigurazioneCostanti;
- import org.openspcoop2.web.ctrlstat.servlet.connettori.ConnettoriCostanti;
- import org.openspcoop2.web.ctrlstat.servlet.pdd.PddCore;
- import org.openspcoop2.web.ctrlstat.servlet.protocol_properties.ProtocolPropertiesCostanti;
- import org.openspcoop2.web.lib.mvc.BinaryParameter;
- import org.openspcoop2.web.lib.mvc.Costanti;
- import org.openspcoop2.web.lib.mvc.DataElement;
- import org.openspcoop2.web.lib.mvc.DataElementType;
- import org.openspcoop2.web.lib.mvc.ForwardParams;
- import org.openspcoop2.web.lib.mvc.GeneralData;
- import org.openspcoop2.web.lib.mvc.PageData;
- import org.openspcoop2.web.lib.mvc.Parameter;
- import org.openspcoop2.web.lib.mvc.ServletUtils;
- import org.openspcoop2.web.lib.mvc.TipoOperazione;
- /**
- * SoggettiVerificaCertificati
- *
- * @author Andrea Poli (poli@link.it)
- * @author Giuliano Pintori (pintori@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- *
- */
- public class SoggettiVerificaCertificati extends Action {
-
- @Override
- public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
- HttpSession session = request.getSession(true);
- // Inizializzo PageData
- PageData pd = new PageData();
- GeneralHelper generalHelper = new GeneralHelper(session);
- // Inizializzo GeneralData
- GeneralData gd = generalHelper.initGeneralData(request);
- try {
-
- SoggettiHelper soggettiHelper = new SoggettiHelper(request, pd, session);
-
- String id = soggettiHelper.getParameter(SoggettiCostanti.PARAMETRO_SOGGETTO_ID);
- long idSogg = Long.parseLong(id);
- String nomeprov = soggettiHelper.getParameter(SoggettiCostanti.PARAMETRO_SOGGETTO_NOME);
- String tipoprov = soggettiHelper.getParameter(SoggettiCostanti.PARAMETRO_SOGGETTO_TIPO);
-
- String alias = soggettiHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_SISTEMA_NODO_CLUSTER);
-
- // Preparo il menu
- soggettiHelper.makeMenu();
-
- SoggettiCore soggettiCore = new SoggettiCore();
- ConfigurazioneCore confCore = new ConfigurazioneCore(soggettiCore);
- PddCore pddCore = new PddCore(soggettiCore);
-
- String verificaCertificatiFromLista = soggettiHelper.getParameter(CostantiControlStation.PARAMETRO_VERIFICA_CERTIFICATI_FROM_LISTA);
- boolean arrivoDaLista = "true".equalsIgnoreCase(verificaCertificatiFromLista);
-
- // Prendo la lista di aliases
- List<String> aliases = confCore.getJmxPdDAliases();
- if(aliases==null || aliases.isEmpty()){
- throw new Exception("Pagina non prevista, la sezione configurazione non permette di accedere a questa pagina, se la configurazione non e' corretta");
- }
-
- Soggetto soggettoRegistry = null;
- org.openspcoop2.core.config.Soggetto soggettoConfig = null;
-
- if(soggettiCore.isRegistroServiziLocale()){
- soggettoRegistry = soggettiCore.getSoggettoRegistro(idSogg);
- }
- soggettoConfig = soggettiCore.getSoggetto(idSogg);
-
- if(soggettiCore.isRegistroServiziLocale()){
- nomeprov = soggettoRegistry.getNome();
- tipoprov = soggettoRegistry.getTipo();
- }
- else{
- nomeprov = soggettoConfig.getNome();
- tipoprov = soggettoConfig.getTipo();
- }
- String protocollo = soggettiCore.getProtocolloAssociatoTipoSoggetto(tipoprov);
-
-
- List<Parameter> parametersServletSoggettoChange = new ArrayList<>();
- Parameter pIdSoggetto = new Parameter(SoggettiCostanti.PARAMETRO_SOGGETTO_ID, id);
- Parameter pNomeSoggetto = new Parameter(SoggettiCostanti.PARAMETRO_SOGGETTO_NOME, nomeprov);
- Parameter pTipoSoggetto = new Parameter(SoggettiCostanti.PARAMETRO_SOGGETTO_TIPO, tipoprov);
- parametersServletSoggettoChange.add(pIdSoggetto);
- parametersServletSoggettoChange.add(pNomeSoggetto);
- parametersServletSoggettoChange.add(pTipoSoggetto);
-
- // setto la barra del titolo
- List<Parameter> listParameter = new ArrayList<>();
- listParameter.add(new Parameter(SoggettiCostanti.LABEL_SOGGETTI, SoggettiCostanti.SERVLET_NAME_SOGGETTI_LIST));
-
- String labelSoggetto = null;
- if(soggettoRegistry!=null) {
- labelSoggetto = soggettiHelper.getLabelNomeSoggetto(protocollo, soggettoRegistry.getTipo() , soggettoRegistry.getNome());
- }
- else {
- labelSoggetto = tipoprov+"/"+nomeprov;
- }
-
- if(arrivoDaLista) {
- String labelVerifica = SoggettiCostanti.LABEL_SOGGETTI_VERIFICA_CERTIFICATI_DI + labelSoggetto;
- listParameter.add(new Parameter(labelVerifica, null));
- }
- else {
- listParameter.add(new Parameter(labelSoggetto,
- SoggettiCostanti.SERVLET_NAME_SOGGETTI_CHANGE,
- new Parameter(SoggettiCostanti.PARAMETRO_SOGGETTO_ID,soggettoRegistry.getId()+""),
- new Parameter(SoggettiCostanti.PARAMETRO_SOGGETTO_NOME,soggettoRegistry.getNome()),
- new Parameter(SoggettiCostanti.PARAMETRO_SOGGETTO_TIPO,soggettoRegistry.getTipo())));
- String labelVerifica = SoggettiCostanti.LABEL_SOGGETTI_VERIFICA_CERTIFICATI;
- listParameter.add(new Parameter(labelVerifica, null));
- }
-
- // setto la barra del titolo
- ServletUtils.setPageDataTitle(pd, listParameter );
-
- List<DataElement> dati = new ArrayList<>();
- dati.add(ServletUtils.getDataElementForEditModeFinished());
-
-
- // -- raccolgo dati
-
- boolean ssl = false;
- boolean sslManuale = false;
- int countSsl = 0;
- if(soggettoRegistry!=null) {
- for (int i = 0; i < soggettoRegistry.sizeCredenzialiList(); i++) {
- CredenzialiSoggetto c = soggettoRegistry.getCredenziali(i);
- if(org.openspcoop2.core.registry.constants.CredenzialeTipo.SSL.equals(c.getTipo())) {
- if(c.getCertificate()!=null) {
- ssl = true;
- countSsl++;
- }
- else {
- sslManuale=true;
- }
- }
- }
- }
- boolean piuCertificatiAssociatiEntita = countSsl>1;
-
- boolean verificaCertificatiEffettuata = false;
-
- if(!ssl) {
- if(sslManuale) {
- pd.setMessage(CostantiControlStation.LABEL_VERIFICA_CERTIFICATI_PRESENTE_SOLO_CONFIGURAZIONE_MANUALE,
- Costanti.MESSAGE_TYPE_INFO);
- }
- else {
- pd.setMessage(CostantiControlStation.LABEL_VERIFICA_CERTIFICATI_NON_PRESENTI,
- Costanti.MESSAGE_TYPE_INFO);
- }
-
- pd.disableEditMode();
-
- verificaCertificatiEffettuata = true;
- }
- else {
-
- boolean sceltaClusterId = soggettiCore.isVerificaCertificatiSceltaClusterId();
-
- if(aliases.size()==1 || alias!=null || !sceltaClusterId) {
-
- if(alias==null && !sceltaClusterId) {
- alias = CostantiControlStation.LABEL_VERIFICA_CONNETTORE_TUTTI_I_NODI;
- }
-
- // -- verifica
- List<String> aliasesForCheck = new ArrayList<>();
- boolean all = false;
- if(aliases.size()==1) {
- aliasesForCheck.add(aliases.get(0));
- }
- else if(CostantiControlStation.LABEL_VERIFICA_CONNETTORE_TUTTI_I_NODI.equals(alias)) {
- aliasesForCheck.addAll(aliases);
- all = true;
- }
- else {
- aliasesForCheck.add(alias);
- }
-
- CertificateChecker certificateChecker = null;
- if(all) {
- certificateChecker = soggettiCore.getJmxPdDCertificateChecker();
- }
- else {
- certificateChecker = soggettiCore.newJmxPdDCertificateChecker(aliasesForCheck);
- }
- StringBuilder sbDetailsError = new StringBuilder();
-
- int sogliaWarningGiorni = soggettiCore.getVerificaCertificatiWarningExpirationDays();
-
-
- String posizioneErrore = null;
- String extraErrore = null;
-
- // verifica sl
- StringBuilder sbDetailsWarningSsl = new StringBuilder();
- String posizioneWarningSsl = null;
- if(ssl) {
- certificateChecker.checkSoggetto(sbDetailsError, sbDetailsWarningSsl,
- ssl, soggettoRegistry,
- sogliaWarningGiorni);
- if(sbDetailsError.length()>0) {
- posizioneErrore = labelSoggetto;
- }
- else if(sbDetailsWarningSsl.length()>0) {
- posizioneWarningSsl = labelSoggetto;
- }
- }
-
- // analisi warning
- String warning = null;
- String posizioneWarning = null;
- String extraWarning = null;
- if(sbDetailsError.length()<=0 &&
- sbDetailsWarningSsl.length()>0) {
- warning = sbDetailsWarningSsl.toString();
- posizioneWarning = posizioneWarningSsl;
- }
-
- // esito
- List<String> formatIds = new ArrayList<>();
- soggettiCore.formatVerificaCertificatiEsito(pd, formatIds,
- (sbDetailsError.length()>0 ? sbDetailsError.toString() : null), extraErrore, posizioneErrore,
- warning, extraWarning, posizioneWarning,
- piuCertificatiAssociatiEntita);
-
- pd.disableEditMode();
-
- verificaCertificatiEffettuata = true;
-
- } else {
-
- DataElement deTestConnettivita = new DataElement();
- deTestConnettivita.setType(DataElementType.TITLE);
- deTestConnettivita.setLabel(SoggettiCostanti.LABEL_SOGGETTI_VERIFICA_CERTIFICATI);
- dati.add(deTestConnettivita);
-
- soggettiHelper.addVerificaCertificatoSceltaAlias(aliases, dati);
- }
- }
-
- pd.setLabelBottoneInvia(CostantiControlStation.LABEL_CONFIGURAZIONE_VERIFICA_CONNETTORE_BOTTONE);
-
- dati = soggettiHelper.addSoggettoHiddenToDati(dati, id,nomeprov, tipoprov);
-
- DataElement de = new DataElement();
- de.setValue(arrivoDaLista+"");
- de.setType(DataElementType.HIDDEN);
- de.setName(CostantiControlStation.PARAMETRO_VERIFICA_CERTIFICATI_FROM_LISTA);
- dati.add(de);
-
- pd.setDati(dati);
- if(verificaCertificatiEffettuata) {
-
- // verifica richiesta dal link nella lista, torno alla lista
- if(arrivoDaLista) {
-
- String filterDominioInterno = soggettiHelper.getParameter(SoggettiCostanti.PARAMETRO_SOGGETTO_FILTER_DOMINIO_INTERNO);
- boolean forceFilterDominioInterno = false;
- if("true".equalsIgnoreCase(filterDominioInterno)) {
- forceFilterDominioInterno = true;
- }
-
- boolean multiTenant = soggettiCore.isMultitenant();
-
- String userLogin = ServletUtils.getUserLoginFromSession(session);
-
- ConsoleSearch ricerca = (ConsoleSearch) ServletUtils.getSearchObjectFromSession(request, session, ConsoleSearch.class);
-
- int idLista = Liste.SOGGETTI;
-
- // poiche' esistono filtri che hanno necessita di postback salvo in sessione
- List<Soggetto> lista = null;
- if(soggettiCore.isRegistroServiziLocale() &&
- !ServletUtils.isSearchDone(soggettiHelper)) {
- lista = ServletUtils.getRisultatiRicercaFromSession(request, session, idLista, Soggetto.class);
- }
-
- ricerca = soggettiHelper.checkSearchParameters(idLista, ricerca);
-
- if(forceFilterDominioInterno) {
- ricerca.addFilter(idLista, Filtri.FILTRO_DOMINIO, SoggettiCostanti.SOGGETTO_DOMINIO_OPERATIVO_VALUE);
- }
- else if(!multiTenant && !soggettiHelper.isModalitaCompleta()) {
- ricerca.addFilter(idLista, Filtri.FILTRO_DOMINIO, SoggettiCostanti.SOGGETTO_DOMINIO_ESTERNO_VALUE);
- }
-
- if(soggettiCore.isRegistroServiziLocale()){
- if(lista==null) {
- if(soggettiCore.isVisioneOggettiGlobale(userLogin)){
- lista = soggettiCore.soggettiRegistroList(null, ricerca);
- }else{
- lista = soggettiCore.soggettiRegistroList(userLogin, ricerca);
- }
- }
-
- if(!soggettiHelper.isPostBackFilterElement()) {
- ServletUtils.setRisultatiRicercaIntoSession(request, session, idLista, lista); // salvo poiche' esistono filtri che hanno necessita di postback
- }
-
- soggettiHelper.prepareSoggettiList(lista, ricerca);
- }
- else{
- List<org.openspcoop2.core.config.Soggetto> listaConfig = null;
- if(soggettiCore.isVisioneOggettiGlobale(userLogin)){
- listaConfig = soggettiCore.soggettiList(null, ricerca);
- }else{
- listaConfig = soggettiCore.soggettiList(userLogin, ricerca);
- }
- soggettiHelper.prepareSoggettiConfigList(listaConfig, ricerca);
- }
-
- ServletUtils.setSearchObjectIntoSession(request, session, ricerca);
-
- ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
- return ServletUtils.getStrutsForwardEditModeFinished(mapping, SoggettiCostanti.OBJECT_NAME_SOGGETTI_VERIFICA_CERTIFICATI, CostantiControlStation.TIPO_OPERAZIONE_VERIFICA_CERTIFICATI);
-
- }
- // verifica richiesta dal dettaglio, torno al dettaglio
- else {
- // setto la barra del titolo
- ServletUtils.setPageDataTitle_ServletChange(pd, SoggettiCostanti.LABEL_SOGGETTI,
- SoggettiCostanti.SERVLET_NAME_SOGGETTI_LIST,
- soggettiHelper.getLabelNomeSoggetto(protocollo, tipoprov , nomeprov));
- String portadom = null;
- String descr = null;
- String versioneProtocollo = null;
- String pdd = null;
- String codiceIpa = null;
- String pdUrlPrefixRewriter = null;
- String paUrlPrefixRewriter = null;
- String dominio = null;
- boolean isRouter = false;
- boolean privato = false;
- String tipoauthSoggetto = null;
- String utenteSoggetto = null;
- String passwordSoggetto = null;
- String subjectSoggetto = null;
- String issuerSoggetto = null;
- String principalSoggetto = null;
- String multipleApiKey = null;
- String appId = null;
- String apiKey = null;
- BinaryParameter tipoCredenzialiSSLFileCertificato = soggettiHelper.getBinaryParameter(ConnettoriCostanti.PARAMETRO_CREDENZIALI_AUTENTICAZIONE_CONFIGURAZIONE_SSL_FILE_CERTIFICATO);
- String tipoCredenzialiSSLSorgente = null;
- String tipoCredenzialiSSLAliasCertificato = null;
- String tipoCredenzialiSSLAliasCertificatoSubject= null;
- String tipoCredenzialiSSLAliasCertificatoIssuer= null;
- String tipoCredenzialiSSLAliasCertificatoType= null;
- String tipoCredenzialiSSLAliasCertificatoVersion= null;
- String tipoCredenzialiSSLAliasCertificatoSerialNumber= null;
- String tipoCredenzialiSSLAliasCertificatoSelfSigned= null;
- String tipoCredenzialiSSLAliasCertificatoNotBefore= null;
- String tipoCredenzialiSSLAliasCertificatoNotAfter = null;
- String tipoCredenzialiSSLVerificaTuttiICampi = null;
- String tipoCredenzialiSSLConfigurazioneManualeSelfSigned= null;
- org.openspcoop2.utils.certificate.ArchiveType tipoCredenzialiSSLTipoArchivio = org.openspcoop2.utils.certificate.ArchiveType.CER;
- String tipoCredenzialiSSLFileCertificatoPassword = null;
- List<String> listaAliasEstrattiCertificato = new ArrayList<>();
-
- String tipoCredenzialiSSLWizardStep = ConnettoriCostanti.VALUE_PARAMETRO_CREDENZIALI_AUTENTICAZIONE_CONFIGURAZIONE_SSL_NO_WIZARD;
-
- String changepwd = null;
-
- boolean isSupportatoAutenticazioneSoggetti = soggettiCore.isSupportatoAutenticazioneSoggetti(protocollo);
- boolean isSupportatoCodiceIPA = soggettiCore.isSupportatoCodiceIPA(protocollo);
- boolean isSupportatoIdentificativoPorta = soggettiCore.isSupportatoIdentificativoPorta(protocollo);
-
- String nomePddGestioneLocale = null;
- if(!pddCore.isGestionePddAbilitata(soggettiHelper)){
- nomePddGestioneLocale = pddCore.getNomePddOperativa();
- if(nomePddGestioneLocale==null) {
- throw new Exception("Non è stata rilevata una pdd di tipologia 'operativo'");
- }
- }
-
- if(soggettiCore.isRegistroServiziLocale()){
- portadom = soggettoRegistry.getIdentificativoPorta();
- descr = soggettoRegistry.getDescrizione();
- pdd = soggettoRegistry.getPortaDominio();
-
- if(!pddCore.isGestionePddAbilitata(soggettiHelper)){
- if(pddCore.isPddEsterna(pdd)) {
- dominio = SoggettiCostanti.SOGGETTO_DOMINIO_ESTERNO_VALUE;
- }
- else {
- dominio = SoggettiCostanti.SOGGETTO_DOMINIO_OPERATIVO_VALUE;
- }
- }
- versioneProtocollo = soggettoRegistry.getVersioneProtocollo();
- privato = soggettoRegistry.getPrivato()!=null && soggettoRegistry.getPrivato();
- codiceIpa = soggettoRegistry.getCodiceIpa();
-
- if(isSupportatoAutenticazioneSoggetti){
- if (tipoauthSoggetto == null){
- CredenzialiSoggetto credenziali = null;
- if(soggettoRegistry.sizeCredenzialiList()>0) {
- credenziali = soggettoRegistry.getCredenziali(0);
- }
- if (credenziali != null){
- if(credenziali.getTipo()!=null)
- tipoauthSoggetto = credenziali.getTipo().toString();
- utenteSoggetto = credenziali.getUser();
- passwordSoggetto = credenziali.getPassword();
- if(tipoauthSoggetto!=null && ConnettoriCostanti.AUTENTICAZIONE_TIPO_BASIC.equals(tipoauthSoggetto)){
- tipoCredenzialiSSLVerificaTuttiICampi = credenziali.isCertificateStrictVerification() ? Costanti.CHECK_BOX_ENABLED : Costanti.CHECK_BOX_DISABLED;
- }
- else if(tipoauthSoggetto!=null && ConnettoriCostanti.AUTENTICAZIONE_TIPO_APIKEY.equals(tipoauthSoggetto)){
- tipoCredenzialiSSLVerificaTuttiICampi = credenziali.isCertificateStrictVerification() ? Costanti.CHECK_BOX_ENABLED : Costanti.CHECK_BOX_DISABLED;
- multipleApiKey = credenziali.isAppId() ? Costanti.CHECK_BOX_ENABLED : Costanti.CHECK_BOX_DISABLED;
- appId = credenziali.getUser();
- apiKey = credenziali.getPassword();
- }
- principalSoggetto = credenziali.getUser();
-
- if(credenziali.getCertificate() != null) {
- tipoCredenzialiSSLFileCertificato.setValue(credenziali.getCertificate());
- tipoCredenzialiSSLSorgente = ConnettoriCostanti.VALUE_PARAMETRO_CREDENZIALI_AUTENTICAZIONE_CONFIGURAZIONE_SSL_UPLOAD_CERTIFICATO;
- tipoCredenzialiSSLVerificaTuttiICampi = credenziali.isCertificateStrictVerification() ? Costanti.CHECK_BOX_ENABLED :Costanti.CHECK_BOX_DISABLED;
-
- try {
- Certificate cSelezionato = ArchiveLoader.load(tipoCredenzialiSSLFileCertificato.getValue());
- tipoCredenzialiSSLAliasCertificatoIssuer = cSelezionato.getCertificate().getIssuer().getNameNormalized();
- tipoCredenzialiSSLAliasCertificatoSubject = cSelezionato.getCertificate().getSubject().getNameNormalized();
- tipoCredenzialiSSLAliasCertificatoSelfSigned = cSelezionato.getCertificate().isSelfSigned() ? CostantiControlStation.LABEL_SI : CostantiControlStation.LABEL_NO;
- tipoCredenzialiSSLAliasCertificatoSerialNumber = cSelezionato.getCertificate().getSerialNumber() + "";
- tipoCredenzialiSSLAliasCertificatoType = cSelezionato.getCertificate().getType();
- tipoCredenzialiSSLAliasCertificatoVersion = cSelezionato.getCertificate().getVersion() + "";
- SimpleDateFormat sdf = new SimpleDateFormat(SoggettiChangeStrutsBean.CERTIFICATE_FORMAT);
- tipoCredenzialiSSLAliasCertificatoNotBefore = sdf.format(cSelezionato.getCertificate().getNotBefore());
- tipoCredenzialiSSLAliasCertificatoNotAfter = sdf.format(cSelezionato.getCertificate().getNotAfter());
- }catch(UtilsException e) {
- pd.setMessage("Il Certificato selezionato non è valido: "+e.getMessage());
- tipoCredenzialiSSLAliasCertificato = "";
- tipoCredenzialiSSLAliasCertificatoSubject= "";
- tipoCredenzialiSSLAliasCertificatoIssuer= "";
- tipoCredenzialiSSLAliasCertificatoType= "";
- tipoCredenzialiSSLAliasCertificatoVersion= "";
- tipoCredenzialiSSLAliasCertificatoSerialNumber= "";
- tipoCredenzialiSSLAliasCertificatoSelfSigned= "";
- tipoCredenzialiSSLAliasCertificatoNotBefore= "";
- tipoCredenzialiSSLAliasCertificatoNotAfter = "";
- }
- } else {
- subjectSoggetto = credenziali.getSubject();
- issuerSoggetto = credenziali.getIssuer();
- tipoCredenzialiSSLSorgente = ConnettoriCostanti.VALUE_PARAMETRO_CREDENZIALI_AUTENTICAZIONE_CONFIGURAZIONE_SSL_CONFIGURAZIONE_MANUALE;
- tipoCredenzialiSSLConfigurazioneManualeSelfSigned = ( subjectSoggetto != null && subjectSoggetto.equals(issuerSoggetto)) ? Costanti.CHECK_BOX_ENABLED :Costanti.CHECK_BOX_DISABLED;
- }
- }
- }
- if (tipoauthSoggetto == null) {
- tipoauthSoggetto = ConnettoriCostanti.AUTENTICAZIONE_TIPO_NESSUNA;
- }
- }
- }
- else{
- portadom = soggettoConfig.getIdentificativoPorta();
- descr = soggettoConfig.getDescrizione();
- isRouter = soggettoConfig.getRouter();
- }
- pdUrlPrefixRewriter = soggettoConfig.getPdUrlPrefixRewriter();
- paUrlPrefixRewriter = soggettoConfig.getPaUrlPrefixRewriter();
-
- boolean isPddEsterna = pddCore.isPddEsterna(pdd);
- if(isSupportatoAutenticazioneSoggetti &&
- isPddEsterna &&
- tipoauthSoggetto==null && ConnettoriCostanti.AUTENTICAZIONE_TIPO_NESSUNA.equals(tipoauthSoggetto)){
- tipoauthSoggetto = soggettiCore.getAutenticazione_generazioneAutomaticaPorteApplicative();
- }
-
- IDSoggetto idSoggetto = new IDSoggetto(tipoprov,nomeprov);
-
- List<String> tipiSoggetti = soggettiCore.getTipiSoggettiGestitiProtocollo(protocollo);
-
- List<String> versioniProtocollo = null;
- if(soggettiHelper.isModalitaAvanzata()){
- versioniProtocollo = soggettiCore.getVersioniProtocollo(protocollo);
- }else {
- versioniProtocollo = new ArrayList<>();
- versioneProtocollo = soggettiCore.getVersioneDefaultProtocollo(protocollo);
- versioniProtocollo.add(versioneProtocollo);
- }
- List<String> listaTipiProtocollo = soggettiCore.getProtocolli(request, session);
-
- boolean pddOperativa = false;
- if(soggettoRegistry.getPortaDominio()!=null && !"".equals(soggettoRegistry.getPortaDominio())){
- PdDControlStation pddCtrlstat = pddCore.getPdDControlStation(soggettoRegistry.getPortaDominio());
- pddOperativa = PddTipologia.OPERATIVO.toString().equals(pddCtrlstat.getTipo());
- }
-
- String [] pddList = null;
- if(!pddOperativa && soggettoRegistry.getPortaDominio()!=null) {
- pddList = new String[1];
- pddList[0] = soggettoRegistry.getPortaDominio();
- }
- String [] pddEsterneList = null;
-
- org.openspcoop2.core.registry.Connettore connettore = null;
- if(soggettiCore.isRegistroServiziLocale()){
- connettore = soggettoRegistry.getConnettore();
- }
-
- int numPA = 0;
- int numPD = 0;
-
- ProtocolProperties protocolProperties = null;
- List<ProtocolProperty> oldProtocolPropertyList = null;
- IConsoleDynamicConfiguration consoleDynamicConfiguration = null;
- IRegistryReader registryReader = null;
- IConfigIntegrationReader configRegistryReader = null;
- ConsoleConfiguration consoleConfiguration = null;
- ConsoleOperationType consoleOperationType = ConsoleOperationType.CHANGE;
- try{
- IProtocolFactory<?> protocolFactory = ProtocolFactoryManager.getInstance().getProtocolFactoryByName(protocollo);
- consoleDynamicConfiguration = protocolFactory.createDynamicConfigurationConsole();
- registryReader = soggettiCore.getRegistryReader(protocolFactory);
- configRegistryReader = soggettiCore.getConfigIntegrationReader(protocolFactory);
- consoleConfiguration = consoleDynamicConfiguration.getDynamicConfigSoggetto(consoleOperationType, soggettiHelper,
- registryReader, configRegistryReader, idSoggetto);
- Soggetto soggetto = registryReader.getSoggetto(idSoggetto);
- oldProtocolPropertyList = soggetto.getProtocolPropertyList();
- protocolProperties = soggettiHelper.estraiProtocolPropertiesDaRequest(consoleConfiguration, consoleOperationType);
- }catch(RegistryNotFound r){
- // ignore
- }
-
- Properties propertiesProprietario = new Properties();
- propertiesProprietario.setProperty(ProtocolPropertiesCostanti.PARAMETRO_PP_ID_PROPRIETARIO, id);
- propertiesProprietario.setProperty(ProtocolPropertiesCostanti.PARAMETRO_PP_TIPO_PROPRIETARIO, ProtocolPropertiesCostanti.PARAMETRO_PP_TIPO_PROPRIETARIO_VALUE_SOGGETTO);
- propertiesProprietario.setProperty(ProtocolPropertiesCostanti.PARAMETRO_PP_NOME_PROPRIETARIO, tipoprov + "/" + nomeprov);
- propertiesProprietario.setProperty(ProtocolPropertiesCostanti.PARAMETRO_PP_URL_ORIGINALE_CHANGE, URLEncoder.encode( SoggettiCostanti.SERVLET_NAME_SOGGETTI_CHANGE + "?" + request.getQueryString(), "UTF-8"));
- propertiesProprietario.setProperty(ProtocolPropertiesCostanti.PARAMETRO_PP_PROTOCOLLO, protocollo);
-
- boolean visualizzaModificaCertificato = false;
- boolean visualizzaAddCertificato = false;
- Integer numeroCertificati = soggettoRegistry.sizeCredenzialiList();
- if(soggettoRegistry.sizeCredenzialiList()>0) {
- visualizzaAddCertificato = true;
- if(soggettoRegistry.sizeCredenzialiList() == 1) { // se ho definito solo un certificato c'e' il link diretto alla modifica
- visualizzaModificaCertificato = true;
- }
- }
-
- String servletCredenzialiList = SoggettiCostanti.SERVLET_NAME_SOGGETTI_CREDENZIALI_LIST;
- String servletCredenzialiAdd = SoggettiCostanti.SERVLET_NAME_SOGGETTI_CREDENZIALI_ADD;
- List<Parameter> parametersServletCredenzialiList = new ArrayList<>();
- parametersServletCredenzialiList.add(pIdSoggetto);
- parametersServletCredenzialiList.add(pNomeSoggetto);
- parametersServletCredenzialiList.add(pTipoSoggetto);
-
- dati.add(ServletUtils.getDataElementForEditModeFinished());
- // update della configurazione
- consoleDynamicConfiguration.updateDynamicConfigSoggetto(consoleConfiguration, consoleOperationType, soggettiHelper, protocolProperties,
- registryReader, configRegistryReader, idSoggetto);
-
- dati = soggettiHelper.addSoggettiToDati(TipoOperazione.CHANGE, dati, nomeprov, tipoprov, portadom, descr,
- isRouter, tipiSoggetti, versioneProtocollo, privato, codiceIpa, versioniProtocollo,
- isSupportatoCodiceIPA, isSupportatoIdentificativoPorta,
- pddList,pddEsterneList,nomePddGestioneLocale,pdd,id,nomeprov,tipoprov,connettore,
- numPD,pdUrlPrefixRewriter,numPA,paUrlPrefixRewriter,listaTipiProtocollo,protocollo,
- isSupportatoAutenticazioneSoggetti,utenteSoggetto,passwordSoggetto,subjectSoggetto,principalSoggetto,tipoauthSoggetto,
- isPddEsterna,null,dominio,tipoCredenzialiSSLSorgente, tipoCredenzialiSSLTipoArchivio, tipoCredenzialiSSLFileCertificato, tipoCredenzialiSSLFileCertificatoPassword, listaAliasEstrattiCertificato,
- tipoCredenzialiSSLAliasCertificato, tipoCredenzialiSSLAliasCertificatoSubject, tipoCredenzialiSSLAliasCertificatoIssuer,
- tipoCredenzialiSSLAliasCertificatoType, tipoCredenzialiSSLAliasCertificatoVersion, tipoCredenzialiSSLAliasCertificatoSerialNumber,
- tipoCredenzialiSSLAliasCertificatoSelfSigned, tipoCredenzialiSSLAliasCertificatoNotBefore, tipoCredenzialiSSLAliasCertificatoNotAfter,
- tipoCredenzialiSSLVerificaTuttiICampi, tipoCredenzialiSSLConfigurazioneManualeSelfSigned, issuerSoggetto,tipoCredenzialiSSLWizardStep,
- changepwd,
- multipleApiKey, appId, apiKey,
- visualizzaModificaCertificato, visualizzaAddCertificato, servletCredenzialiList, parametersServletCredenzialiList, numeroCertificati, servletCredenzialiAdd, soggettoRegistry.sizeProprietaList());
- // aggiunta campi custom
- dati = soggettiHelper.addProtocolPropertiesToDatiRegistry(dati, consoleConfiguration,consoleOperationType, protocolProperties,oldProtocolPropertyList,propertiesProprietario);
-
- pd.setDati(dati);
-
- ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
- return ServletUtils.getStrutsForwardEditModeFinished(mapping, SoggettiCostanti.OBJECT_NAME_SOGGETTI, ForwardParams.CHANGE());
-
- }
- }
- else {
- ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
- return ServletUtils.getStrutsForwardEditModeFinished(mapping, SoggettiCostanti.OBJECT_NAME_SOGGETTI_VERIFICA_CERTIFICATI, ForwardParams.OTHER(""));
- }
-
- } catch (Exception e) {
- return ServletUtils.getStrutsForwardError(ControlStationCore.getLog(), e, pd, request, session, gd, mapping, SoggettiCostanti.OBJECT_NAME_SOGGETTI_VERIFICA_CERTIFICATI, ForwardParams.OTHER(""));
- }
- }
- }