ForwardProxy.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.pdd.config;
- import java.io.Serializable;
- import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
- import org.openspcoop2.core.id.IDAccordo;
- import org.openspcoop2.core.id.IDGenericProperties;
- import org.openspcoop2.core.id.IDServizio;
- import org.openspcoop2.core.id.IDSoggetto;
- import org.openspcoop2.core.registry.AccordoServizioParteComune;
- import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
- import org.openspcoop2.core.registry.GruppoAccordo;
- import org.openspcoop2.core.registry.driver.IDAccordoFactory;
- import org.openspcoop2.protocol.engine.ProtocolFactoryManager;
- import org.openspcoop2.protocol.registry.RegistroServiziManager;
- import org.openspcoop2.protocol.sdk.ProtocolException;
- import org.openspcoop2.protocol.sdk.state.RequestInfo;
- /**
- * ForwardProxy
- *
- *
- * @author Poli Andrea (apoli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class ForwardProxy implements Serializable {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public static final String GOVWAY_SEPARATORE = "-";
-
- public static final String GOVWAY_PREFISSO_TAG_PROXY = "tag"+GOVWAY_SEPARATORE;
- public static final String GOVWAY_PREFISSO_DOMINIO_PROXY = "dominio"+GOVWAY_SEPARATORE;
- public static final String GOVWAY_PREFISSO_PROTOCOLLO_PROXY = "profilo"+GOVWAY_SEPARATORE;
-
- public static final String GOVWAY_PROXY_ENABLED = "govway-proxy-enable";
-
- public static final String GOVWAY_PROXY = "govway-proxy";
- public static final String GOVWAY_FRUIZIONI_PROXY = "govway-fruizioni-proxy";
- public static final String GOVWAY_EROGAZIONI_PROXY = "govway-erogazioni-proxy";
-
- public static final String GOVWAY_PROXY_HEADER = "govway-proxy-header";
- public static final String GOVWAY_FRUIZIONI_PROXY_HEADER = "govway-fruizioni-proxy-header";
- public static final String GOVWAY_EROGAZIONI_PROXY_HEADER = "govway-erogazioni-proxy-header";
- public static final String GOVWAY_PROXY_HEADER_BASE64 = "govway-proxy-header-base64";
- public static final String GOVWAY_FRUIZIONI_PROXY_HEADER_BASE64 = "govway-fruizioni-proxy-header-base64";
- public static final String GOVWAY_EROGAZIONI_PROXY_HEADER_BASE64 = "govway-erogazioni-proxy-header-base64";
-
- public static final String GOVWAY_PROXY_QUERY = "govway-proxy-query";
- public static final String GOVWAY_FRUIZIONI_PROXY_QUERY = "govway-fruizioni-proxy-query";
- public static final String GOVWAY_EROGAZIONI_PROXY_QUERY = "govway-erogazioni-proxy-query";
- public static final String GOVWAY_PROXY_QUERY_BASE64 = "govway-proxy-query-base64";
- public static final String GOVWAY_FRUIZIONI_PROXY_QUERY_BASE64 = "govway-fruizioni-proxy-query-base64";
- public static final String GOVWAY_EROGAZIONI_PROXY_QUERY_BASE64 = "govway-erogazioni-proxy-query-base64";
-
- public static final String DEFAULT_GOVWAY_PROXY_HEADER = "GovWay-APIAddress";
- public static final boolean DEFAULT_GOVWAY_PROXY_HEADER_BASE64 = false;
- public static final String DEFAULT_GOVWAY_PROXY_QUERY = "govway_api_address";
- public static final boolean DEFAULT_GOVWAY_PROXY_QUERY_BASE64 = false;
-
- public static final String GOVWAY_PROXY_TOKEN_DYNAMIC_DISCOVERY = "govway-proxy-token-dynamic-discovery";
- public static final String GOVWAY_FRUIZIONI_PROXY_TOKEN_DYNAMIC_DISCOVERY = "govway-fruizioni-proxy-token-dynamic-discovery";
- public static final String GOVWAY_EROGAZIONI_PROXY_TOKEN_DYNAMIC_DISCOVERY = "govway-erogazioni-proxy-token-dynamic-discovery";
- public static final String GOVWAY_PROXY_TOKEN_VALIDAZIONE_JWT = "govway-proxy-token-jwt-validation";
- public static final String GOVWAY_FRUIZIONI_PROXY_TOKEN_VALIDAZIONE_JWT = "govway-fruizioni-proxy-token-jwt-validation";
- public static final String GOVWAY_EROGAZIONI_PROXY_TOKEN_VALIDAZIONE_JWT = "govway-erogazioni-proxy-token-jwt-validation";
- public static final String GOVWAY_PROXY_TOKEN_INTROSPECTION = "govway-proxy-token-introspection";
- public static final String GOVWAY_FRUIZIONI_PROXY_TOKEN_INTROSPECTION = "govway-fruizioni-proxy-token-introspection";
- public static final String GOVWAY_EROGAZIONI_PROXY_TOKEN_INTROSPECTION = "govway-erogazioni-proxy-token-introspection";
- public static final String GOVWAY_PROXY_TOKEN_USERINFO = "govway-proxy-token-userinfo";
- public static final String GOVWAY_FRUIZIONI_PROXY_TOKEN_USERINFO = "govway-fruizioni-proxy-token-userinfo";
- public static final String GOVWAY_EROGAZIONI_PROXY_TOKEN_USERINFO = "govway-erogazioni-proxy-token-userinfo";
-
- public static final String GOVWAY_PROXY_TOKEN_RETRIEVE = "govway-proxy-token-retrieve";
- public static final String GOVWAY_FRUIZIONI_PROXY_TOKEN_RETRIEVE = "govway-fruizioni-proxy-token-retrieve";
- public static final String GOVWAY_EROGAZIONI_PROXY_TOKEN_RETRIEVE = "govway-erogazioni-proxy-token-retrieve";
-
- public static final String GOVWAY_PROXY_ATTRIBUTE_AUTHORITY = "govway-proxy-attribute-authority";
- public static final String GOVWAY_FRUIZIONI_PROXY_ATTRIBUTE_AUTHORITY = "govway-fruizioni-proxy-attribute-authority";
- public static final String GOVWAY_EROGAZIONI_PROXY_ATTRIBUTE_AUTHORITY = "govway-erogazioni-proxy-attribute-authority";
- public static final String GOVWAY_PROXY_ATTRIBUTE_AUTHORITY_RESPONSE_JWT_VALIDATION = "govway-proxy-attribute-authority-response-jwt-validation";
- public static final String GOVWAY_FRUIZIONI_PROXY_ATTRIBUTE_AUTHORITY_RESPONSE_JWT_VALIDATION = "govway-fruizioni-proxy-attribute-authority-response-jwt-validation";
- public static final String GOVWAY_EROGAZIONI_PROXY_ATTRIBUTE_AUTHORITY_RESPONSE_JWT_VALIDATION = "govway-erogazioni-proxy-attribute-authority-response-jwt-validation";
-
- public static final boolean DEFAULT_GOVWAY_PROXY_TOKEN_DYNAMIC_DISCOVERY = false;
- public static final boolean DEFAULT_GOVWAY_PROXY_TOKEN_VALIDAZIONE_JWT = false;
- public static final boolean DEFAULT_GOVWAY_PROXY_TOKEN_INTROSPECTION = false;
- public static final boolean DEFAULT_GOVWAY_PROXY_TOKEN_USERINFO = false;
-
- public static final boolean DEFAULT_GOVWAY_PROXY_TOKEN_RETRIEVE = false;
-
- public static final boolean DEFAULT_GOVWAY_PROXY_ATTRIBUTE_AUTHORITY = false;
- public static final boolean DEFAULT_GOVWAY_PROXY_ATTRIBUTE_AUTHORITY_RESPONSE_JWT_VALIDATION = false;
-
- private static final String TRUE = "true";
- private static final String FALSE = "false";
-
- public static boolean isProxyEnabled() {
- String enable = System.getProperty(GOVWAY_PROXY_ENABLED);
- if(enable!=null && !"".equals(enable)) {
- return TRUE.equalsIgnoreCase(enable);
- }
- return OpenSPCoop2Properties.getInstance().isForwardProxyEnable();
- }
-
-
- public static ForwardProxy getProxyConfigurazione(boolean fruizione, IDSoggetto dominio, IDServizio idServizio, IDGenericProperties policy, RequestInfo requestInfo) throws DriverConfigurazioneException{
-
- try {
-
- // **** Configurazione di default ****
-
- // Cerco se ne esiste una specifica per il protocollo e la fruizione/erogazione
- ForwardProxyConfigurazione defaultConfig = readForwardProxyConfigurazione(true, dominio.getTipo(), fruizione);
-
- // Cerco se ne esiste una specifica per il protocollo che vale sia per la fruizione che per l'erogazione
- if(defaultConfig==null) {
- defaultConfig = readForwardProxyConfigurazione(true, dominio.getTipo(), null);
- }
-
- // Cerco se ne esiste una specifica per la fruizione/erogazione
- if(defaultConfig==null) {
- defaultConfig = readForwardProxyConfigurazione(false, null, fruizione);
- }
-
- // Cerco se ne esiste una che vale sia per la fruizione che per l'erogazione
- if(defaultConfig==null) {
- defaultConfig = readForwardProxyConfigurazione(false, null, null);
- }
-
- // Configurazione di default
- if(defaultConfig==null) {
- defaultConfig = OpenSPCoop2Properties.getInstance().getForwardProxyConfigurazioneDefault();
- }
-
-
- // **** Configurazione di default per la gestione dei token ****
-
- ForwardProxyConfigurazioneToken defaultConfigToken = null;
-
- if(policy!=null && policy.getNome()!=null) { // chiamata arriva da una token policy
-
- // Cerco se ne esiste una specifica per il protocollo e la fruizione/erogazione con il nome della policy
- defaultConfigToken = readForwardProxyConfigurazioneToken(true, dominio.getTipo(), fruizione, policy);
-
- // Cerco se ne esiste una specifica per il protocollo che vale sia per la fruizione che per l'erogazione con il nome della policy
- if(defaultConfigToken==null) {
- defaultConfigToken = readForwardProxyConfigurazioneToken(true, dominio.getTipo(), null, policy);
- }
-
- // Cerco se ne esiste una specifica per la fruizione/erogazione con il nome della policy
- if(defaultConfigToken==null) {
- defaultConfigToken = readForwardProxyConfigurazioneToken(false, null, fruizione, policy);
- }
-
- // Cerco se ne esiste una che vale sia per la fruizione che per l'erogazione con il nome della policy
- if(defaultConfigToken==null) {
- defaultConfigToken = readForwardProxyConfigurazioneToken(false, null, null, policy);
- }
-
- }
-
- // Cerco se ne esiste una specifica per il protocollo e la fruizione/erogazione per qualsiasi policy
- if(defaultConfigToken==null) {
- defaultConfigToken = readForwardProxyConfigurazioneToken(true, dominio.getTipo(), fruizione, null);
- }
-
- // Cerco se ne esiste una specifica per il protocollo che vale sia per la fruizione che per l'erogazione per qualsiasi policy
- if(defaultConfigToken==null) {
- defaultConfigToken = readForwardProxyConfigurazioneToken(true, dominio.getTipo(), null, null);
- }
-
- // Cerco se ne esiste una specifica per la fruizione/erogazione per qualsiasi policy
- if(defaultConfigToken==null) {
- defaultConfigToken = readForwardProxyConfigurazioneToken(false, null, fruizione, null);
- }
-
- // Cerco se ne esiste una che vale sia per la fruizione che per l'erogazione per qualsiasi policy
- if(defaultConfigToken==null) {
- defaultConfigToken = readForwardProxyConfigurazioneToken(false, null, null, null);
- }
-
- // Configurazione di default
- if(defaultConfigToken==null) {
- defaultConfigToken = OpenSPCoop2Properties.getInstance().getForwardProxyConfigurazioneTokenDefault();
- }
-
-
-
- // **** Regola ****
-
- // primo cerco per tag
- RegistroServiziManager registroServiziManager = RegistroServiziManager.getInstance();
- AccordoServizioParteSpecifica asps = registroServiziManager.getAccordoServizioParteSpecifica(idServizio, null, false, requestInfo);
- IDAccordo idAccordo = IDAccordoFactory.getInstance().getIDAccordoFromUri(asps.getAccordoServizioParteComune());
- AccordoServizioParteComune aspc = registroServiziManager.getAccordoServizioParteComune(idAccordo, null, false, false, requestInfo);
- if(aspc.getGruppi()!=null && aspc.getGruppi().sizeGruppoList()>0) {
- for (GruppoAccordo gruppo : aspc.getGruppi().getGruppoList()) {
- // prima per specifica fruizione/erogazione
- ForwardProxy regola = ForwardProxy.readForwardProxyTag(gruppo.getNome(), fruizione, policy,
- defaultConfig, defaultConfigToken);
- if(regola!=null && regola.isEnabled()) {
- return regola;
- }
- // poi per configurazione che vale sia per la fruizione che per l'erogazione
- regola = ForwardProxy.readForwardProxyTag(gruppo.getNome(), null, policy,
- defaultConfig, defaultConfigToken);
- if(regola!=null && regola.isEnabled()) {
- return regola;
- }
- }
- }
-
- // poi cerco per dominio
-
- // prima per specifico tipo (es. modipa, gw, aoo, spc) e nome soggetto per specifica fruizione/erogazione
- ForwardProxy regola = ForwardProxy.readConfigurazioneDominioByTipo(dominio.getTipo(), dominio.getNome(), fruizione, policy,
- defaultConfig, defaultConfigToken);
- if(regola!=null && regola.isEnabled()) {
- return regola;
- }
- // poi per specifico tipo (es. modipa, gw, aoo, spc) e nome soggetto che vale sia per la fruizione che per l'erogazione
- regola = ForwardProxy.readConfigurazioneDominioByTipo(dominio.getTipo(), dominio.getNome(), null, policy,
- defaultConfig, defaultConfigToken);
- if(regola!=null && regola.isEnabled()) {
- return regola;
- }
-
- // poi piĂ¹ generico sul protocollo e nome soggetto per specifica fruizione/erogazione
- regola = ForwardProxy.readConfigurazioneDominioByProtocollo(dominio.getTipo(), dominio.getNome(), fruizione, policy,
- defaultConfig, defaultConfigToken);
- if(regola!=null && regola.isEnabled()) {
- return regola;
- }
- // poi piĂ¹ generico sul protocollo e nome soggetto che vale sia per la fruizione che per l'erogazione
- regola = ForwardProxy.readConfigurazioneDominioByProtocollo(dominio.getTipo(), dominio.getNome(), null, policy,
- defaultConfig, defaultConfigToken);
- if(regola!=null && regola.isEnabled()) {
- return regola;
- }
-
- // poi solamente per nome soggetto per specifica fruizione/erogazione
- regola = ForwardProxy.readConfigurazioneDominio(dominio.getNome(), fruizione, policy,
- defaultConfig, defaultConfigToken);
- if(regola!=null && regola.isEnabled()) {
- return regola;
- }
- // poi solamente per nome soggetto che vale sia per la fruizione che per l'erogazione
- regola = ForwardProxy.readConfigurazioneDominio(dominio.getNome(), null, policy,
- defaultConfig, defaultConfigToken);
- if(regola!=null && regola.isEnabled()) {
- return regola;
- }
-
-
- // poi cerco per protocollo per specifica fruizione/erogazione
- regola = ForwardProxy.readConfigurazioneProtocollo(dominio.getTipo(), fruizione, policy,
- defaultConfig, defaultConfigToken);
- if(regola!=null && regola.isEnabled()) {
- return regola;
- }
- // poi cerco per protocollo che vale sia per la fruizione che per l'erogazione
- regola = ForwardProxy.readConfigurazioneProtocollo(dominio.getTipo(), null, policy,
- defaultConfig, defaultConfigToken);
- if(regola!=null && regola.isEnabled()) {
- return regola;
- }
-
-
- // poi cerco configurazione generica per specifica fruizione/erogazione
- regola = ForwardProxy.readConfigurazione(fruizione, policy,
- defaultConfig, defaultConfigToken);
- if(regola!=null && regola.isEnabled()) {
- return regola;
- }
- // altrimenti ritorno regola di default (eventualmente disabilitata per motivi di caching)
- return ForwardProxy.readConfigurazione(null, policy,
- defaultConfig, defaultConfigToken);
-
- }catch(Exception e){
- throw new DriverConfigurazioneException(e.getMessage(),e);
- }
-
- }
-
-
- private static ForwardProxyConfigurazione readForwardProxyConfigurazione(boolean byProtocollo, String tipoSoggetto, Boolean fruizione) throws ProtocolException {
-
- String systemPropertyProxyHeader = GOVWAY_PROXY_HEADER;
- String systemPropertyProxyHeaderBase64 = GOVWAY_PROXY_HEADER_BASE64;
- String systemPropertyProxyQuery = GOVWAY_PROXY_QUERY;
- String systemPropertyProxyQueryBase64 = GOVWAY_PROXY_QUERY_BASE64;
-
- if(fruizione!=null) {
- systemPropertyProxyHeader = fruizione ? GOVWAY_FRUIZIONI_PROXY_HEADER : GOVWAY_EROGAZIONI_PROXY_HEADER;
- systemPropertyProxyHeaderBase64 = fruizione ? GOVWAY_FRUIZIONI_PROXY_HEADER_BASE64 : GOVWAY_EROGAZIONI_PROXY_HEADER_BASE64;
- systemPropertyProxyQuery = fruizione ? GOVWAY_FRUIZIONI_PROXY_QUERY : GOVWAY_EROGAZIONI_PROXY_QUERY;
- systemPropertyProxyQueryBase64 = fruizione ? GOVWAY_FRUIZIONI_PROXY_QUERY_BASE64 : GOVWAY_EROGAZIONI_PROXY_QUERY_BASE64;
- }
-
- if(byProtocollo) {
- String protocollo = ProtocolFactoryManager.getInstance().getProtocolByOrganizationType(tipoSoggetto);
- systemPropertyProxyHeader= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyHeader;
- systemPropertyProxyHeaderBase64= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyHeaderBase64;
- systemPropertyProxyQuery= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyQuery;
- systemPropertyProxyQueryBase64= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyQueryBase64;
- }
-
- String header = System.getProperty(systemPropertyProxyHeader);
- String query = System.getProperty(systemPropertyProxyQuery);
-
- if(
- (header==null || "".equals(header)) &&
- (query==null || "".equals(query))
- ) {
- // verrĂ usata quella di default
- return null;
- }
-
- ForwardProxyConfigurazione config = new ForwardProxyConfigurazione();
-
- if(header!=null && !"".equals(header)) {
- config.setHeader(header);
-
- String base64 = System.getProperty(systemPropertyProxyHeaderBase64);
- if(base64!=null && !"".equals(base64)) {
- if(TRUE.equalsIgnoreCase(base64)) {
- config.setHeaderBase64(true);
- }
- else if(FALSE.equalsIgnoreCase(base64)) {
- config.setHeaderBase64(false);
- }
- else {
- config.setHeaderBase64(DEFAULT_GOVWAY_PROXY_HEADER_BASE64);
- }
- }
- else {
- config.setHeaderBase64(DEFAULT_GOVWAY_PROXY_HEADER_BASE64);
- }
- }
-
- if(query!=null && !"".equals(query)) {
- config.setQuery(query);
-
- String base64 = System.getProperty(systemPropertyProxyQueryBase64);
- if(base64!=null && !"".equals(base64)) {
- if(TRUE.equalsIgnoreCase(base64)) {
- config.setQueryBase64(true);
- }
- else if(FALSE.equalsIgnoreCase(base64)) {
- config.setQueryBase64(false);
- }
- else {
- config.setQueryBase64(DEFAULT_GOVWAY_PROXY_QUERY_BASE64);
- }
- }
- else {
- config.setQueryBase64(DEFAULT_GOVWAY_PROXY_QUERY_BASE64);
- }
- }
-
- return config;
-
- }
-
- private static ForwardProxyConfigurazioneToken readForwardProxyConfigurazioneToken(boolean byProtocollo, String tipoSoggetto, Boolean fruizione, IDGenericProperties policy) throws ProtocolException {
-
- String systemPropertyProxyTokenDynamicDiscovery = GOVWAY_PROXY_TOKEN_DYNAMIC_DISCOVERY;
- String systemPropertyProxyTokenValidazioneJwt = GOVWAY_PROXY_TOKEN_VALIDAZIONE_JWT;
- String systemPropertyProxyTokenIntrospection = GOVWAY_PROXY_TOKEN_INTROSPECTION;
- String systemPropertyProxyTokenUserInfo = GOVWAY_PROXY_TOKEN_USERINFO;
- String systemPropertyProxyTokenRetrieve = GOVWAY_PROXY_TOKEN_RETRIEVE;
- String systemPropertyProxyAttributeAuthority = GOVWAY_PROXY_ATTRIBUTE_AUTHORITY;
- String systemPropertyProxyAttributeAuthorityResponseJwtValidation = GOVWAY_PROXY_ATTRIBUTE_AUTHORITY_RESPONSE_JWT_VALIDATION;
-
- if(fruizione!=null) {
- systemPropertyProxyTokenDynamicDiscovery = fruizione ? GOVWAY_FRUIZIONI_PROXY_TOKEN_DYNAMIC_DISCOVERY : GOVWAY_EROGAZIONI_PROXY_TOKEN_DYNAMIC_DISCOVERY;
- systemPropertyProxyTokenValidazioneJwt = fruizione ? GOVWAY_FRUIZIONI_PROXY_TOKEN_VALIDAZIONE_JWT : GOVWAY_EROGAZIONI_PROXY_TOKEN_VALIDAZIONE_JWT;
- systemPropertyProxyTokenIntrospection = fruizione ? GOVWAY_FRUIZIONI_PROXY_TOKEN_INTROSPECTION : GOVWAY_EROGAZIONI_PROXY_TOKEN_INTROSPECTION;
- systemPropertyProxyTokenUserInfo = fruizione ? GOVWAY_FRUIZIONI_PROXY_TOKEN_USERINFO : GOVWAY_EROGAZIONI_PROXY_TOKEN_USERINFO;
- systemPropertyProxyTokenRetrieve = fruizione ? GOVWAY_FRUIZIONI_PROXY_TOKEN_RETRIEVE : GOVWAY_EROGAZIONI_PROXY_TOKEN_RETRIEVE;
- systemPropertyProxyAttributeAuthority = fruizione ? GOVWAY_FRUIZIONI_PROXY_ATTRIBUTE_AUTHORITY : GOVWAY_EROGAZIONI_PROXY_ATTRIBUTE_AUTHORITY;
- systemPropertyProxyAttributeAuthorityResponseJwtValidation = fruizione ? GOVWAY_FRUIZIONI_PROXY_ATTRIBUTE_AUTHORITY_RESPONSE_JWT_VALIDATION : GOVWAY_EROGAZIONI_PROXY_ATTRIBUTE_AUTHORITY_RESPONSE_JWT_VALIDATION;
- }
-
- if(byProtocollo) {
- String protocollo = ProtocolFactoryManager.getInstance().getProtocolByOrganizationType(tipoSoggetto);
- systemPropertyProxyTokenDynamicDiscovery= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyTokenDynamicDiscovery;
- systemPropertyProxyTokenValidazioneJwt= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyTokenValidazioneJwt;
- systemPropertyProxyTokenIntrospection= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyTokenIntrospection;
- systemPropertyProxyTokenUserInfo= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyTokenUserInfo;
- systemPropertyProxyTokenRetrieve= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyTokenRetrieve;
- systemPropertyProxyAttributeAuthority= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyAttributeAuthority;
- systemPropertyProxyAttributeAuthorityResponseJwtValidation= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyAttributeAuthorityResponseJwtValidation;
- }
-
- if(policy!=null && policy.getNome()!=null) {
- systemPropertyProxyTokenDynamicDiscovery+=GOVWAY_SEPARATORE+policy.getNome();
- systemPropertyProxyTokenValidazioneJwt+=GOVWAY_SEPARATORE+policy.getNome();
- systemPropertyProxyTokenIntrospection+=GOVWAY_SEPARATORE+policy.getNome();
- systemPropertyProxyTokenUserInfo+=GOVWAY_SEPARATORE+policy.getNome();
- systemPropertyProxyTokenRetrieve+=GOVWAY_SEPARATORE+policy.getNome();
- systemPropertyProxyAttributeAuthority+=GOVWAY_SEPARATORE+policy.getNome();
- systemPropertyProxyAttributeAuthorityResponseJwtValidation+=GOVWAY_SEPARATORE+policy.getNome();
- }
-
- String dynamicDiscovery = System.getProperty(systemPropertyProxyTokenDynamicDiscovery);
- String validazioneJwt = System.getProperty(systemPropertyProxyTokenValidazioneJwt);
- String introspection = System.getProperty(systemPropertyProxyTokenIntrospection);
- String userInfo = System.getProperty(systemPropertyProxyTokenUserInfo);
- String retrieve = System.getProperty(systemPropertyProxyTokenRetrieve);
- String attributeAuthority = System.getProperty(systemPropertyProxyAttributeAuthority);
- String attributeAuthorityResponseJwtValidation = System.getProperty(systemPropertyProxyAttributeAuthorityResponseJwtValidation);
-
- if(
- (dynamicDiscovery==null || "".equals(dynamicDiscovery)) &&
- (validazioneJwt==null || "".equals(validazioneJwt)) &&
- (introspection==null || "".equals(introspection)) &&
- (userInfo==null || "".equals(userInfo)) &&
- (retrieve==null || "".equals(retrieve)) &&
- (attributeAuthority==null || "".equals(attributeAuthority)) &&
- (attributeAuthorityResponseJwtValidation==null || "".equals(attributeAuthorityResponseJwtValidation))
- ) {
- // verrĂ usata quella di default
- return null;
- }
-
- ForwardProxyConfigurazioneToken config = new ForwardProxyConfigurazioneToken();
-
- if(dynamicDiscovery!=null && !"".equals(dynamicDiscovery)) {
- if(TRUE.equalsIgnoreCase(dynamicDiscovery)) {
- config.tokenDynamicDiscoveryEnabled = true;
- }
- else if(FALSE.equalsIgnoreCase(dynamicDiscovery)) {
- config.tokenDynamicDiscoveryEnabled = false;
- }
- else {
- config.tokenDynamicDiscoveryEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_DYNAMIC_DISCOVERY;
- }
- }
- else {
- config.tokenDynamicDiscoveryEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_DYNAMIC_DISCOVERY;
- }
-
- if(validazioneJwt!=null && !"".equals(validazioneJwt)) {
- if(TRUE.equalsIgnoreCase(validazioneJwt)) {
- config.tokenJwtValidationEnabled = true;
- }
- else if(FALSE.equalsIgnoreCase(validazioneJwt)) {
- config.tokenJwtValidationEnabled = false;
- }
- else {
- config.tokenJwtValidationEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_VALIDAZIONE_JWT;
- }
- }
- else {
- config.tokenJwtValidationEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_VALIDAZIONE_JWT;
- }
-
- if(introspection!=null && !"".equals(introspection)) {
- if(TRUE.equalsIgnoreCase(introspection)) {
- config.tokenIntrospectionEnabled = true;
- }
- else if(FALSE.equalsIgnoreCase(introspection)) {
- config.tokenIntrospectionEnabled = false;
- }
- else {
- config.tokenIntrospectionEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_INTROSPECTION;
- }
- }
- else {
- config.tokenIntrospectionEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_INTROSPECTION;
- }
-
- if(userInfo!=null && !"".equals(userInfo)) {
- if(TRUE.equalsIgnoreCase(userInfo)) {
- config.tokenUserInfoEnabled = true;
- }
- else if(FALSE.equalsIgnoreCase(userInfo)) {
- config.tokenUserInfoEnabled = false;
- }
- else {
- config.tokenUserInfoEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_USERINFO;
- }
- }
- else {
- config.tokenUserInfoEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_USERINFO;
- }
-
- if(retrieve!=null && !"".equals(retrieve)) {
- if(TRUE.equalsIgnoreCase(retrieve)) {
- config.tokenRetrieveEnabled = true;
- }
- else if(FALSE.equalsIgnoreCase(retrieve)) {
- config.tokenRetrieveEnabled = false;
- }
- else {
- config.tokenRetrieveEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_RETRIEVE;
- }
- }
- else {
- config.tokenRetrieveEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_RETRIEVE;
- }
-
- if(attributeAuthority!=null && !"".equals(attributeAuthority)) {
- if(TRUE.equalsIgnoreCase(attributeAuthority)) {
- config.attributeAuthorityEnabled = true;
- }
- else if(FALSE.equalsIgnoreCase(attributeAuthority)) {
- config.attributeAuthorityEnabled = false;
- }
- else {
- config.attributeAuthorityEnabled = DEFAULT_GOVWAY_PROXY_ATTRIBUTE_AUTHORITY;
- }
- }
- else {
- config.attributeAuthorityEnabled = DEFAULT_GOVWAY_PROXY_ATTRIBUTE_AUTHORITY;
- }
-
- if(attributeAuthorityResponseJwtValidation!=null && !"".equals(attributeAuthorityResponseJwtValidation)) {
- if(TRUE.equalsIgnoreCase(attributeAuthorityResponseJwtValidation)) {
- config.attributeAuthorityResponseJwtValidationEnabled = true;
- }
- else if(FALSE.equalsIgnoreCase(attributeAuthorityResponseJwtValidation)) {
- config.attributeAuthorityResponseJwtValidationEnabled = false;
- }
- else {
- config.attributeAuthorityResponseJwtValidationEnabled = DEFAULT_GOVWAY_PROXY_ATTRIBUTE_AUTHORITY_RESPONSE_JWT_VALIDATION;
- }
- }
- else {
- config.attributeAuthorityResponseJwtValidationEnabled = DEFAULT_GOVWAY_PROXY_ATTRIBUTE_AUTHORITY_RESPONSE_JWT_VALIDATION;
- }
-
- return config;
-
- }
-
- private static ForwardProxy readForwardProxyTag(String tag, Boolean fruizione, IDGenericProperties policy,
- ForwardProxyConfigurazione defaultConfig, ForwardProxyConfigurazioneToken defaultConfigToken) throws ProtocolException {
- return readForwardProxy(tag, false, null, null, fruizione, policy,
- defaultConfig, defaultConfigToken);
- }
- private static ForwardProxy readConfigurazioneDominioByTipo(String tipoSoggetto, String nomeSoggetto, Boolean fruizione, IDGenericProperties policy,
- ForwardProxyConfigurazione defaultConfig, ForwardProxyConfigurazioneToken defaultConfigToken) throws ProtocolException {
- return readForwardProxy(null, false, tipoSoggetto, nomeSoggetto, fruizione, policy,
- defaultConfig, defaultConfigToken);
- }
- private static ForwardProxy readConfigurazioneDominioByProtocollo(String tipoSoggetto, String nomeSoggetto, Boolean fruizione, IDGenericProperties policy,
- ForwardProxyConfigurazione defaultConfig, ForwardProxyConfigurazioneToken defaultConfigToken) throws ProtocolException {
- return readForwardProxy(null, true, tipoSoggetto, nomeSoggetto, fruizione, policy,
- defaultConfig, defaultConfigToken);
- }
- private static ForwardProxy readConfigurazioneDominio(String nomeSoggetto, Boolean fruizione, IDGenericProperties policy,
- ForwardProxyConfigurazione defaultConfig, ForwardProxyConfigurazioneToken defaultConfigToken) throws ProtocolException {
- return readForwardProxy(null, false, null, nomeSoggetto, fruizione, policy,
- defaultConfig, defaultConfigToken);
- }
- private static ForwardProxy readConfigurazioneProtocollo(String tipoSoggetto, Boolean fruizione, IDGenericProperties policy,
- ForwardProxyConfigurazione defaultConfig, ForwardProxyConfigurazioneToken defaultConfigToken) throws ProtocolException {
- return readForwardProxy(null, true, tipoSoggetto, null, fruizione, policy,
- defaultConfig, defaultConfigToken);
- }
- private static ForwardProxy readConfigurazione(Boolean fruizione, IDGenericProperties policy,
- ForwardProxyConfigurazione defaultConfig, ForwardProxyConfigurazioneToken defaultConfigToken) throws ProtocolException {
- return readForwardProxy(null, false, null, null, fruizione, policy,
- defaultConfig, defaultConfigToken);
- }
- private static ForwardProxy readForwardProxy(String tag, boolean byProtocollo, String tipoSoggetto, String nomeSoggetto, Boolean fruizione, IDGenericProperties policy,
- ForwardProxyConfigurazione defaultConfig, ForwardProxyConfigurazioneToken defaultConfigToken) throws ProtocolException {
-
- String systemPropertyProxy = GOVWAY_PROXY;
- String systemPropertyProxyHeader = GOVWAY_PROXY_HEADER;
- String systemPropertyProxyHeaderBase64 = GOVWAY_PROXY_HEADER_BASE64;
- String systemPropertyProxyQuery = GOVWAY_PROXY_QUERY;
- String systemPropertyProxyQueryBase64 = GOVWAY_PROXY_QUERY_BASE64;
-
- if(fruizione!=null) {
- systemPropertyProxy = fruizione ? GOVWAY_FRUIZIONI_PROXY : GOVWAY_EROGAZIONI_PROXY;
- systemPropertyProxyHeader = fruizione ? GOVWAY_FRUIZIONI_PROXY_HEADER : GOVWAY_EROGAZIONI_PROXY_HEADER;
- systemPropertyProxyHeaderBase64 = fruizione ? GOVWAY_FRUIZIONI_PROXY_HEADER_BASE64 : GOVWAY_EROGAZIONI_PROXY_HEADER_BASE64;
- systemPropertyProxyQuery = fruizione ? GOVWAY_FRUIZIONI_PROXY_QUERY : GOVWAY_EROGAZIONI_PROXY_QUERY;
- systemPropertyProxyQueryBase64 = fruizione ? GOVWAY_FRUIZIONI_PROXY_QUERY_BASE64 : GOVWAY_EROGAZIONI_PROXY_QUERY_BASE64;
- }
-
- if(tag!=null) {
- systemPropertyProxy= GOVWAY_PREFISSO_TAG_PROXY+ tag +GOVWAY_SEPARATORE+ systemPropertyProxy;
- systemPropertyProxyHeader= GOVWAY_PREFISSO_TAG_PROXY+ tag +GOVWAY_SEPARATORE+ systemPropertyProxyHeader;
- systemPropertyProxyHeaderBase64= GOVWAY_PREFISSO_TAG_PROXY+ tag +GOVWAY_SEPARATORE+ systemPropertyProxyHeaderBase64;
- systemPropertyProxyQuery= GOVWAY_PREFISSO_TAG_PROXY+ tag +GOVWAY_SEPARATORE+ systemPropertyProxyQuery;
- systemPropertyProxyQueryBase64= GOVWAY_PREFISSO_TAG_PROXY+ tag +GOVWAY_SEPARATORE+ systemPropertyProxyQueryBase64;
- }
- else if(nomeSoggetto!=null) {
- if(tipoSoggetto==null) {
- systemPropertyProxy= GOVWAY_PREFISSO_DOMINIO_PROXY + nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxy;
- systemPropertyProxyHeader= GOVWAY_PREFISSO_DOMINIO_PROXY + nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyHeader;
- systemPropertyProxyHeaderBase64= GOVWAY_PREFISSO_DOMINIO_PROXY + nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyHeaderBase64;
- systemPropertyProxyQuery= GOVWAY_PREFISSO_DOMINIO_PROXY + nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyQuery;
- systemPropertyProxyQueryBase64= GOVWAY_PREFISSO_DOMINIO_PROXY + nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyQueryBase64;
- }
- else {
- if(byProtocollo) {
- String protocollo = ProtocolFactoryManager.getInstance().getProtocolByOrganizationType(tipoSoggetto);
- systemPropertyProxy= GOVWAY_PREFISSO_DOMINIO_PROXY + protocollo+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxy;
- systemPropertyProxyHeader= GOVWAY_PREFISSO_DOMINIO_PROXY + protocollo+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyHeader;
- systemPropertyProxyHeaderBase64= GOVWAY_PREFISSO_DOMINIO_PROXY + protocollo+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyHeaderBase64;
- systemPropertyProxyQuery= GOVWAY_PREFISSO_DOMINIO_PROXY + protocollo+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyQuery;
- systemPropertyProxyQueryBase64= GOVWAY_PREFISSO_DOMINIO_PROXY + protocollo+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyQueryBase64;
- }
- else {
- systemPropertyProxy= GOVWAY_PREFISSO_DOMINIO_PROXY + tipoSoggetto+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxy;
- systemPropertyProxyHeader= GOVWAY_PREFISSO_DOMINIO_PROXY + tipoSoggetto+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyHeader;
- systemPropertyProxyHeaderBase64= GOVWAY_PREFISSO_DOMINIO_PROXY + tipoSoggetto+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyHeaderBase64;
- systemPropertyProxyQuery= GOVWAY_PREFISSO_DOMINIO_PROXY + tipoSoggetto+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyQuery;
- systemPropertyProxyQueryBase64= GOVWAY_PREFISSO_DOMINIO_PROXY + tipoSoggetto+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyQueryBase64;
- }
- }
- }
- else if(byProtocollo) {
- String protocollo = ProtocolFactoryManager.getInstance().getProtocolByOrganizationType(tipoSoggetto);
- systemPropertyProxy= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxy;
- systemPropertyProxyHeader= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyHeader;
- systemPropertyProxyHeaderBase64= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyHeaderBase64;
- systemPropertyProxyQuery= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyQuery;
- systemPropertyProxyQueryBase64= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyQueryBase64;
- }
-
-
-
- String systemPropertyProxyTokenDynamicDiscovery = GOVWAY_PROXY_TOKEN_DYNAMIC_DISCOVERY;
- String systemPropertyProxyTokenValidazioneJwt = GOVWAY_PROXY_TOKEN_VALIDAZIONE_JWT;
- String systemPropertyProxyTokenIntrospection = GOVWAY_PROXY_TOKEN_INTROSPECTION;
- String systemPropertyProxyTokenUserInfo = GOVWAY_PROXY_TOKEN_USERINFO;
- String systemPropertyProxyTokenRetrieve = GOVWAY_PROXY_TOKEN_RETRIEVE;
- String systemPropertyProxyAttributeAuthority = GOVWAY_PROXY_ATTRIBUTE_AUTHORITY;
- String systemPropertyProxyAttributeAuthorityResponseJwtValidation = GOVWAY_PROXY_ATTRIBUTE_AUTHORITY_RESPONSE_JWT_VALIDATION;
-
- if(fruizione!=null) {
- systemPropertyProxyTokenDynamicDiscovery = fruizione ? GOVWAY_FRUIZIONI_PROXY_TOKEN_DYNAMIC_DISCOVERY : GOVWAY_EROGAZIONI_PROXY_TOKEN_DYNAMIC_DISCOVERY;
- systemPropertyProxyTokenValidazioneJwt = fruizione ? GOVWAY_FRUIZIONI_PROXY_TOKEN_VALIDAZIONE_JWT : GOVWAY_EROGAZIONI_PROXY_TOKEN_VALIDAZIONE_JWT;
- systemPropertyProxyTokenIntrospection = fruizione ? GOVWAY_FRUIZIONI_PROXY_TOKEN_INTROSPECTION : GOVWAY_EROGAZIONI_PROXY_TOKEN_INTROSPECTION;
- systemPropertyProxyTokenUserInfo = fruizione ? GOVWAY_FRUIZIONI_PROXY_TOKEN_USERINFO : GOVWAY_EROGAZIONI_PROXY_TOKEN_USERINFO;
- systemPropertyProxyTokenRetrieve = fruizione ? GOVWAY_FRUIZIONI_PROXY_TOKEN_RETRIEVE : GOVWAY_EROGAZIONI_PROXY_TOKEN_RETRIEVE;
- systemPropertyProxyAttributeAuthority = fruizione ? GOVWAY_FRUIZIONI_PROXY_ATTRIBUTE_AUTHORITY : GOVWAY_EROGAZIONI_PROXY_ATTRIBUTE_AUTHORITY;
- systemPropertyProxyAttributeAuthorityResponseJwtValidation = fruizione ? GOVWAY_FRUIZIONI_PROXY_ATTRIBUTE_AUTHORITY_RESPONSE_JWT_VALIDATION : GOVWAY_EROGAZIONI_PROXY_ATTRIBUTE_AUTHORITY_RESPONSE_JWT_VALIDATION;
- }
-
- if(tag!=null) {
- systemPropertyProxyTokenDynamicDiscovery= GOVWAY_PREFISSO_TAG_PROXY+ tag +GOVWAY_SEPARATORE+ systemPropertyProxyTokenDynamicDiscovery;
- systemPropertyProxyTokenValidazioneJwt= GOVWAY_PREFISSO_TAG_PROXY+ tag +GOVWAY_SEPARATORE+ systemPropertyProxyTokenValidazioneJwt;
- systemPropertyProxyTokenIntrospection= GOVWAY_PREFISSO_TAG_PROXY+ tag +GOVWAY_SEPARATORE+ systemPropertyProxyTokenIntrospection;
- systemPropertyProxyTokenUserInfo= GOVWAY_PREFISSO_TAG_PROXY+ tag +GOVWAY_SEPARATORE+ systemPropertyProxyTokenUserInfo;
- systemPropertyProxyTokenRetrieve= GOVWAY_PREFISSO_TAG_PROXY+ tag +GOVWAY_SEPARATORE+ systemPropertyProxyTokenRetrieve;
- systemPropertyProxyAttributeAuthority= GOVWAY_PREFISSO_TAG_PROXY+ tag +GOVWAY_SEPARATORE+ systemPropertyProxyAttributeAuthority;
- systemPropertyProxyAttributeAuthorityResponseJwtValidation= GOVWAY_PREFISSO_TAG_PROXY+ tag +GOVWAY_SEPARATORE+ systemPropertyProxyAttributeAuthorityResponseJwtValidation;
- }
- else if(nomeSoggetto!=null) {
- if(tipoSoggetto==null) {
- systemPropertyProxyTokenDynamicDiscovery= GOVWAY_PREFISSO_DOMINIO_PROXY + nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenDynamicDiscovery;
- systemPropertyProxyTokenValidazioneJwt= GOVWAY_PREFISSO_DOMINIO_PROXY + nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenValidazioneJwt;
- systemPropertyProxyTokenIntrospection= GOVWAY_PREFISSO_DOMINIO_PROXY + nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenIntrospection;
- systemPropertyProxyTokenUserInfo= GOVWAY_PREFISSO_DOMINIO_PROXY + nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenUserInfo;
- systemPropertyProxyTokenRetrieve= GOVWAY_PREFISSO_DOMINIO_PROXY + nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenRetrieve;
- systemPropertyProxyAttributeAuthority= GOVWAY_PREFISSO_DOMINIO_PROXY + nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyAttributeAuthority;
- systemPropertyProxyAttributeAuthorityResponseJwtValidation= GOVWAY_PREFISSO_DOMINIO_PROXY + nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyAttributeAuthorityResponseJwtValidation;
- }
- else {
- if(byProtocollo) {
- String protocollo = ProtocolFactoryManager.getInstance().getProtocolByOrganizationType(tipoSoggetto);
- systemPropertyProxyTokenDynamicDiscovery= GOVWAY_PREFISSO_DOMINIO_PROXY + protocollo+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenDynamicDiscovery;
- systemPropertyProxyTokenValidazioneJwt= GOVWAY_PREFISSO_DOMINIO_PROXY + protocollo+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenValidazioneJwt;
- systemPropertyProxyTokenIntrospection= GOVWAY_PREFISSO_DOMINIO_PROXY + protocollo+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenIntrospection;
- systemPropertyProxyTokenUserInfo= GOVWAY_PREFISSO_DOMINIO_PROXY + protocollo+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenUserInfo;
- systemPropertyProxyTokenRetrieve= GOVWAY_PREFISSO_DOMINIO_PROXY + protocollo+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenRetrieve;
- systemPropertyProxyAttributeAuthority= GOVWAY_PREFISSO_DOMINIO_PROXY + protocollo+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyAttributeAuthority;
- systemPropertyProxyAttributeAuthorityResponseJwtValidation= GOVWAY_PREFISSO_DOMINIO_PROXY + protocollo+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyAttributeAuthorityResponseJwtValidation;
- }
- else {
- systemPropertyProxyTokenDynamicDiscovery= GOVWAY_PREFISSO_DOMINIO_PROXY + tipoSoggetto+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenDynamicDiscovery;
- systemPropertyProxyTokenValidazioneJwt= GOVWAY_PREFISSO_DOMINIO_PROXY + tipoSoggetto+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenValidazioneJwt;
- systemPropertyProxyTokenIntrospection= GOVWAY_PREFISSO_DOMINIO_PROXY + tipoSoggetto+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenIntrospection;
- systemPropertyProxyTokenUserInfo= GOVWAY_PREFISSO_DOMINIO_PROXY + tipoSoggetto+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenUserInfo;
- systemPropertyProxyTokenRetrieve= GOVWAY_PREFISSO_DOMINIO_PROXY + tipoSoggetto+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyTokenRetrieve;
- systemPropertyProxyAttributeAuthority= GOVWAY_PREFISSO_DOMINIO_PROXY + tipoSoggetto+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyAttributeAuthority;
- systemPropertyProxyAttributeAuthorityResponseJwtValidation= GOVWAY_PREFISSO_DOMINIO_PROXY + tipoSoggetto+GOVWAY_SEPARATORE+nomeSoggetto +GOVWAY_SEPARATORE+ systemPropertyProxyAttributeAuthorityResponseJwtValidation;
- }
- }
- }
- else if(byProtocollo) {
- String protocollo = ProtocolFactoryManager.getInstance().getProtocolByOrganizationType(tipoSoggetto);
- systemPropertyProxyTokenDynamicDiscovery= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyTokenDynamicDiscovery;
- systemPropertyProxyTokenValidazioneJwt= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyTokenValidazioneJwt;
- systemPropertyProxyTokenIntrospection= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyTokenIntrospection;
- systemPropertyProxyTokenUserInfo= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyTokenUserInfo;
- systemPropertyProxyTokenRetrieve= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyTokenRetrieve;
- systemPropertyProxyAttributeAuthority= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyAttributeAuthority;
- systemPropertyProxyAttributeAuthorityResponseJwtValidation= GOVWAY_PREFISSO_PROTOCOLLO_PROXY+ protocollo +GOVWAY_SEPARATORE+ systemPropertyProxyAttributeAuthorityResponseJwtValidation;
- }
-
-
- String systemPropertyProxyTokenDynamicDiscoveryNomePolicy = null;
- String systemPropertyProxyTokenValidazioneJwtNomePolicy = null;
- String systemPropertyProxyTokenIntrospectionNomePolicy = null;
- String systemPropertyProxyTokenUserInfoNomePolicy = null;
- String systemPropertyProxyTokenRetrieveNomePolicy = null;
- String systemPropertyProxyAttributeAuthorityNomePolicy = null;
- String systemPropertyProxyAttributeAuthorityResponseJwtValidationNomePolicy = null;
-
- if(policy!=null && policy.getNome()!=null) {
- systemPropertyProxyTokenDynamicDiscoveryNomePolicy = systemPropertyProxyTokenDynamicDiscovery+GOVWAY_SEPARATORE+policy.getNome();
- systemPropertyProxyTokenValidazioneJwtNomePolicy = systemPropertyProxyTokenValidazioneJwt+GOVWAY_SEPARATORE+policy.getNome();
- systemPropertyProxyTokenIntrospectionNomePolicy = systemPropertyProxyTokenIntrospection+GOVWAY_SEPARATORE+policy.getNome();
- systemPropertyProxyTokenUserInfoNomePolicy = systemPropertyProxyTokenUserInfo+GOVWAY_SEPARATORE+policy.getNome();
- systemPropertyProxyTokenRetrieveNomePolicy = systemPropertyProxyTokenRetrieve+GOVWAY_SEPARATORE+policy.getNome();
- systemPropertyProxyAttributeAuthorityNomePolicy = systemPropertyProxyAttributeAuthority+GOVWAY_SEPARATORE+policy.getNome();
- systemPropertyProxyAttributeAuthorityResponseJwtValidationNomePolicy = systemPropertyProxyAttributeAuthorityResponseJwtValidation+GOVWAY_SEPARATORE+policy.getNome();
- }
-
-
-
-
- ForwardProxy sConfig = new ForwardProxy();
-
- String url = System.getProperty(systemPropertyProxy);
- if(url!=null && !"".equals(url)) {
- sConfig.enabled=true;
- sConfig.url = url;
-
-
- // gestione header/query
-
- String header = System.getProperty(systemPropertyProxyHeader);
- String query = System.getProperty(systemPropertyProxyQuery);
-
- if(
- (header==null || "".equals(header)) &&
- (query==null || "".equals(query))
- ) {
- // verrĂ usata quella di default
- sConfig.config = defaultConfig;
- }
- else {
-
- ForwardProxyConfigurazione config = new ForwardProxyConfigurazione();
- sConfig.config = config;
-
- if(header!=null && !"".equals(header)) {
- config.setHeader(header);
-
- String base64 = System.getProperty(systemPropertyProxyHeaderBase64);
- if(base64!=null && !"".equals(base64)) {
- if(TRUE.equalsIgnoreCase(base64)) {
- config.setHeaderBase64(true);
- }
- else if(FALSE.equalsIgnoreCase(base64)) {
- config.setHeaderBase64(false);
- }
- else {
- config.setHeaderBase64(DEFAULT_GOVWAY_PROXY_HEADER_BASE64);
- }
- }
- else {
- config.setHeaderBase64(DEFAULT_GOVWAY_PROXY_HEADER_BASE64);
- }
- }
-
- if(query!=null && !"".equals(query)) {
- config.setQuery(query);
-
- String base64 = System.getProperty(systemPropertyProxyQueryBase64);
- if(base64!=null && !"".equals(base64)) {
- if(TRUE.equalsIgnoreCase(base64)) {
- config.setQueryBase64(true);
- }
- else if(FALSE.equalsIgnoreCase(base64)) {
- config.setQueryBase64(false);
- }
- else {
- config.setQueryBase64(DEFAULT_GOVWAY_PROXY_QUERY_BASE64);
- }
- }
- else {
- config.setQueryBase64(DEFAULT_GOVWAY_PROXY_QUERY_BASE64);
- }
- }
-
- }
-
-
- // gestione token
-
- String dynamicDiscovery = null;
- if(systemPropertyProxyTokenDynamicDiscoveryNomePolicy!=null) {
- dynamicDiscovery = System.getProperty(systemPropertyProxyTokenDynamicDiscoveryNomePolicy);
- }
- if((dynamicDiscovery==null || "".equals(dynamicDiscovery))) {
- dynamicDiscovery = System.getProperty(systemPropertyProxyTokenDynamicDiscovery);
- }
-
- String validazioneJwt = null;
- if(systemPropertyProxyTokenValidazioneJwtNomePolicy!=null) {
- validazioneJwt = System.getProperty(systemPropertyProxyTokenValidazioneJwtNomePolicy);
- }
- if((validazioneJwt==null || "".equals(validazioneJwt))) {
- validazioneJwt = System.getProperty(systemPropertyProxyTokenValidazioneJwt);
- }
-
- String introspection = null;
- if(systemPropertyProxyTokenIntrospectionNomePolicy!=null) {
- introspection = System.getProperty(systemPropertyProxyTokenIntrospectionNomePolicy);
- }
- if((introspection==null || "".equals(introspection))) {
- introspection = System.getProperty(systemPropertyProxyTokenIntrospection);
- }
-
- String userInfo = null;
- if(systemPropertyProxyTokenUserInfoNomePolicy!=null) {
- userInfo = System.getProperty(systemPropertyProxyTokenUserInfoNomePolicy);
- }
- if((userInfo==null || "".equals(userInfo))) {
- userInfo = System.getProperty(systemPropertyProxyTokenUserInfo);
- }
-
- String retrieve = null;
- if(systemPropertyProxyTokenRetrieveNomePolicy!=null) {
- retrieve = System.getProperty(systemPropertyProxyTokenRetrieveNomePolicy);
- }
- if((retrieve==null || "".equals(retrieve))) {
- retrieve = System.getProperty(systemPropertyProxyTokenRetrieve);
- }
-
- String attributeAuthority = null;
- if(systemPropertyProxyAttributeAuthorityNomePolicy!=null) {
- attributeAuthority = System.getProperty(systemPropertyProxyAttributeAuthorityNomePolicy);
- }
- if((attributeAuthority==null || "".equals(attributeAuthority))) {
- attributeAuthority = System.getProperty(systemPropertyProxyAttributeAuthority);
- }
-
- String attributeAuthorityResponseJwtValidation = null;
- if(systemPropertyProxyAttributeAuthorityResponseJwtValidationNomePolicy!=null) {
- attributeAuthorityResponseJwtValidation = System.getProperty(systemPropertyProxyAttributeAuthorityResponseJwtValidationNomePolicy);
- }
- if((attributeAuthorityResponseJwtValidation==null || "".equals(attributeAuthorityResponseJwtValidation))) {
- attributeAuthorityResponseJwtValidation = System.getProperty(systemPropertyProxyAttributeAuthorityResponseJwtValidation);
- }
-
- if(
- (dynamicDiscovery==null || "".equals(dynamicDiscovery)) &&
- (validazioneJwt==null || "".equals(validazioneJwt)) &&
- (introspection==null || "".equals(introspection)) &&
- (userInfo==null || "".equals(userInfo)) &&
- (retrieve==null || "".equals(retrieve)) &&
- (attributeAuthority==null || "".equals(attributeAuthority)) &&
- (attributeAuthorityResponseJwtValidation==null || "".equals(attributeAuthorityResponseJwtValidation))
- ) {
- // verrĂ usata quella di default
- sConfig.configToken = defaultConfigToken;
- }
- else{
-
- ForwardProxyConfigurazioneToken config = new ForwardProxyConfigurazioneToken();
- sConfig.configToken = config;
-
- if(dynamicDiscovery!=null && !"".equals(dynamicDiscovery)) {
- if(TRUE.equalsIgnoreCase(dynamicDiscovery)) {
- config.tokenDynamicDiscoveryEnabled = true;
- }
- else if(FALSE.equalsIgnoreCase(dynamicDiscovery)) {
- config.tokenDynamicDiscoveryEnabled = false;
- }
- else {
- config.tokenDynamicDiscoveryEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_DYNAMIC_DISCOVERY;
- }
- }
- else {
- config.tokenDynamicDiscoveryEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_DYNAMIC_DISCOVERY;
- }
-
- if(validazioneJwt!=null && !"".equals(validazioneJwt)) {
- if(TRUE.equalsIgnoreCase(validazioneJwt)) {
- config.tokenJwtValidationEnabled = true;
- }
- else if(FALSE.equalsIgnoreCase(validazioneJwt)) {
- config.tokenJwtValidationEnabled = false;
- }
- else {
- config.tokenJwtValidationEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_VALIDAZIONE_JWT;
- }
- }
- else {
- config.tokenJwtValidationEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_VALIDAZIONE_JWT;
- }
-
- if(introspection!=null && !"".equals(introspection)) {
- if(TRUE.equalsIgnoreCase(introspection)) {
- config.tokenIntrospectionEnabled = true;
- }
- else if(FALSE.equalsIgnoreCase(introspection)) {
- config.tokenIntrospectionEnabled = false;
- }
- else {
- config.tokenIntrospectionEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_INTROSPECTION;
- }
- }
- else {
- config.tokenIntrospectionEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_INTROSPECTION;
- }
-
- if(userInfo!=null && !"".equals(userInfo)) {
- if(TRUE.equalsIgnoreCase(userInfo)) {
- config.tokenUserInfoEnabled = true;
- }
- else if(FALSE.equalsIgnoreCase(userInfo)) {
- config.tokenUserInfoEnabled = false;
- }
- else {
- config.tokenUserInfoEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_USERINFO;
- }
- }
- else {
- config.tokenUserInfoEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_USERINFO;
- }
-
- if(retrieve!=null && !"".equals(retrieve)) {
- if(TRUE.equalsIgnoreCase(retrieve)) {
- config.tokenRetrieveEnabled = true;
- }
- else if(FALSE.equalsIgnoreCase(retrieve)) {
- config.tokenRetrieveEnabled = false;
- }
- else {
- config.tokenRetrieveEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_RETRIEVE;
- }
- }
- else {
- config.tokenRetrieveEnabled = DEFAULT_GOVWAY_PROXY_TOKEN_RETRIEVE;
- }
-
- if(attributeAuthority!=null && !"".equals(attributeAuthority)) {
- if(TRUE.equalsIgnoreCase(attributeAuthority)) {
- config.attributeAuthorityEnabled = true;
- }
- else if(FALSE.equalsIgnoreCase(attributeAuthority)) {
- config.attributeAuthorityEnabled = false;
- }
- else {
- config.attributeAuthorityEnabled = DEFAULT_GOVWAY_PROXY_ATTRIBUTE_AUTHORITY;
- }
- }
- else {
- config.attributeAuthorityEnabled = DEFAULT_GOVWAY_PROXY_ATTRIBUTE_AUTHORITY;
- }
-
- if(attributeAuthorityResponseJwtValidation!=null && !"".equals(attributeAuthorityResponseJwtValidation)) {
- if(TRUE.equalsIgnoreCase(attributeAuthorityResponseJwtValidation)) {
- config.attributeAuthorityResponseJwtValidationEnabled = true;
- }
- else if(FALSE.equalsIgnoreCase(attributeAuthorityResponseJwtValidation)) {
- config.attributeAuthorityResponseJwtValidationEnabled = false;
- }
- else {
- config.attributeAuthorityResponseJwtValidationEnabled = DEFAULT_GOVWAY_PROXY_ATTRIBUTE_AUTHORITY_RESPONSE_JWT_VALIDATION;
- }
- }
- else {
- config.attributeAuthorityResponseJwtValidationEnabled = DEFAULT_GOVWAY_PROXY_ATTRIBUTE_AUTHORITY_RESPONSE_JWT_VALIDATION;
- }
- }
- }
-
- return sConfig;
-
- }
-
- @Override
- public String toString(){
- StringBuilder sb = new StringBuilder();
- sb.append("enabled: ").append(this.enabled);
- if(this.enabled) {
- sb.append("\n").append("url: ").append(this.url);
- }
- if(this.config!=null) {
- sb.append("\n").append(this.config.toString());
- }
- if(this.configToken!=null) {
- sb.append("\n").append(this.configToken.toString());
- }
- return sb.toString();
- }
-
-
- private boolean enabled = false;
- private String url;
- private ForwardProxyConfigurazione config;
- private ForwardProxyConfigurazioneToken configToken;
-
- public ForwardProxy() {
- // nop
- }
-
- public boolean isEnabled() {
- return this.enabled;
- }
- public void setEnabled(boolean enabled) {
- this.enabled = enabled;
- }
- public String getUrl() {
- return this.url;
- }
- public void setUrl(String url) {
- this.url = url;
- }
- public ForwardProxyConfigurazione getConfig() {
- return this.config;
- }
- public void setConfig(ForwardProxyConfigurazione config) {
- this.config = config;
- }
-
- public ForwardProxyConfigurazioneToken getConfigToken() {
- return this.configToken;
- }
- public void setConfigToken(ForwardProxyConfigurazioneToken configToken) {
- this.configToken = configToken;
- }
-
- }