ConnettoreFileApiHelper.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.core.config.rs.server.api.impl.erogazioni;
- import java.util.List;
- import java.util.Map;
- import org.openspcoop2.core.config.constants.CostantiConfigurazione;
- import org.openspcoop2.core.config.constants.StatoFunzionalita;
- import org.openspcoop2.core.config.rs.server.model.ConnettoreEnum;
- import org.openspcoop2.core.config.rs.server.model.ConnettoreFile;
- import org.openspcoop2.core.config.rs.server.model.ConnettoreFileRichiesta;
- import org.openspcoop2.core.config.rs.server.model.ConnettoreFileRisposta;
- import org.openspcoop2.core.config.rs.server.model.OneOfApplicativoServerConnettore;
- import org.openspcoop2.core.config.rs.server.model.OneOfConnettoreErogazioneConnettore;
- import org.openspcoop2.core.config.rs.server.model.OneOfConnettoreFruizioneConnettore;
- import org.openspcoop2.core.constants.CostantiDB;
- import org.openspcoop2.core.constants.TipiConnettore;
- import org.openspcoop2.core.registry.Connettore;
- import org.openspcoop2.web.ctrlstat.costanti.ConnettoreServletType;
- import org.openspcoop2.web.ctrlstat.plugins.ExtendedConnettore;
- import org.openspcoop2.web.ctrlstat.plugins.servlet.ServletExtendedConnettoreUtils;
- import org.openspcoop2.web.ctrlstat.servlet.connettori.ConnettoriCostanti;
- import org.openspcoop2.web.lib.mvc.ServletUtils;
- /**
- * ConnettoreFileApiHelper
- *
- * @author $Author$
- * @version $Rev$, $Date$
- *
- */
- public class ConnettoreFileApiHelper extends AbstractConnettoreApiHelper<ConnettoreFile> {
- @Override
- protected ConnettoreFile getConnettore(OneOfConnettoreErogazioneConnettore conn) throws Exception {
- return (ConnettoreFile) conn;
- }
- @Override
- protected ConnettoreFile getConnettore(OneOfConnettoreFruizioneConnettore conn) throws Exception {
- return (ConnettoreFile) conn;
- }
- @Override
- protected ConnettoreFile getConnettore(OneOfApplicativoServerConnettore conn) throws Exception {
- return (ConnettoreFile) conn;
- }
- @Override
- public boolean connettoreCheckData(ConnettoreFile conn, ErogazioniEnv env, boolean erogazione) throws Exception {
- final String endpointtype = TipiConnettore.FILE.getNome();
-
- org.openspcoop2.core.registry.Connettore conTmp = null;
- List<ExtendedConnettore> listExtendedConnettore =
- ServletExtendedConnettoreUtils.getExtendedConnettore(conTmp, ConnettoreServletType.ACCORDO_SERVIZIO_PARTE_SPECIFICA_ADD, env.apsHelper,
- null, false, endpointtype);
- String responseInputMode = conn.getRisposta() != null ? StatoFunzionalita.ABILITATO.toString() : StatoFunzionalita.DISABILITATO.toString();
-
- String responseInputFileName = null;
- String responseInputFileNameHeaders = null;
- boolean responseInputDeleteAfterRead = false;
- String responseInputWaitTime = null;
-
- if(conn.getRisposta() != null) {
- responseInputFileName = conn.getRisposta().getFile();
- responseInputFileNameHeaders = conn.getRisposta().getFileHeaders();
- responseInputDeleteAfterRead = conn.getRisposta().isDeleteAfterRead();
- responseInputWaitTime = conn.getRisposta().getWaitIfNotExistsMs() != null ? conn.getRisposta().getWaitIfNotExistsMs() + "" : null;
- }
-
- String createParentDir = conn.getRichiesta().isCreateParentDir() != null ? ServletUtils.boolToCheckBoxStatus(conn.getRichiesta().isCreateParentDir()) : ServletUtils.boolToCheckBoxStatus(false);
- String overwriteIfExists = conn.getRichiesta().isOverwriteIfExists() != null ? ServletUtils.boolToCheckBoxStatus(conn.getRichiesta().isOverwriteIfExists()) : ServletUtils.boolToCheckBoxStatus(false);
-
- return env.saHelper.endPointCheckData(
- null,
- env.tipo_protocollo,
- erogazione,
- endpointtype,
- null,
- null, // nome
- null, // tipo
- null, // httpConf.getUsername()
- null, // httpConf.getPassword()
- null, // this.initcont,
- null, // this.urlpgk,
- null, // provurl jms,
- null, // connfact,
- null, // sendas,
- null, // this.httpsurl,
- null, // httpsConf.getTipologia().toString(),
- false, // this.httpshostverify,
- ConnettoriCostanti.DEFAULT_CONNETTORE_HTTPS_TRUST_VERIFY_CERTS, // httpsTrustVerifyCert
- null, // this.httpspath
- null, // this.httpstipo,
- null, // this.httpspwd,
- null, // this.httpsalgoritmo
- false,
- null,
- "", // httpspwdprivatekeytrust,
- null, // pathkey
- null, // this.httpstipokey
- null, // this.httpspwdkey
- null, // this.httpspwdprivatekey,
- null, // this.httpsalgoritmokey,
- null, // httpsKeyAlias
- null, // httpsTrustStoreCRLs
- null, // httpsTrustStoreOCSPPolicy
- null, // httpsKeyStoreBYOKPolicy
- null, // tipoconn (personalizzato)
- ServletUtils.boolToCheckBoxStatus(false), //autenticazioneHttp,
- ServletUtils.boolToCheckBoxStatus(false),
- null, // evalnull( () -> proxy.getHostname() ),
- null, // evalnull( () -> proxy.getPorta().toString() ),
- null, // evalnull( () -> proxy.getUsername() ),
- null, // evalnull( () -> proxy.getPassword() ),
- ServletUtils.boolToCheckBoxStatus(false), //ServletUtils.boolToCheckBoxStatus( tempiRisposta_enabled ),
- null, // evalnull( () -> timeoutConf.getConnectionTimeout().toString()), // this.tempiRisposta_connectionTimeout,
- null, // evalnull( () -> timeoutConf.getConnectionReadTimeout().toString()), //null, // this.tempiRisposta_readTimeout,
- null, // evalnull( () -> timeoutConf.getTempoMedioRisposta().toString()), // this.tempiRisposta_tempoMedioRisposta,
- "no", // this.opzioniAvanzate,
- "", // this.transfer_mode,
- "", // this.transfer_mode_chunk_size,
- "", // this.redirect_mode,
- "", // this.redirect_max_hop,
- conn.getRichiesta().getFile(), // this.requestOutputFileName,
- conn.getRichiesta().getFilePermissions(), // this.requestOutputFileName_permissions
- conn.getRichiesta().getFileHeaders(), // this.requestOutputFileNameHeaders,
- conn.getRichiesta().getFileHeadersPermissions(), // this.requestOutputFileNameHeaders_permissions
- createParentDir,
- overwriteIfExists,
- responseInputMode, // this.responseInputMode,
- responseInputFileName, // this.responseInputFileName,
- responseInputFileNameHeaders, // this.responseInputFileNameHeaders,
- ServletUtils.boolToCheckBoxStatus(responseInputDeleteAfterRead), // this.responseInputDeleteAfterRead,
- responseInputWaitTime, // this.responseInputWaitTime,
- false, // autenticazioneToken
- null, // tokenPolicy
- null, // autenticazioneApiKey
- false, // useOAS3Names
- false, // useAppId
- null, // apiKeyHeader
- null, // apiKey,
- null, // appIdHeader,
- null, // appId,
- listExtendedConnettore, // listExtendedConnettore
- false, // erogazioneServizioApplicativoServerEnabled,
- null // erogazioneServizioApplicativoServer
- );
- }
- @Override
- public Connettore fillConnettoreRegistro(org.openspcoop2.core.registry.Connettore regConnettore,
- ErogazioniEnv env,
- ConnettoreFile conn,
- String oldConnT) throws Exception {
- final String endpointtype = TipiConnettore.FILE.getNome();
-
- org.openspcoop2.core.registry.Connettore conTmp = null;
- List<ExtendedConnettore> listExtendedConnettore =
- ServletExtendedConnettoreUtils.getExtendedConnettore(conTmp, ConnettoreServletType.ACCORDO_SERVIZIO_PARTE_SPECIFICA_ADD, env.apsHelper,
- null, false, endpointtype);
- String responseInputMode = conn.getRisposta() != null ? StatoFunzionalita.ABILITATO.toString() : StatoFunzionalita.DISABILITATO.toString();
-
- String responseInputFileName = null;
- String responseInputFileNameHeaders = null;
- boolean responseInputDeleteAfterRead = false;
- String responseInputWaitTime = null;
-
- if(conn.getRisposta() != null) {
- responseInputFileName = conn.getRisposta().getFile();
- responseInputFileNameHeaders = conn.getRisposta().getFileHeaders();
- responseInputDeleteAfterRead = conn.getRisposta().isDeleteAfterRead();
- responseInputWaitTime = conn.getRisposta().getWaitIfNotExistsMs() != null ? conn.getRisposta().getWaitIfNotExistsMs() + "" : null;
- }
-
-
- String createParentDir = conn.getRichiesta().isCreateParentDir() != null ? ServletUtils.boolToCheckBoxStatus(conn.getRichiesta().isCreateParentDir()) : ServletUtils.boolToCheckBoxStatus(false);
- String overwriteIfExists = conn.getRichiesta().isOverwriteIfExists() != null ? ServletUtils.boolToCheckBoxStatus(conn.getRichiesta().isOverwriteIfExists()) : ServletUtils.boolToCheckBoxStatus(false);
- env.apsHelper.fillConnettore(
- regConnettore,
- conn.isDebug() != null && conn.isDebug() ? "true" : "false", // this.connettoreDebug,
- endpointtype, // endpointtype
- oldConnT, // oldConnT
- "", // tipoConn Personalizzato
- null, // this.url,
- null, // this.nome,
- null, // this.tipo,
- null,
- null,
- null, // this.initcont,
- null, // this.urlpgk,
- null, // this.url,
- null, // this.connfact,
- null, // this.sendas,
- null, // this.httpsurl,
- null, //this.httpstipologia
- false, // this.httpshostverify,
- ConnettoriCostanti.DEFAULT_CONNETTORE_HTTPS_TRUST_VERIFY_CERTS, // httpsTrustVerifyCert
- null, // this.httpspath
- null, //this.httpstipo,
- null, //this.httpspwd,
- null, // this.httpsalgoritmo
- false,
- null, // this.httpskeystore,
- "", // this.httpspwdprivatekeytrust
- null, //pathkey
- null, //this.httpstipokey
- null, //this.httpspwdkey
- null, //this.httpspwdprivatekey,
- null, //this.httpsalgoritmokey,
- null, //httpsKeyAlias
- null, //httpsTrustStoreCRLs
- null, //httpsTrustStoreOCSPPolicy
- null, //httpsKeyStoreBYOKPolicy
-
- ServletUtils.boolToCheckBoxStatus( false ),
- null,
- null,
- null,
- null,
- ServletUtils.boolToCheckBoxStatus( false ),
- null,
- null,
- null,
- "no", // this.opzioniAvanzate,
- "", // this.transfer_mode,
- "", // this.transfer_mode_chunk_size,
- "", // this.redirect_mode,
- "", // this.redirect_max_hop,
- conn.getRichiesta().getFile(), // this.requestOutputFileName,
- conn.getRichiesta().getFilePermissions(), // this.requestOutputFileName_permissions
- conn.getRichiesta().getFileHeaders(), // this.requestOutputFileNameHeaders,
- conn.getRichiesta().getFileHeadersPermissions(), // this.requestOutputFileNameHeaders_permissions
- createParentDir, // this.requestOutputParentDirCreateIfNotExists,
- overwriteIfExists, // this.requestOutputOverwriteIfExists,
- responseInputMode, // this.responseInputMode,
- responseInputFileName, // this.responseInputFileName,
- responseInputFileNameHeaders, // this.responseInputFileNameHeaders,
- ServletUtils.boolToCheckBoxStatus(responseInputDeleteAfterRead), // this.responseInputDeleteAfterRead,
- responseInputWaitTime, // this.responseInputWaitTime,
- null, // tokenPolicy
- null, null, // apiKeyHeader, apiKeyValue
- null, null, // appIdHeader, appIdValue
- null, // connettoreStatusParams
- listExtendedConnettore);
- return regConnettore;
- }
- @Override
- public org.openspcoop2.core.config.Connettore buildConnettoreConfigurazione(
- org.openspcoop2.core.config.Connettore regConnettore, ErogazioniEnv env, ConnettoreFile conn,
- String oldConnType) throws Exception {
- final String endpointtype = TipiConnettore.FILE.getNome();
-
- org.openspcoop2.core.registry.Connettore conTmp = null;
- List<ExtendedConnettore> listExtendedConnettore =
- ServletExtendedConnettoreUtils.getExtendedConnettore(conTmp, ConnettoreServletType.ACCORDO_SERVIZIO_PARTE_SPECIFICA_ADD, env.apsHelper,
- null, false, endpointtype);
- String responseInputMode = conn.getRisposta() != null ? StatoFunzionalita.ABILITATO.toString() : StatoFunzionalita.DISABILITATO.toString();
-
- String responseInputFileName = null;
- String responseInputFileNameHeaders = null;
- boolean responseInputDeleteAfterRead = false;
- String responseInputWaitTime = null;
-
- if(conn.getRisposta() != null) {
- responseInputFileName = conn.getRisposta().getFile();
- responseInputFileNameHeaders = conn.getRisposta().getFileHeaders();
- responseInputDeleteAfterRead = conn.getRisposta().isDeleteAfterRead();
- responseInputWaitTime = conn.getRisposta().getWaitIfNotExistsMs() != null ? conn.getRisposta().getWaitIfNotExistsMs() + "" : null;
- }
-
-
- String createParentDir = conn.getRichiesta().isCreateParentDir() != null ? ServletUtils.boolToCheckBoxStatus(conn.getRichiesta().isCreateParentDir()) : ServletUtils.boolToCheckBoxStatus(false);
- String overwriteIfExists = conn.getRichiesta().isOverwriteIfExists() != null ? ServletUtils.boolToCheckBoxStatus(conn.getRichiesta().isOverwriteIfExists()) : ServletUtils.boolToCheckBoxStatus(false);
- env.apsHelper.fillConnettore(
- regConnettore,
- conn.isDebug() != null && conn.isDebug() ? "true" : "false", // this.connettoreDebug,
- endpointtype, // endpointtype
- oldConnType, // oldConnT
- "", // tipoConn Personalizzato
- null, // this.url,
- null, // this.nome,
- null, // this.tipo,
- null,
- null,
- null, // this.initcont,
- null, // this.urlpgk,
- null, // this.url,
- null, // this.connfact,
- null, // this.sendas,
- null, // this.httpsurl,
- null, //this.httpstipologia
- false, // this.httpshostverify,
- ConnettoriCostanti.DEFAULT_CONNETTORE_HTTPS_TRUST_VERIFY_CERTS, // httpsTrustVerifyCert
- null, // this.httpspath
- null, //this.httpstipo,
- null, //this.httpspwd,
- null, // this.httpsalgoritmo
- false,
- null, // this.httpskeystore,
- "", // this.httpspwdprivatekeytrust
- null, //pathkey
- null, //this.httpstipokey
- null, //this.httpspwdkey
- null, //this.httpspwdprivatekey,
- null, //this.httpsalgoritmokey,
- null, //httpsKeyAlias
- null, //httpsTrustStoreCRLs
- null, //httpsTrustStoreOCSPPolicy
- null, //httpsKeyStoreBYOKPolicy
-
- ServletUtils.boolToCheckBoxStatus( false ),
- null,
- null,
- null,
- null,
- ServletUtils.boolToCheckBoxStatus( false ),
- null,
- null,
- null,
- "no", // this.opzioniAvanzate,
- "", // this.transfer_mode,
- "", // this.transfer_mode_chunk_size,
- "", // this.redirect_mode,
- "", // this.redirect_max_hop,
- conn.getRichiesta().getFile(), // this.requestOutputFileName,
- conn.getRichiesta().getFilePermissions(), // this.requestOutputFileName_permissions
- conn.getRichiesta().getFileHeaders(), // this.requestOutputFileNameHeaders,
- conn.getRichiesta().getFileHeadersPermissions(), // this.requestOutputFileNameHeaders_permissions
- createParentDir, // this.requestOutputParentDirCreateIfNotExists,
- overwriteIfExists, // this.requestOutputOverwriteIfExists,
- responseInputMode, // this.responseInputMode,
- responseInputFileName, // this.responseInputFileName,
- responseInputFileNameHeaders, // this.responseInputFileNameHeaders,
- ServletUtils.boolToCheckBoxStatus(responseInputDeleteAfterRead), // this.responseInputDeleteAfterRead,
- responseInputWaitTime, // this.responseInputWaitTime,
- null, // tokenPolicy
- null, null, // apiKeyHeader, apiKeyValue
- null, null, // appIdHeader, appIdValue
- null, // connettoreStatusParams
- listExtendedConnettore);
- return regConnettore;
- }
- @Override
- public ConnettoreFile buildConnettore(Map<String, String> props, String tipo) {
- ConnettoreFile c = new ConnettoreFile();
- c.setTipo(ConnettoreEnum.FILE);
- c.setDebug(Boolean.parseBoolean(props.get(CostantiDB.CONNETTORE_DEBUG)));
- ConnettoreFileRichiesta richiesta = new ConnettoreFileRichiesta();
- richiesta.setFile(props.get(CostantiDB.CONNETTORE_FILE_RESPONSE_INPUT_FILE));
- richiesta.setFileHeaders(props.get(CostantiDB.CONNETTORE_FILE_RESPONSE_INPUT_FILE_HEADERS));
- String requestOutputFileName = props.get(CostantiDB.CONNETTORE_FILE_REQUEST_OUTPUT_FILE);
- String requestOutputFileName_permissions = props.get(CostantiDB.CONNETTORE_FILE_REQUEST_OUTPUT_FILE_PERMISSIONS);
- String requestOutputFileNameHeaders = props.get(CostantiDB.CONNETTORE_FILE_REQUEST_OUTPUT_FILE_HEADERS);
- String requestOutputFileNameHeaders_permissions = props.get(CostantiDB.CONNETTORE_FILE_REQUEST_OUTPUT_FILE_HEADERS_PERMISSIONS);
- String v = props.get(CostantiDB.CONNETTORE_FILE_REQUEST_OUTPUT_AUTO_CREATE_DIR);
- boolean requestOutputParentDirCreateIfNotExists = false;
- if(v!=null && !"".equals(v)){
- if("true".equalsIgnoreCase(v) || CostantiConfigurazione.ABILITATO.getValue().equalsIgnoreCase(v) ){
- requestOutputParentDirCreateIfNotExists = true;
- }
- }
- v = props.get(CostantiDB.CONNETTORE_FILE_REQUEST_OUTPUT_OVERWRITE_FILE);
- boolean requestOutputOverwriteIfExists = false;
- if(v!=null && !"".equals(v)){
- if("true".equalsIgnoreCase(v) || CostantiConfigurazione.ABILITATO.getValue().equalsIgnoreCase(v) ){
- requestOutputOverwriteIfExists = true;
- }
- }
- v = props.get(CostantiDB.CONNETTORE_FILE_RESPONSE_INPUT_MODE);
- boolean responseInputMode = false;
- if(v!=null && !"".equals(v)){
- if("true".equalsIgnoreCase(v) || CostantiConfigurazione.ABILITATO.getValue().equalsIgnoreCase(v) ){
- responseInputMode = true;
- }
- }
- richiesta.setFile(requestOutputFileName);
- richiesta.setFilePermissions(requestOutputFileName_permissions);
- richiesta.setFileHeaders(requestOutputFileNameHeaders);
- richiesta.setFileHeadersPermissions(requestOutputFileNameHeaders_permissions);
- richiesta.setCreateParentDir(requestOutputParentDirCreateIfNotExists);
- richiesta.setOverwriteIfExists(requestOutputOverwriteIfExists);
- c.setRichiesta(richiesta);
- if(responseInputMode){
- boolean responseInputDeleteAfterRead = false;
- String responseInputFileName = props.get(CostantiDB.CONNETTORE_FILE_RESPONSE_INPUT_FILE);
- String responseInputFileNameHeaders = props.get(CostantiDB.CONNETTORE_FILE_RESPONSE_INPUT_FILE_HEADERS);
- v = props.get(CostantiDB.CONNETTORE_FILE_RESPONSE_INPUT_FILE_DELETE_AFTER_READ);
- if(v!=null && !"".equals(v)){
- if("true".equalsIgnoreCase(v) || CostantiConfigurazione.ABILITATO.getValue().equalsIgnoreCase(v) ){
- responseInputDeleteAfterRead = true;
- }
- }
- String responseInputWaitTime = props.get(CostantiDB.CONNETTORE_FILE_RESPONSE_INPUT_WAIT_TIME);
- ConnettoreFileRisposta risposta = new ConnettoreFileRisposta();
- risposta.setFile(responseInputFileName);
- risposta.setFileHeaders(responseInputFileNameHeaders);
- if(responseInputWaitTime != null && !responseInputWaitTime.isEmpty()) {
- risposta.setWaitIfNotExistsMs(Integer.parseInt(responseInputWaitTime));
- }
- risposta.setDeleteAfterRead(responseInputDeleteAfterRead);
- c.setRisposta(risposta);
- }
- return c;
- }
- @Override
- public String getUrlConnettore(Map<String, String> properties, String tipoConnettore) throws Exception {
- return "[file] " + properties.get(CostantiDB.CONNETTORE_FILE_REQUEST_OUTPUT_FILE);
- }
- }