AutorizzazioneUtilities.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.web.ctrlstat.core;

  21. import java.util.ArrayList;
  22. import java.util.List;

  23. import org.openspcoop2.core.config.constants.StatoFunzionalita;
  24. import org.openspcoop2.core.config.constants.TipoAutorizzazione;
  25. import org.openspcoop2.core.registry.constants.RuoloTipologia;

  26. /**
  27.  * AutorizzazioneUtilities
  28.  *
  29.  * @author Andrea Poli (apoli@link.it)
  30.  * @author $Author$
  31.  * @version $Rev$, $Date$
  32.  *
  33.  */
  34. public class AutorizzazioneUtilities {
  35.    
  36.     private AutorizzazioneUtilities() {}

  37.     public static final String STATO_ABILITATO = StatoFunzionalita.ABILITATO.getValue();
  38.     public static final String STATO_DISABILITATO = StatoFunzionalita.DISABILITATO.getValue();
  39.     public static final String STATO_XACML_POLICY = "xacml-Policy";
  40.     public static final String STATO_SIGNAL_HUB_PUSH_SIGNALS = "signal-Hub";
  41.     public static List<String> getStati(boolean signalHub){
  42.         List<String> l = new ArrayList<>();
  43.         l.add(STATO_DISABILITATO);
  44.         l.add(STATO_ABILITATO);
  45.         l.add(STATO_XACML_POLICY);
  46.         if(signalHub) {
  47.             l.add(STATO_SIGNAL_HUB_PUSH_SIGNALS);
  48.         }
  49.         return l;
  50.     }
  51.     public static String convertToStato(String autorizzazione){
  52.         return convertToStato(TipoAutorizzazione.toEnumConstant(autorizzazione));
  53.     }
  54.     public static String convertToStato(TipoAutorizzazione autorizzazione){
  55.         if(TipoAutorizzazione.isXacmlPolicyRequired(autorizzazione)){
  56.             return STATO_XACML_POLICY;
  57.         }
  58.         else if(TipoAutorizzazione.DISABILITATO.equals(autorizzazione)){
  59.             return STATO_DISABILITATO;
  60.         }
  61.         else if(TipoAutorizzazione.TOKEN.equals(autorizzazione)){
  62.             return STATO_ABILITATO;
  63.         }
  64.         else if(TipoAutorizzazione.SIGNAL_HUB_PUSH.equals(autorizzazione)){
  65.             return STATO_SIGNAL_HUB_PUSH_SIGNALS;
  66.         }
  67.         else{
  68.             return STATO_ABILITATO;
  69.         }
  70.     }
  71.    
  72.     public static RuoloTipologia convertToRuoloTipologia(String autorizzazione){
  73.         return convertToRuoloTipologia(TipoAutorizzazione.toEnumConstant(autorizzazione));
  74.     }
  75.     public static RuoloTipologia convertToRuoloTipologia(TipoAutorizzazione autorizzazione){
  76.         if(autorizzazione==null){
  77.             return RuoloTipologia.QUALSIASI;
  78.         }
  79.         switch (autorizzazione) {
  80.         case AUTHENTICATED_EXTERNAL_ROLES:
  81.         case EXTERNAL_ROLES:
  82.         case EXTERNAL_XACML_POLICY:
  83.             return RuoloTipologia.ESTERNO;
  84.         case AUTHENTICATED_INTERNAL_ROLES:
  85.         case INTERNAL_ROLES:
  86.         case INTERNAL_XACML_POLICY:
  87.             return RuoloTipologia.INTERNO;
  88.         case AUTHENTICATED_ROLES:
  89.         case ROLES:
  90.         case XACML_POLICY:
  91.             return RuoloTipologia.QUALSIASI;
  92.         default:
  93.             return RuoloTipologia.QUALSIASI;
  94.         }
  95.        
  96.     }
  97.     public static TipoAutorizzazione convertToTipoAutorizzazione(String stato,boolean authenticated,boolean roles,
  98.             boolean tokenAuthenticated, boolean tokenRoles,
  99.             boolean scopes,String autorizzazioneTokenOptions,
  100.             RuoloTipologia tipologia){
  101.         if(STATO_DISABILITATO.equals(stato)){
  102.             return TipoAutorizzazione.DISABILITATO;
  103.         }
  104.         else if(STATO_XACML_POLICY.equals(stato)){
  105.             switch (tipologia) {
  106.             case ESTERNO:
  107.                 return TipoAutorizzazione.EXTERNAL_XACML_POLICY;
  108.             case INTERNO:
  109.                 return TipoAutorizzazione.INTERNAL_XACML_POLICY;
  110.             case QUALSIASI:
  111.                 return TipoAutorizzazione.XACML_POLICY;
  112.             }
  113.         }
  114.         else if(STATO_SIGNAL_HUB_PUSH_SIGNALS.equals(stato)){
  115.             return TipoAutorizzazione.SIGNAL_HUB_PUSH;
  116.         }
  117.         else {
  118.             if(roles){
  119.                 switch (tipologia) {
  120.                 case ESTERNO:
  121.                     if(authenticated){
  122.                         return TipoAutorizzazione.AUTHENTICATED_EXTERNAL_ROLES;
  123.                     }
  124.                     else{
  125.                         return TipoAutorizzazione.EXTERNAL_ROLES;
  126.                     }
  127.                 case INTERNO:
  128.                     if(authenticated){
  129.                         return TipoAutorizzazione.AUTHENTICATED_INTERNAL_ROLES;
  130.                     }
  131.                     else{
  132.                         return TipoAutorizzazione.INTERNAL_ROLES;
  133.                     }
  134.                 case QUALSIASI:
  135.                     if(authenticated){
  136.                         return TipoAutorizzazione.AUTHENTICATED_ROLES;
  137.                     }
  138.                     else{
  139.                         return TipoAutorizzazione.ROLES;
  140.                     }
  141.                 }
  142.             }
  143.             else if(authenticated){
  144.                 return TipoAutorizzazione.AUTHENTICATED;
  145.             }
  146.             else if(tokenAuthenticated || tokenRoles || scopes || (autorizzazioneTokenOptions!=null && !"".equals(autorizzazioneTokenOptions))) {
  147.                 return TipoAutorizzazione.TOKEN;
  148.             }
  149.         }
  150.         return TipoAutorizzazione.DISABILITATO; // ??
  151.     }
  152.     public static String convertToTipoAutorizzazioneAsString(String stato,boolean authenticated,boolean roles,
  153.             boolean tokenAuthenticated, boolean tokenRoles,
  154.             boolean scopes,String autorizzazioneTokenOptions,
  155.             RuoloTipologia tipologia){
  156.         return convertToTipoAutorizzazione(stato, authenticated, roles,
  157.                 tokenAuthenticated, tokenRoles,
  158.                 scopes, autorizzazioneTokenOptions,
  159.                 tipologia).getValue();
  160.     }
  161.    
  162. }