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.pd;

  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 implementala 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 EsitoRecuperoAttributiPortaDelegata readAttributes(DatiInvocazionePortaDelegata datiInvocazione) throws AttributeAuthorityException{

  52.         try {
  53.            
  54.             EsitoRecuperoAttributiPortaDelegata esito = (EsitoRecuperoAttributiPortaDelegata) GestoreToken.readAttributes(this.log, datiInvocazione,
  55.                     this.pddContext, this.protocolFactory,
  56.                     GestoreToken.PORTA_DELEGATA,
  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(DatiInvocazionePortaDelegata datiInvocazione) {
  66.         IDSoggetto soggetto = null;
  67.         if(datiInvocazione.getPd()!=null) {
  68.             soggetto = new IDSoggetto(datiInvocazione.getPd().getTipoSoggettoProprietario(), datiInvocazione.getPd().getNomeSoggettoProprietario());
  69.         }
  70.         return soggetto;
  71.     }
  72.     private IDServizio getServizio(DatiInvocazionePortaDelegata datiInvocazione) throws DriverRegistroServiziException {
  73.         IDServizio servizio = null;
  74.         if(datiInvocazione.getPd()!=null) {
  75.             servizio = IDServizioFactory.getInstance().getIDServizioFromValues(datiInvocazione.getPd().getServizio().getTipo(), datiInvocazione.getPd().getServizio().getNome(),
  76.                     datiInvocazione.getPd().getSoggettoErogatore().getTipo(), datiInvocazione.getPd().getSoggettoErogatore().getNome(),
  77.                     datiInvocazione.getPd().getServizio().getVersione());
  78.         }
  79.         return servizio;
  80.     }
  81. }