Skip to content

Commit

Permalink
* [GovWayCore]
Browse files Browse the repository at this point in the history
Modificato il comportamento predefinito in modo che il tracciamento delle richieste che violano una politica di RateLimiting sia disabilitato.
  • Loading branch information
andreapoli committed Mar 15, 2024
1 parent 336b96c commit b00ef6a
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 7 deletions.
5 changes: 5 additions & 0 deletions ChangeLog
@@ -1,3 +1,8 @@
2024-03-15 Andrea Poli <apoli@link.it>

* [GovWayCore]
Modificato il comportamento predefinito in modo che il tracciamento delle richieste che violano una politica di RateLimiting sia disabilitato.

2024-03-15 Andrea Poli <apoli@link.it>

* [BatchStatistiche]
Expand Down
9 changes: 7 additions & 2 deletions core/src/org/openspcoop2/protocol/utils/EsitiConfigUtils.java
Expand Up @@ -50,6 +50,7 @@ public static EsitiProperties getEsitiPropertiesForContext(Logger log) throws Pr
// esiti indipendenti dal protocollo. Li inizializzo una volta sola per questione di performance.

private static int esitoMaxThreads = -1;
private static int esitoViolazionePolicyRateLimiting = -1;
private static int esitoCorsGateway = -1;
private static int esitoCorsTrasparente = -1;
private static void checkInitEsiti(EsitiProperties esiti) throws ProtocolException {
Expand All @@ -60,6 +61,7 @@ private static void checkInitEsiti(EsitiProperties esiti) throws ProtocolExcepti
private static synchronized void initEsiti(EsitiProperties esiti) throws ProtocolException {
if(esitoMaxThreads<0) {
esitoMaxThreads = esiti.convertNameToCode(EsitoTransazioneName.CONTROLLO_TRAFFICO_MAX_THREADS.name());
esitoViolazionePolicyRateLimiting = esiti.convertNameToCode(EsitoTransazioneName.CONTROLLO_TRAFFICO_POLICY_VIOLATA.name());
esitoCorsGateway = esiti.convertNameToCode(EsitoTransazioneName.CORS_PREFLIGHT_REQUEST_VIA_GATEWAY.name());
esitoCorsTrasparente = esiti.convertNameToCode(EsitoTransazioneName.CORS_PREFLIGHT_REQUEST_TRASPARENTE.name());
}
Expand All @@ -77,14 +79,17 @@ public static List<String> getRegistrazioneEsiti(String esitiConfig, Logger log,

if(esitiConfig==null || "".equals(esitiConfig.trim())){

// creo un default composto da tutti ad eccezione dell'esito (MaxThreads) e delle richieste CORS OPTIONS
// creo un default composto da tutti ad eccezione dell'esito (CONTROLLO_TRAFFICO_MAX_THREADS), delle violazioni policy di rate limiting (CONTROLLO_TRAFFICO_POLICY_VIOLATA) e delle richieste CORS OPTIONS
List<Integer> esitiCodes = esiti.getEsitiCode();

if(esitiCodes!=null && !esitiCodes.isEmpty()){
List<String> esitiDaRegistrare = new ArrayList<>();
for (Integer esito : esitiCodes) {
checkInitEsiti(esiti);
if(esito!=esitoMaxThreads && esito!=esitoCorsGateway && esito!=esitoCorsTrasparente){
if(esito.intValue()!=esitoMaxThreads &&
esito.intValue()!=esitoViolazionePolicyRateLimiting &&
esito.intValue()!=esitoCorsGateway &&
esito.intValue()!=esitoCorsTrasparente){
if(bf.length()>0){
bf.append(",");
}
Expand Down
6 changes: 4 additions & 2 deletions protocolli/trasparente/testsuite/karate/RUN.README
Expand Up @@ -106,8 +106,10 @@
Fruizioni: UPDATE ct_config set pd_connection_timeout=8000, pd_read_timeout=15000;
Erogazioni: UPDATE ct_config set pa_connection_timeout=9000, pa_read_timeout=16000;

- Nella console Andare su Tracciamento->Superamento Limite Richieste e impostarlo su <abilitato>
Questo perchè di base govway non traccia le transazioni quando è stata superata la soglia globale.
- Nella console andare su Tracciamento 'Erogazioni' e 'Fruizioni' ed impostare su <abilitato>:
- Violazione Policy Rate Limiting
- Superamento Limite Richieste
Questo perchè di base govway non traccia le transazioni quando è stata superata la soglia globale o quando è stata violata una policy di rate limiting.

- Impostare in govway_local.properties
org.openspcoop2.pdd.statistiche.generazione.baseOraria.timer.intervalloSecondi=8
Expand Down
Expand Up @@ -10810,10 +10810,10 @@ public void setStatoTracciamento(DataElement de,

transazioniFiletrace = configurazioneTracciamento.getFiletrace()!=null && configurazioneTracciamento.getFiletrace().getStato()!=null &&
!org.openspcoop2.core.config.constants.StatoFunzionalitaConPersonalizzazione.DISABILITATO.equals(configurazioneTracciamento.getFiletrace().getStato());
if(org.openspcoop2.core.config.constants.StatoFunzionalitaConPersonalizzazione.CONFIGURAZIONE_ESTERNA.equals(configurazioneTracciamento.getFiletrace().getStato())) {
if(configurazioneTracciamento.getFiletrace()!=null && org.openspcoop2.core.config.constants.StatoFunzionalitaConPersonalizzazione.CONFIGURAZIONE_ESTERNA.equals(configurazioneTracciamento.getFiletrace().getStato())) {
transazioniFiletrace = (InitListener.getFileTraceGovWayState()!=null) ? InitListener.getFileTraceGovWayState().isEnabled() : transazioniFiletrace;
}
if(transazioniFiletrace && org.openspcoop2.core.config.constants.StatoFunzionalitaConPersonalizzazione.CONFIGURAZIONE_ESTERNA.equals(configurazioneTracciamento.getFiletrace().getStato())) {
if(transazioniFiletrace && configurazioneTracciamento.getFiletrace()!=null && org.openspcoop2.core.config.constants.StatoFunzionalitaConPersonalizzazione.CONFIGURAZIONE_ESTERNA.equals(configurazioneTracciamento.getFiletrace().getStato())) {
transazioniFiletrace = CostantiProprieta.isFileTraceEnabled(proprietaPorta, transazioniFiletrace);
}
if(transazioniFiletrace &&
Expand Down Expand Up @@ -16078,7 +16078,7 @@ public String readConfigurazioneRegistrazioneEsitiFromHttpParameters(String conf
}
else{
if(configurazioneEsiti == null || "".equals(configurazioneEsiti.trim())){
// creo un default composto da tutti ad eccezione dell'esito 84 (MaxThreads)
// creo un default composto da tutti ad eccezione dell'esito (CONTROLLO_TRAFFICO_MAX_THREADS), delle violazioni policy di rate limiting (CONTROLLO_TRAFFICO_POLICY_VIOLATA) e delle richieste CORS OPTIONS
this.getRegistrazioneEsiti(configurazioneEsiti, bf);
if(bf.length()>0){
return bf.toString();
Expand Down

0 comments on commit b00ef6a

Please sign in to comment.