ReadTimeoutConfigurationUtils.java
/*
* GovWay - A customizable API Gateway
* https://govway.org
*
* Copyright (c) 2005-2024 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.core.controllo_traffico;
import java.util.ArrayList;
import java.util.List;
import org.openspcoop2.core.config.PortaApplicativa;
import org.openspcoop2.core.config.PortaDelegata;
import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
import org.openspcoop2.core.controllo_traffico.constants.RuoloPolicy;
import org.openspcoop2.core.id.IDException;
import org.openspcoop2.core.id.IDServizio;
import org.openspcoop2.core.id.IDSoggetto;
import org.openspcoop2.core.registry.driver.IDServizioFactory;
import org.openspcoop2.pdd.config.ConfigurazionePdDManager;
import org.openspcoop2.pdd.core.connettori.ConnettoreUtils;
import org.openspcoop2.pdd.core.controllo_traffico.policy.PolicyDati;
import org.openspcoop2.pdd.core.controllo_traffico.policy.PolicyVerifier;
import org.openspcoop2.protocol.sdk.IProtocolFactory;
import org.openspcoop2.protocol.sdk.ProtocolException;
/**
* ReadTimeoutConfigurationUtils
*
* @author Poli Andrea (poli@link.it)
* @author $Author$
* @version $Rev$, $Date$
*/
public class ReadTimeoutConfigurationUtils {
private ReadTimeoutConfigurationUtils() {}
public static final String CONFIG_GLOBALE_PROPERTY = "Configurazione globale: ";
public static final String CONFIG_TIMEOUT = "Timeout (ms): ";
public static final String CONFIG_PROFILO = "Profilo: ";
public static final String CONFIG_TIPOLOGIA = "Tipologia: ";
public static final String CONFIG_TIPOLOGIA_VALUE_DELEGATA = "fruizione";
public static final String CONFIG_TIPOLOGIA_VALUE_APPLICATIVA = "erogazione";
public static final String CONFIG_FRUITORE = "Fruitore: ";
public static final String CONFIG_EROGATORE = "Erogatore: ";
public static final String CONFIG_SERVIZIO = "Servizio: ";
public static final String CONFIG_GRUPPO = "Gruppo: ";
public static final String CONFIG_CONNETTORE = "Connettore: ";
public static final String CONFIG_POLICY_NEGOZIAZIONE = "Token Policy Negoziazione: ";
public static final String CONFIG_POLICY_VALIDAZIONE_DYNAMIC_DISCOVERY = "Token Policy Dynamic Discovery: ";
public static final String CONFIG_POLICY_VALIDAZIONE_JWT = "Token Policy Validazione JWT: ";
public static final String CONFIG_POLICY_VALIDAZIONE_INTROSPECTION = "Token Policy Introspection: ";
public static final String CONFIG_POLICY_VALIDAZIONE_USER_INFO = "Token Policy UserInfo: ";
public static final String CONFIG_ATTRIBUTE_AUTHORITY = "Attribute Authority: ";
public static final String CONFIG_ATTRIBUTE_AUTHORITY_VALIDAZIONE_RISPOSTA_JWT = "Attribute Authority - Risposta JWT: ";
public static final String CONFIG_NOME_PORTA_INBOUND_PROPERTY = "Porta Inbound: ";
public static final String CONFIG_NOME_PORTA_OUTBOUND_PROPERTY = "Porta Outbound: ";
public static final String CONFIG_NOME_PORTA_PROPERTY = "Porta: ";
public static final String ID_POLICY_NEGOZIAZIONE = "tokenRetrieve:";
public static final String ID_POLICY_VALIDAZIONE_DYNAMIC_DISCOVERY = "tokenDynamicDiscovery:";
public static final String ID_POLICY_VALIDAZIONE_JWT = "tokenJwtValidation:";
public static final String ID_POLICY_VALIDAZIONE_INTROSPECTION = "tokenIntrospection:";
public static final String ID_POLICY_VALIDAZIONE_USER_INFO = "tokenUserInfo:";
public static final String ID_ATTRIBUTE_AUTHORITY = "attributeAuthority:";
public static final String ID_ATTRIBUTE_AUTHORITY_VALIDAZIONE_RISPOSTA_JWT = "attributeAuthorityResponseJwtValidation:";
public static PolicyDati convertToPolicyDati(String configurazione) throws IDException {
PolicyDati dati = new PolicyDati();
String [] tmp = configurazione.split("\n");
if(tmp!=null && tmp.length>0) {
dati.setProfilo(parse(tmp, CONFIG_PROFILO));
dati.setRuoloPorta(parseRuoloPolicy(tmp, CONFIG_TIPOLOGIA));
dati.setIdFruitore(parseIdSoggetto(tmp, CONFIG_FRUITORE));
dati.setIdServizio(parseIDServizio(tmp));
IDSoggetto erogatore = parseIdSoggetto(tmp, CONFIG_EROGATORE);
if(erogatore!=null) {
if(dati.getIdServizio()!=null) {
dati.setIdServizio(IDServizioFactory.getInstance().getIDServizioFromValuesWithoutCheck(
dati.getIdServizio().getTipo(),
dati.getIdServizio().getNome(),
erogatore.getTipo(),
erogatore.getNome(),
dati.getIdServizio().getVersione()));
}
else {
dati.setIdServizio(IDServizioFactory.getInstance().getIDServizioFromValuesWithoutCheck(
null,
null,
erogatore.getTipo(),
erogatore.getNome(),
-1));
}
}
dati.setGruppo(parse(tmp, CONFIG_GRUPPO));
dati.setConnettore(parse(tmp, CONFIG_CONNETTORE));
dati.setTokenPolicyNegoziazione(parse(tmp, CONFIG_POLICY_NEGOZIAZIONE));
dati.setTokenPolicyValidazioneDynamicDiscovery(parse(tmp, CONFIG_POLICY_VALIDAZIONE_DYNAMIC_DISCOVERY));
dati.setTokenPolicyValidazioneJwt(parse(tmp, CONFIG_POLICY_VALIDAZIONE_JWT));
dati.setTokenPolicyValidazioneIntrospection(parse(tmp, CONFIG_POLICY_VALIDAZIONE_INTROSPECTION));
dati.setTokenPolicyValidazioneUserInfo(parse(tmp, CONFIG_POLICY_VALIDAZIONE_USER_INFO));
dati.setAttributeAuthority(parse(tmp, CONFIG_ATTRIBUTE_AUTHORITY));
dati.setAttributeAuthorityResponseJwt(parse(tmp, CONFIG_ATTRIBUTE_AUTHORITY_VALIDAZIONE_RISPOSTA_JWT));
dati.setNomePorta(parse(tmp, CONFIG_NOME_PORTA_INBOUND_PROPERTY));
if(dati.getNomePorta()==null) {
dati.setNomePorta(parse(tmp, CONFIG_NOME_PORTA_OUTBOUND_PROPERTY));
}
if(dati.getNomePorta()==null) {
dati.setNomePorta(parse(tmp, CONFIG_NOME_PORTA_PROPERTY));
}
}
return dati;
}
private static String parse(String [] tmp, String prefix) {
for (String s : tmp) {
if(s!=null) {
s = s.trim();
if(s.startsWith(prefix) && s.length()>prefix.length()) {
return s.substring(prefix.length(),s.length());
}
}
}
return null;
}
private static RuoloPolicy parseRuoloPolicy(String [] tmp, String prefix) {
String v = parse(tmp, prefix);
if(CONFIG_TIPOLOGIA_VALUE_APPLICATIVA.equals(v)) {
return RuoloPolicy.APPLICATIVA;
}
else if(CONFIG_TIPOLOGIA_VALUE_DELEGATA.equals(v)) {
return RuoloPolicy.DELEGATA;
}
return null;
}
private static IDSoggetto parseIdSoggetto(String [] tmp, String prefix) throws IDException {
String v = parse(tmp, prefix);
if(v!=null) {
return IDSoggetto.toIDSoggetto(v);
}
return null;
}
private static IDServizio parseIDServizio(String [] tmp) throws IDException {
String v = parse(tmp, CONFIG_SERVIZIO);
if(v!=null) {
return parseIDServizio(v);
}
return null;
}
private static IDServizio parseIDServizio(String formatString) throws IDException {
String [] tmp = formatString.split("/");
if(tmp.length!=3) {
throw new IDException("Formato '"+formatString+"' non supportato, attesi 3 valori, trovati "+tmp.length);
}
String tipo = tmp[0];
String nome = tmp[1];
String versioneS = tmp[2];
int versione = Integer.parseInt(versioneS);
return IDServizioFactory.getInstance().getIDServizioFromValuesWithoutCheck(tipo, nome, null, null, versione);
}
public static List<String> buildConfigurazioneEventoAsList(PolicyDati dati, Integer sogliaMs, Boolean globale) {
List<String> l = new ArrayList<>();
if(globale!=null) {
/** l.add(PolicyUtilities.GLOBALE_PROPERTY+globale); Lasciandolo in prima posizione non verrĂ serializzato su DB, ma verrĂ fornito solo all'interfaccia di notifica passiva */
l.add(CONFIG_GLOBALE_PROPERTY+globale);
}
if(sogliaMs!=null) {
l.add(CONFIG_TIMEOUT+sogliaMs);
}
if(dati!=null) {
addConfigurazioneEventoAsList(dati, l);
}
return l;
}
private static void addConfigurazioneEventoAsList(PolicyDati dati, List<String> l) {
if(dati.getProfilo()!=null) {
l.add(CONFIG_PROFILO+dati.getProfilo());
}
addConfigurazioneEventoRuoloPorta(dati, l);
if(dati.getIdFruitore()!=null) {
l.add(CONFIG_FRUITORE+dati.getIdFruitore().toFormatString());
}
if(dati.getIdServizio()!=null) {
if(dati.getIdServizio().getSoggettoErogatore()!=null &&
dati.getIdServizio().getSoggettoErogatore().getTipo()!=null &&
dati.getIdServizio().getSoggettoErogatore().getNome()!=null) {
l.add(CONFIG_EROGATORE+dati.getIdServizio().getSoggettoErogatore().toFormatString());
}
if(dati.getIdServizio().getNome()!=null && dati.getIdServizio().getTipo()!=null && dati.getIdServizio().getVersione()!=null) {
l.add(CONFIG_SERVIZIO+toFormatStringIDServizio(dati.getIdServizio()));
}
}
if(dati.getGruppo()!=null) {
l.add(CONFIG_GRUPPO+dati.getGruppo());
}
if(dati.getConnettore()!=null) {
l.add(CONFIG_CONNETTORE+dati.getConnettore());
}
if(dati.getTokenPolicyNegoziazione()!=null) {
l.add(CONFIG_POLICY_NEGOZIAZIONE+dati.getTokenPolicyNegoziazione());
}
if(dati.getTokenPolicyValidazioneDynamicDiscovery()!=null) {
l.add(CONFIG_POLICY_VALIDAZIONE_DYNAMIC_DISCOVERY+dati.getTokenPolicyValidazioneDynamicDiscovery());
}
if(dati.getTokenPolicyValidazioneJwt()!=null) {
l.add(CONFIG_POLICY_VALIDAZIONE_JWT+dati.getTokenPolicyValidazioneJwt());
}
if(dati.getTokenPolicyValidazioneIntrospection()!=null) {
l.add(CONFIG_POLICY_VALIDAZIONE_INTROSPECTION+dati.getTokenPolicyValidazioneIntrospection());
}
if(dati.getTokenPolicyValidazioneUserInfo()!=null) {
l.add(CONFIG_POLICY_VALIDAZIONE_USER_INFO+dati.getTokenPolicyValidazioneUserInfo());
}
if(dati.getAttributeAuthority()!=null) {
l.add(CONFIG_ATTRIBUTE_AUTHORITY+dati.getAttributeAuthority());
}
if(dati.getAttributeAuthorityResponseJwt()!=null) {
l.add(CONFIG_ATTRIBUTE_AUTHORITY_VALIDAZIONE_RISPOSTA_JWT+dati.getAttributeAuthorityResponseJwt());
}
addConfigurazioneEventoNomePorta(dati, l);
}
private static String toFormatStringIDServizio(IDServizio idServizio){
StringBuilder sb = new StringBuilder();
sb.append(idServizio.getTipo());
sb.append("/");
sb.append(idServizio.getNome());
sb.append("/");
sb.append(idServizio.getVersione());
return sb.toString();
}
private static void addConfigurazioneEventoRuoloPorta(PolicyDati dati, List<String> l) {
if(dati.getRuoloPorta()!=null) {
switch (dati.getRuoloPorta()) {
case DELEGATA:
l.add(CONFIG_TIPOLOGIA+CONFIG_TIPOLOGIA_VALUE_DELEGATA);
break;
case APPLICATIVA:
l.add(CONFIG_TIPOLOGIA+CONFIG_TIPOLOGIA_VALUE_APPLICATIVA);
break;
default:
break;
}
}
}
private static void addConfigurazioneEventoNomePorta(PolicyDati dati, List<String> l) {
if(dati.getNomePorta()!=null) {
if(dati.getRuoloPorta()!=null) {
switch (dati.getRuoloPorta()) {
case DELEGATA:
l.add(CONFIG_NOME_PORTA_OUTBOUND_PROPERTY+dati.getNomePorta());
break;
case APPLICATIVA:
l.add(CONFIG_NOME_PORTA_INBOUND_PROPERTY+dati.getNomePorta());
break;
default:
l.add(CONFIG_NOME_PORTA_PROPERTY+dati.getNomePorta());
break;
}
}
else {
l.add(CONFIG_NOME_PORTA_PROPERTY+dati.getNomePorta());
}
}
}
private static String buildConfigurazioneEvento(PolicyDati dati, int sogliaMs, boolean globale) {
List<String> l = buildConfigurazioneEventoAsList(dati, sogliaMs, globale);
StringBuilder sb = new StringBuilder();
if(!l.isEmpty()) {
for (String v : l) {
if(sb.length()>0) {
sb.append("\n");
}
sb.append(v);
}
}
return sb.toString();
}
public static SogliaReadTimeout buildSogliaRequestTimeout(int sogliaMs, boolean delegata, IProtocolFactory<?> protocolFactory) {
return buildSogliaTimeout(sogliaMs, delegata, protocolFactory);
}
public static SogliaReadTimeout buildSogliaResponseTimeout(int sogliaMs, boolean delegata, IProtocolFactory<?> protocolFactory) {
return buildSogliaTimeout(sogliaMs, delegata, protocolFactory);
}
private static SogliaReadTimeout buildSogliaTimeout(int sogliaMs, boolean delegata, IProtocolFactory<?> protocolFactory) {
SogliaReadTimeout soglia = new SogliaReadTimeout();
soglia.setConfigurazioneGlobale(true);
soglia.setSogliaMs(sogliaMs);
String api = "APINonIndividuata";
soglia.setIdConfigurazione(api);
PolicyDati dati = new PolicyDati();
if(protocolFactory!=null) {
dati.setProfilo(protocolFactory.getProtocol());
}
dati.setRuoloPorta(delegata ? RuoloPolicy.DELEGATA : RuoloPolicy.APPLICATIVA);
soglia.setConfigurazione(buildConfigurazioneEvento(dati, sogliaMs, true));
return soglia;
}
public static SogliaReadTimeout buildSogliaRequestTimeout(int sogliaMs, boolean configurazioneGlobale, PortaDelegata pd,
ReadTimeoutContextParam readTimeoutContextParam) throws DriverConfigurazioneException, ProtocolException {
return buildSogliaTimeout(sogliaMs, configurazioneGlobale, pd.getNome(), RuoloPolicy.DELEGATA, null, null,
readTimeoutContextParam);
}
public static SogliaReadTimeout buildSogliaRequestTimeout(int sogliaMs, boolean configurazioneGlobale, PortaApplicativa pa,
ReadTimeoutContextParam readTimeoutContextParam) throws DriverConfigurazioneException, ProtocolException {
return buildSogliaTimeout(sogliaMs, configurazioneGlobale, pa.getNome(), RuoloPolicy.APPLICATIVA, null, null,
readTimeoutContextParam);
}
public static SogliaReadTimeout buildSogliaResponseTimeout(int sogliaMs, boolean configurazioneGlobale, PortaDelegata pd, PolicyTimeoutConfig policyConfig,
ReadTimeoutContextParam readTimeoutContextParam) throws DriverConfigurazioneException, ProtocolException {
return buildSogliaTimeout(sogliaMs, configurazioneGlobale, pd.getNome(), RuoloPolicy.DELEGATA, null, policyConfig,
readTimeoutContextParam);
}
public static SogliaReadTimeout buildSogliaResponseTimeout(int sogliaMs, boolean configurazioneGlobale, PortaApplicativa pa, String nomeConnettoreAsincrono, PolicyTimeoutConfig policyConfig,
ReadTimeoutContextParam readTimeoutContextParam) throws DriverConfigurazioneException, ProtocolException {
return buildSogliaTimeout(sogliaMs, configurazioneGlobale, pa.getNome(), RuoloPolicy.APPLICATIVA, nomeConnettoreAsincrono, policyConfig,
readTimeoutContextParam);
}
private static SogliaReadTimeout buildSogliaTimeout(int sogliaMs, boolean configurazioneGlobale, String nomePorta, RuoloPolicy ruoloPorta, String nomeConnettoreAsincrono, PolicyTimeoutConfig policyConfig,
ReadTimeoutContextParam readTimeoutContextParam) throws DriverConfigurazioneException, ProtocolException {
SogliaReadTimeout soglia = new SogliaReadTimeout();
soglia.setSogliaMs(sogliaMs);
soglia.setConfigurazioneGlobale(configurazioneGlobale);
PolicyDati dati = readConfigurazione(nomePorta, ruoloPorta, nomeConnettoreAsincrono, policyConfig, readTimeoutContextParam);
soglia.setIdConfigurazione(dati.getIdentificativo());
soglia.setConfigurazione(buildConfigurazioneEvento(dati, sogliaMs, configurazioneGlobale));
return soglia;
}
private static PolicyDati readConfigurazione(String nomePorta, RuoloPolicy ruoloPorta, String nomeConnettoreAsincrono, PolicyTimeoutConfig policyConfig, ReadTimeoutContextParam readTimeoutContextParam) throws DriverConfigurazioneException, ProtocolException {
ConfigurazionePdDManager configPdDManager = ConfigurazionePdDManager.getInstance(readTimeoutContextParam.getState());
StringBuilder sb = new StringBuilder();
PolicyDati dati = RuoloPolicy.DELEGATA.equals(ruoloPorta) ?
PolicyVerifier.getIdAPIFruizione(nomePorta, configPdDManager, readTimeoutContextParam.getRequestInfo(), readTimeoutContextParam.getProtocolFactory())
:
PolicyVerifier.getIdAPIErogazione(nomePorta, configPdDManager, readTimeoutContextParam.getRequestInfo(), readTimeoutContextParam.getProtocolFactory());
String api = dati.getIdentificativo();
if(api!=null) {
api = api.trim();
}
sb.append(api);
if(RuoloPolicy.APPLICATIVA.equals(ruoloPorta)) {
if(nomeConnettoreAsincrono!=null) {
sb.append(" (connettore '").append(nomeConnettoreAsincrono).append("')");
dati.setConnettore(nomeConnettoreAsincrono);
}
else {
String connettoriMultipli = ConnettoreUtils.getNomeConnettori(readTimeoutContextParam.getContext());
if(connettoriMultipli!=null) {
sb.append(" (connettore '").append(connettoriMultipli).append("')");
dati.setConnettore(connettoriMultipli);
}
}
}
addPolicyInfo(sb, policyConfig, dati);
dati.setIdentificativo(sb.toString()); // aggiorno
return dati;
}
public static void addPolicyInfo(StringBuilder sb, PolicyTimeoutConfig policyConfig) {
addPolicyInfo(sb, policyConfig, null);
}
public static void addPolicyInfo(StringBuilder sb, PolicyTimeoutConfig policyConfig, PolicyDati policyDati) {
addPolicyInfoTokenPolicyNegoziazione(sb, policyConfig, policyDati);
addPolicyInfoTokenPolicyValidazione(sb, policyConfig, policyDati);
addPolicyInfoAttributeAuthority(sb, policyConfig, policyDati);
}
private static void addPolicyInfoTokenPolicyNegoziazione(StringBuilder sb, PolicyTimeoutConfig policyConfig, PolicyDati policyDati) {
if(policyConfig!=null && policyConfig.getPolicyNegoziazione()!=null) {
sb.append(" (").append(ID_POLICY_NEGOZIAZIONE).append(" '").append(policyConfig.getPolicyNegoziazione()).append("')");
if(policyDati!=null) {
policyDati.setTokenPolicyNegoziazione(policyConfig.getPolicyNegoziazione());
}
}
}
private static void addPolicyInfoTokenPolicyValidazione(StringBuilder sb, PolicyTimeoutConfig policyConfig, PolicyDati policyDati) {
addPolicyInfoTokenPolicyValidazioneDynamicDiscovery(sb, policyConfig, policyDati);
addPolicyInfoTokenPolicyValidazioneJwt(sb, policyConfig, policyDati);
addPolicyInfoTokenPolicyValidazioneIntrospection(sb, policyConfig, policyDati);
addPolicyInfoTokenPolicyValidazioneUserInfo(sb, policyConfig, policyDati);
}
private static void addPolicyInfoTokenPolicyValidazioneDynamicDiscovery(StringBuilder sb, PolicyTimeoutConfig policyConfig, PolicyDati policyDati) {
if(policyConfig!=null && policyConfig.getPolicyValidazioneDynamicDiscovery()!=null) {
sb.append(" (").append(ID_POLICY_VALIDAZIONE_DYNAMIC_DISCOVERY).append(" '").append(policyConfig.getPolicyValidazioneDynamicDiscovery()).append("')");
if(policyDati!=null) {
policyDati.setTokenPolicyValidazioneDynamicDiscovery(policyConfig.getPolicyValidazioneDynamicDiscovery());
}
}
}
private static void addPolicyInfoTokenPolicyValidazioneJwt(StringBuilder sb, PolicyTimeoutConfig policyConfig, PolicyDati policyDati) {
if(policyConfig!=null && policyConfig.getPolicyValidazioneJwt()!=null) {
sb.append(" (").append(ID_POLICY_VALIDAZIONE_JWT).append(" '").append(policyConfig.getPolicyValidazioneJwt()).append("')");
if(policyDati!=null) {
policyDati.setTokenPolicyValidazioneJwt(policyConfig.getPolicyValidazioneJwt());
}
}
}
private static void addPolicyInfoTokenPolicyValidazioneIntrospection(StringBuilder sb, PolicyTimeoutConfig policyConfig, PolicyDati policyDati) {
if(policyConfig!=null && policyConfig.getPolicyValidazioneIntrospection()!=null) {
sb.append(" (").append(ID_POLICY_VALIDAZIONE_INTROSPECTION).append(" '").append(policyConfig.getPolicyValidazioneIntrospection()).append("')");
if(policyDati!=null) {
policyDati.setTokenPolicyValidazioneIntrospection(policyConfig.getPolicyValidazioneIntrospection());
}
}
}
private static void addPolicyInfoTokenPolicyValidazioneUserInfo(StringBuilder sb, PolicyTimeoutConfig policyConfig, PolicyDati policyDati) {
if(policyConfig!=null && policyConfig.getPolicyValidazioneUserInfo()!=null) {
sb.append(" (").append(ID_POLICY_VALIDAZIONE_USER_INFO).append(" '").append(policyConfig.getPolicyValidazioneUserInfo()).append("')");
if(policyDati!=null) {
policyDati.setTokenPolicyValidazioneUserInfo(policyConfig.getPolicyValidazioneUserInfo());
}
}
}
private static void addPolicyInfoAttributeAuthority(StringBuilder sb, PolicyTimeoutConfig policyConfig, PolicyDati policyDati) {
addPolicyInfoAttributeAuthorityEndpoint(sb, policyConfig, policyDati);
addPolicyInfoAttributeAuthorityValidazioneJwtResponse(sb, policyConfig, policyDati);
}
private static void addPolicyInfoAttributeAuthorityEndpoint(StringBuilder sb, PolicyTimeoutConfig policyConfig, PolicyDati policyDati) {
if(policyConfig!=null && policyConfig.getAttributeAuthority()!=null) {
sb.append(" (").append(ID_ATTRIBUTE_AUTHORITY).append(" '").append(policyConfig.getAttributeAuthority()).append("')");
if(policyDati!=null) {
policyDati.setAttributeAuthority(policyConfig.getAttributeAuthority());
}
}
}
private static void addPolicyInfoAttributeAuthorityValidazioneJwtResponse(StringBuilder sb, PolicyTimeoutConfig policyConfig, PolicyDati policyDati) {
if(policyConfig!=null && policyConfig.getAttributeAuthorityResponseJwt()!=null) {
sb.append(" (").append(ID_ATTRIBUTE_AUTHORITY_VALIDAZIONE_RISPOSTA_JWT).append(" '").append(policyConfig.getAttributeAuthorityResponseJwt()).append("')");
if(policyDati!=null) {
policyDati.setAttributeAuthorityResponseJwt(policyConfig.getAttributeAuthorityResponseJwt());
}
}
}
}