GestioneAttributeAuthority.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */



  20. package org.openspcoop2.pdd.core.token.attribute_authority.pa;

  21. import org.openspcoop2.core.id.IDServizio;
  22. import org.openspcoop2.core.id.IDSoggetto;
  23. import org.openspcoop2.core.registry.driver.DriverRegistroServiziException;
  24. import org.openspcoop2.core.registry.driver.IDServizioFactory;
  25. import org.openspcoop2.pdd.core.PdDContext;
  26. import org.openspcoop2.pdd.core.token.GestoreToken;
  27. import org.openspcoop2.pdd.core.token.attribute_authority.AttributeAuthorityException;
  28. import org.openspcoop2.protocol.sdk.IProtocolFactory;
  29. import org.slf4j.Logger;

  30. /**
  31.  * Classe che implementa il recupero degli attributi
  32.  *
  33.  * @author Andrea Poli (apoli@link.it)
  34.  * @author $Author$
  35.  * @version $Rev$, $Date$
  36.  */

  37. public class GestioneAttributeAuthority {

  38.     private Logger log;
  39.     @SuppressWarnings("unused")
  40.     private String idTransazione;
  41.     private PdDContext pddContext;
  42.     private IProtocolFactory<?> protocolFactory;
  43.     public GestioneAttributeAuthority(Logger log, String idTransazione,
  44.             PdDContext pddContext, IProtocolFactory<?> protocolFactory) {
  45.         this.log = log;
  46.         this.idTransazione = idTransazione;
  47.         this.pddContext = pddContext;
  48.         this.protocolFactory = protocolFactory;
  49.     }
  50.    
  51.     public EsitoRecuperoAttributiPortaApplicativa readAttributes(DatiInvocazionePortaApplicativa datiInvocazione) throws AttributeAuthorityException {
  52.         try {
  53.            
  54.             EsitoRecuperoAttributiPortaApplicativa esito = (EsitoRecuperoAttributiPortaApplicativa) GestoreToken.readAttributes(this.log, datiInvocazione,
  55.                     this.pddContext, this.protocolFactory,
  56.                     GestoreToken.PORTA_APPLICATIVA,
  57.                     getDominio(datiInvocazione), getServizio(datiInvocazione));
  58.             return esito;
  59.            
  60.         }catch(Throwable e) {
  61.             throw new AttributeAuthorityException(e.getMessage(),e); // errore di processamento
  62.         }
  63.     }
  64.    
  65.     private IDSoggetto getDominio(DatiInvocazionePortaApplicativa datiInvocazione) {
  66.         IDSoggetto soggetto = null;
  67.         if(datiInvocazione.getPa()!=null) {
  68.             soggetto = new IDSoggetto(datiInvocazione.getPa().getTipoSoggettoProprietario(), datiInvocazione.getPa().getNomeSoggettoProprietario());
  69.         }
  70.         else if(datiInvocazione.getPd()!=null) {
  71.             soggetto = new IDSoggetto(datiInvocazione.getPd().getTipoSoggettoProprietario(), datiInvocazione.getPd().getNomeSoggettoProprietario());
  72.         }
  73.         return soggetto;
  74.     }
  75.     private IDServizio getServizio(DatiInvocazionePortaApplicativa datiInvocazione) throws DriverRegistroServiziException {
  76.         IDServizio servizio = null;
  77.         if(datiInvocazione.getPa()!=null) {
  78.             servizio = IDServizioFactory.getInstance().getIDServizioFromValues(datiInvocazione.getPa().getServizio().getTipo(), datiInvocazione.getPa().getServizio().getNome(),
  79.                     datiInvocazione.getPa().getTipoSoggettoProprietario(), datiInvocazione.getPa().getNomeSoggettoProprietario(),
  80.                     datiInvocazione.getPa().getServizio().getVersione());
  81.         }
  82.         else if(datiInvocazione.getPd()!=null) {
  83.             servizio = IDServizioFactory.getInstance().getIDServizioFromValues(datiInvocazione.getPd().getServizio().getTipo(), datiInvocazione.getPd().getServizio().getNome(),
  84.                     datiInvocazione.getPd().getSoggettoErogatore().getTipo(), datiInvocazione.getPd().getSoggettoErogatore().getNome(),
  85.                     datiInvocazione.getPd().getServizio().getVersione());
  86.         }
  87.         return servizio;
  88.     }
  89. }