ParametriAutenticazioneApiKey.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.autenticazione;

  21. import org.openspcoop2.utils.BooleanNullable;

  22. /**
  23.  * ParametriAutenticazioneApiKey
  24.  *
  25.  * @author Andrea Poli (apoli@link.it)
  26.  * @author $Author$
  27.  * @version $Rev$, $Date$
  28.  */
  29. public class ParametriAutenticazioneApiKey extends ParametriAutenticazione implements java.io.Serializable {

  30.    
  31.     /**
  32.      *
  33.      */
  34.     private static final long serialVersionUID = 1L;

  35.     public static final String DEFAULT_HEADER_API_KEY = "X-API-KEY";
  36.     public static final String DEFAULT_COOKIE_API_KEY = "X-API-KEY";
  37.     public static final String DEFAULT_QUERY_PARAMETER_API_KEY = "api_key";
  38.    
  39.     public static final String DEFAULT_HEADER_APP_ID = "X-APP-ID";
  40.     public static final String DEFAULT_COOKIE_APP_ID = "X-APP-ID";
  41.     public static final String DEFAULT_QUERY_PARAMETER_APP_ID = "app_id";
  42.    
  43.     public static final String TRUE = "true";
  44.     public static final String FALSE = "false";
  45.    
  46.     public static final String HEADER = "header";
  47.     public static final String HEADER_TRUE = TRUE;
  48.     public static final String HEADER_FALSE = FALSE;
  49.    
  50.     public static final String COOKIE = "cookie";
  51.     public static final String COOKIE_TRUE = TRUE;
  52.     public static final String COOKIE_FALSE = FALSE;
  53.    
  54.     public static final String QUERY_PARAMETER = "queryParameter";
  55.     public static final String QUERY_PARAMETER_TRUE = TRUE;
  56.     public static final String QUERY_PARAMETER_FALSE = FALSE;
  57.    
  58.     public static final String USE_OAS3_NAMES = "useOAS3Names";
  59.     public static final String USE_OAS3_NAMES_TRUE = TRUE;
  60.     public static final String USE_OAS3_NAMES_FALSE = FALSE;
  61.    
  62.     public static final String NOME_HEADER_API_KEY = "headerApiKey";
  63.     public static final String NOME_COOKIE_API_KEY = "cookieApiKey";
  64.     public static final String NOME_QUERY_PARAMETER_API_KEY = "queryParameterApiKey";
  65.    
  66.     public static final String APP_ID = "appId";
  67.     public static final String APP_ID_TRUE = TRUE;
  68.     public static final String APP_ID_FALSE = FALSE;

  69.     public static final String NOME_HEADER_APP_ID = "headerAppId";
  70.     public static final String NOME_COOKIE_APP_ID = "cookieAppId";
  71.     public static final String NOME_QUERY_PARAMETER_APP_ID = "queryParameterAppId";
  72.    
  73.     public static final String CLEAN_API_KEY = "cleanApiKey";
  74.     public static final String CLEAN_API_KEY_TRUE = TRUE;
  75.     public static final String CLEAN_API_KEY_FALSE = FALSE;
  76.    
  77.     public static final String CLEAN_APP_ID = "cleanAppId";
  78.     public static final String CLEAN_APP_ID_TRUE = TRUE;
  79.     public static final String CLEAN_APP_ID_FALSE = FALSE;
  80.    
  81.    
  82.     public ParametriAutenticazioneApiKey(ParametriAutenticazione parametri) {
  83.         super(parametri);
  84.     }
  85.    
  86.     public BooleanNullable getHeader() {
  87.         return _get(HEADER);
  88.     }
  89.     public BooleanNullable getCookie() {
  90.         return _get(COOKIE);
  91.     }
  92.     public BooleanNullable getQueryParameter() {
  93.         return _get(QUERY_PARAMETER);
  94.     }
  95.    
  96.     public String getNomeHeaderApiKey() {
  97.         return _getNome(DEFAULT_HEADER_API_KEY, NOME_HEADER_API_KEY);
  98.     }
  99.     public String getNomeCookieApiKey() {
  100.         return _getNome(DEFAULT_COOKIE_API_KEY, NOME_COOKIE_API_KEY);
  101.     }
  102.     public String getNomeQueryParameterApiKey() {
  103.         return _getNome(DEFAULT_QUERY_PARAMETER_API_KEY, NOME_QUERY_PARAMETER_API_KEY);
  104.     }
  105.    
  106.     public BooleanNullable getAppId() {
  107.         return _get(APP_ID);
  108.     }
  109.    
  110.     public String getNomeHeaderAppId() {
  111.         return _getNome(DEFAULT_HEADER_APP_ID, NOME_HEADER_APP_ID);
  112.     }
  113.     public String getNomeCookieAppId() {
  114.         return _getNome(DEFAULT_COOKIE_APP_ID, NOME_COOKIE_APP_ID);
  115.     }
  116.     public String getNomeQueryParameterAppId() {
  117.         return _getNome(DEFAULT_QUERY_PARAMETER_APP_ID, NOME_QUERY_PARAMETER_APP_ID);
  118.     }
  119.    
  120.     public BooleanNullable getCleanApiKey() {
  121.         return _get(CLEAN_API_KEY);
  122.     }
  123.     public BooleanNullable getCleanAppId() {
  124.         return _get(CLEAN_APP_ID);
  125.     }
  126.    
  127.     private BooleanNullable _get(String name) {
  128.         String valore = this.get(name);
  129.         if(valore==null || "".equals(valore)) {
  130.             return BooleanNullable.NULL();
  131.         }
  132.         if(FALSE.equalsIgnoreCase(valore)) {
  133.             return BooleanNullable.FALSE();
  134.         }
  135.         else if(TRUE.equalsIgnoreCase(valore)) {
  136.             return BooleanNullable.TRUE();
  137.         }
  138.         return BooleanNullable.NULL();
  139.     }
  140.    
  141.     private String _getNome(String defaultName, String nome) {
  142.        
  143.         BooleanNullable useOAS3NamesNullable = _get(USE_OAS3_NAMES);
  144.         if(useOAS3NamesNullable!=null && useOAS3NamesNullable.getValue()!=null && useOAS3NamesNullable.getValue()) {
  145.             return defaultName;
  146.         }
  147.        
  148.         String nomeCustom = this.get(nome);
  149.         if(nomeCustom==null || "".equals(nomeCustom)) {
  150.             return defaultName;
  151.         }
  152.        
  153.         return nomeCustom;
  154.     }
  155. }