SecurityConstants.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.security.message.constants;

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

  24. import javax.xml.namespace.QName;

  25. import org.apache.cxf.rs.security.jose.common.JoseConstants;
  26. import org.apache.cxf.rt.security.rs.RSSecurityConstants;
  27. import org.apache.wss4j.common.ConfigurationConstants;
  28. import org.apache.wss4j.common.WSS4JConstants;
  29. import org.apache.wss4j.dom.handler.WSHandlerConstants;
  30. import org.openspcoop2.core.constants.CostantiDB;
  31. import org.openspcoop2.core.constants.CostantiLabel;
  32. import org.openspcoop2.security.keystore.MerlinProvider;
  33. import org.openspcoop2.utils.certificate.hsm.HSMUtils;
  34. import org.openspcoop2.utils.digest.Constants;

  35. /**
  36.  * WSSConstants
  37.  *
  38.  * @author Andrea Poli (apoli@link.it)
  39.  * @author Tommaso Burlon (tommaso.burlon@link.it)
  40.  * @author $Author$
  41.  * @version $Rev$, $Date$
  42.  */
  43. public class SecurityConstants {
  44.    
  45.     private SecurityConstants() {}

  46.     public static final String ACTION = ConfigurationConstants.ACTION;
  47.        
  48.     public static final String TIPO_SECURITY_ENGINE_SEPARATOR = " ";
  49.     public static final String TIPO_SECURITY_ACTION_SEPARATOR = ",";
  50.     public static String convertActionToString(Map<String, Object> flow){
  51.         if(flow!=null &&
  52.             flow.containsKey(ACTION)){
  53.                
  54.             String engine = SECURITY_ENGINE_WSS4J;
  55.             if(flow.containsKey(SECURITY_ENGINE)){
  56.                 Object o = flow.get(SECURITY_ENGINE);
  57.                 if(o instanceof String){
  58.                     engine = (String) o;
  59.                 }
  60.             }
  61.            
  62.             Object o = flow.get(ACTION);
  63.             if(o instanceof String){
  64.                 String actions = (String) o;
  65.                 return getActionValue(actions, engine);
  66.             }
  67.         }
  68.         return null;
  69.     }
  70.     private static String getActionValue(String actions, String engine) {
  71.         actions = actions.trim();
  72.         if(actions.contains(" ")){
  73.             String [] tmp = actions.split(" ");
  74.             StringBuilder bf = new StringBuilder();
  75.             bf.append(engine);
  76.             bf.append(TIPO_SECURITY_ENGINE_SEPARATOR);
  77.             for (int i = 0; i < tmp.length; i++) {
  78.                 if(tmp[i]!=null){
  79.                     if(i>0){
  80.                         bf.append(TIPO_SECURITY_ACTION_SEPARATOR);
  81.                     }
  82.                     bf.append(tmp[i].trim());
  83.                 }
  84.             }
  85.             return bf.toString();
  86.         }
  87.         else{
  88.             return engine + TIPO_SECURITY_ENGINE_SEPARATOR + actions; // una sola azione presente
  89.         }
  90.     }
  91.    
  92.     public static final String SECURITY_ENGINE = "securityEngine";
  93.     public static final String SECURITY_ENGINE_WSS4J = "wss4j";
  94.     public static final String SECURITY_ENGINE_SOAPBOX = "soapbox";
  95.     public static final String SECURITY_ENGINE_DSS = "dss";
  96.     public static final String SECURITY_ENGINE_JOSE = "jose";
  97.     public static final String SECURITY_ENGINE_XML = "xml";
  98.    
  99.     public static final String NORMALIZE_TO_SAAJ_IMPL = "normalizeToSaajImpl";
  100.    
  101.     public static final String WSS_HEADER_ELEMENT = "Security";
  102.     public static final String WSS_HEADER_ELEMENT_NAMESPACE = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
  103.     public static final String WSS_HEADER_UTILITY_NAMESPACE = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
  104.     public static final QName QNAME_WSS_ELEMENT_SECURITY = new QName(WSS_HEADER_ELEMENT_NAMESPACE,WSS_HEADER_ELEMENT);
  105.     public static final String WSS_HEADER_ATTRIBUTE_REFERENCE_ID_WSSECURITY = "Id";
  106.     public static final String WSS_HEADER_DS_NAMESPACE = Constants.DS_NAMESPACE;
  107.     public static final String WSS_HEADER_DS_REFERENCE_ELEMENT = Constants.DS_REFERENCE_ELEMENT;
  108.     public static final String WSS_HEADER_DS_REFERENCE_ATTRIBUTE_URI = Constants.DS_REFERENCE_ATTRIBUTE_URI;
  109.     public static final String WSS_HEADER_DS_REFERENCE_DIGEST_VALUE_ELEMENT = Constants.DS_REFERENCE_DIGEST_VALUE_ELEMENT;
  110.    
  111.     public static final String ACTOR = ConfigurationConstants.ACTOR;
  112.    
  113.     public static final String MUST_UNDERSTAND = ConfigurationConstants.MUST_UNDERSTAND;
  114.    
  115.     public static final boolean SECURITY_CLIENT = true;
  116.     public static final boolean SECURITY_SERVER = false;
  117.    
  118.     public static final String USER = ConfigurationConstants.USER;
  119.    
  120.     public static final String CID_ATTACH_WSS4J = "cid:Attachments";
  121.     public static final String NAMESPACE_ATTACH = "Attach";
  122.     public static final String PART_CONTENT = "Content";
  123.     public static final String PART_COMPLETE = "Complete";
  124.     public static final String PART_ELEMENT = "Element";
  125.     public static final String ATTACHMENT_INDEX_ALL =  "*";
  126.     public static final String SOAP_NAMESPACE_TEMPLATE =  "SOAP_TEMPLATE_NS";
  127.    
  128.     public static final String SUFFIX_SSL = ".ssl";
  129.     public static final String SUFFIX_ALGORITHM = ".algorithm";
  130.     public static final String SUFFIX_PUBLIC_KEY = ".public";
  131.     public static final String SUFFIX_CRL = ".crl";
  132.     public static final String SUFFIX_OCSP = ".ocsp";
  133.     public static final String SUFFIX_BYOK = MerlinProvider.SUFFIX_BYOK;
  134.    
  135.     public static final String MODE_JSON = "json";
  136.     public static final String MODE_COMPACT = "compact";
  137.    
  138.     public static final String MULTI_USER_KEYWORD_PORTA_DOMINIO_FRUITORE = "#MultiPropUsePddFruitoreAsAlias#";
  139.     public static final String MULTI_USER_KEYWORD_PORTA_DOMINIO_EROGATORE = "#MultiPropUsePddErogatoreAsAlias#";
  140.     public static final String MULTI_USER_KEYWORD_IDENTIFICATIVO_PORTA_FRUITORE = "#MultiPropUseIdentificativoPortaFruitoreAsAlias#";
  141.     public static final String MULTI_USER_KEYWORD_IDENTIFICATIVO_PORTA_EROGATORE = "#MultiPropUseIdentificativoPortaErogatoreAsAlias#";
  142.     public static final String MULTI_USER_KEYWORD_FRUITORE = "#MultiPropUseFruitoreAsAlias#";
  143.     public static final String MULTI_USER_KEYWORD_EROGATORE = "#MultiPropUseErogatoreAsAlias#";
  144.     public static final String MULTI_USER_KEYWORD_FRUITORE_EROGATORE = "#MultiPropUseFruitoreErogatoreAsAlias#";
  145.    
  146.     public static final String PASSWORD_CALLBACK_CLASS = ConfigurationConstants.PW_CALLBACK_CLASS;
  147.     public static final String PASSWORD_CALLBACK_REF = ConfigurationConstants.PW_CALLBACK_REF;
  148.    
  149.     public static final String SYMMETRIC_KEY = "symmetricKey";
  150.     public static final String SYMMETRIC_KEY_TRUE = "true";
  151.     public static final String SYMMETRIC_KEY_FALSE = "false";
  152.    
  153.     public static final String ENABLE_REVOCATION = ConfigurationConstants.ENABLE_REVOCATION;
  154.    
  155.     public static final String ENCRYPTION_ACTION = ConfigurationConstants.ENCRYPTION;
  156.     @SuppressWarnings("deprecation")
  157.     public static final String ENCRYPT_ACTION_OLD = ConfigurationConstants.ENCRYPT; // modificato costante in wss4j 2.3.x
  158.     public static final String DECRYPTION_ACTION = "Decryption";  // modificato per adeguamento costante rispetto a wss4j 2.3.x
  159.     public static final String DECRYPT_ACTION_OLD = "Decrypt";  // modificato per adeguamento costante rispetto a wss4j 2.3.x
  160.     public static final String ENCRYPTION_USER = ConfigurationConstants.ENCRYPTION_USER;
  161.     public static final String ENCRYPTION_PASSWORD = "encryptionPassword";
  162.     public static final String ENCRYPTION_SOAP_FAULT = "encryptionSOAPFault";
  163.     public static final String ENCRYPTION_PROBLEM_DETAILS = "encryptionProblemDetails";
  164.     public static final String ENCRYPTION_PARTS = ConfigurationConstants.ENCRYPTION_PARTS;
  165.     public static final String ENCRYPTION_PARTS_VERIFY = "encryptionPartsVerify";
  166.     /** ENCRYPTION_ATTACHMENTS_PARTS: {Content/Complete}{indice}
  167.     // utilizzo: {Content}{Attach}{*}
  168.     // o sintassi wss4j {}cid:Attachments
  169.     // Il valore * o '' puo' essere usato come indice per indicare qualsiasi, altrimenti l'indice indica la posizione dell'attachment*/
  170.     public static final String ENCRYPTION_NAMESPACE_ATTACH = NAMESPACE_ATTACH;
  171.     public static final String ENCRYPTION_PART_CONTENT = PART_CONTENT;
  172.     public static final String ENCRYPTION_PART_COMPLETE = PART_COMPLETE;
  173.     public static final String ENCRYPTION_PART_ELEMENT = PART_ELEMENT;
  174.     public static final String ENCRYPTION_JWK_SET_FILE = "encryptionJWKSetFile";
  175.     public static final String ENCRYPTION_PROPERTY_REF_ID = ConfigurationConstants.ENC_PROP_REF_ID;
  176.     public static final String ENCRYPTION_PROPERTY_FILE = ConfigurationConstants.ENC_PROP_FILE;
  177.     public static final String ENCRYPTION_TRUSTSTORE_PROPERTY_FILE = "encryptionTrustStorePropFile";
  178.     public static final String ENCRYPTION_TRUSTSTORE_PROPERTY_REF_ID= "encryptionTrustStorePropRefId";
  179.     public static final String ENCRYPTION_MULTI_PROPERTY_FILE = "encryptionMultiPropFile";
  180.     public static final String ENCRYPTION_SYMMETRIC_KEY_VALUE = "encryptionSymmetricKeyValue";
  181.     public static final String ENCRYPTION_SYMMETRIC = "encryptionSymmetricKey";
  182.     public static final String ENCRYPTION_SYMMETRIC_WRAPPED = "encryptionSymmetricKeyWrapped";
  183.     public static final String ENCRYPTION_SYMMETRIC_WRAPPED_TRUE = "true";
  184.     public static final String ENCRYPTION_SYMMETRIC_WRAPPED_FALSE = "false";
  185.     public static final String ENCRYPTION_KEY_SIZE = "encryptionKeySize";
  186.     public static final String ENCRYPTION_KEY_TRANSPORT_ALGORITHM = ConfigurationConstants.ENC_KEY_TRANSPORT;
  187.     public static final String ENCRYPTION_SYMMETRIC_ALGORITHM = ConfigurationConstants.ENC_SYM_ALGO;
  188.     public static final String ENCRYPTION_DIGEST_ALGORITHM = ConfigurationConstants.ENC_DIGEST_ALGO;
  189.     public static final String ENCRYPTION_C14N_ALGORITHM = "encryptionC14nAlgorithm";
  190.     public static final String ENCRYPTION_KEY_ALGORITHM = "encryptionKeyAlgorithm";
  191.     public static final String ENCRYPTION_CONTENT_ALGORITHM = "encryptionContentAlgorithm";
  192.     public static final String ENCRYPTION_ALGORITHM = "encryptionAlgorithm";
  193.     public static final String ENCRYPTION_KEY_IDENTIFIER = ConfigurationConstants.ENC_KEY_ID;
  194.     public static final String ENCRYPTION_MODE = "encryptionMode";
  195.     public static final String ENCRYPTION_MODE_JSON = MODE_JSON;
  196.     public static final String ENCRYPTION_MODE_COMPACT = MODE_COMPACT;
  197.     public static final String ENCRYPTION_DEFLATE = "deflate";
  198.     public static final String ENCRYPTION_DEFLATE_TRUE = "true";
  199.     public static final String ENCRYPTION_DEFLATE_FALSE = "false";
  200.     public static final String DECRYPTION_JWK_SET_FILE = "decryptionJWKSetFile";
  201.     public static final String DECRYPTION_PROPERTY_FILE = ConfigurationConstants.DEC_PROP_FILE;
  202.     public static final String DECRYPTION_PROPERTY_REF_ID = ConfigurationConstants.DEC_PROP_REF_ID;
  203.     public static final String DECRYPTION_TRUSTSTORE_PROPERTY_FILE = "decryptionTrustStorePropFile";
  204.     public static final String DECRYPTION_TRUSTSTORE_PROPERTY_REF_ID = "decryptionTrustStorePropRefId";
  205.     public static final String DECRYPTION_MULTI_PROPERTY_FILE = "decryptionMultiPropFile";
  206.     public static final String DECRYPTION_SYMMETRIC_KEY_VALUE = "decryptionSymmetricKeyValue";
  207.     public static final String DECRYPTION_SYMMETRIC_ALGORITHM = "decryptionSymAlgorithm";
  208.     public static final String DECRYPTION_USER = "decryptionUser";
  209.     public static final String DECRYPTION_PASSWORD = "decryptionPassword";
  210.     public static final String DECRYPTION_SYMMETRIC = "decryptionSymmetricKey";
  211.     public static final String DECRYPTION_SYMMETRIC_WRAPPED = "decryptionSymmetricKeyWrapped";
  212.     public static final String DECRYPTION_SYMMETRIC_WRAPPED_TRUE = "true";
  213.     public static final String DECRYPTION_SYMMETRIC_WRAPPED_FALSE = "false";
  214.     public static final String DECRYPTION_MODE = "decryptionMode";
  215.     public static final String DECRYPTION_MODE_JSON = MODE_JSON;
  216.     public static final String DECRYPTION_MODE_COMPACT = MODE_COMPACT;
  217.    
  218.    
  219.     public static final String SIGNATURE_ACTION = ConfigurationConstants.SIGNATURE;
  220.     public static final String SIGNATURE_USER = ConfigurationConstants.SIGNATURE_USER;
  221.     public static final String SIGNATURE_PASSWORD = "signaturePassword";
  222.     public static final String USE_REQ_SIG_CERT = ConfigurationConstants.USE_REQ_SIG_CERT;
  223.     public static final String SIGNATURE_SOAP_FAULT = "signatureSOAPFault";
  224.     public static final String SIGNATURE_PROBLEM_DETAILS = "signatureProblemDetails";
  225.     public static final String SIGNATURE_PARTS = ConfigurationConstants.SIGNATURE_PARTS;
  226.     public static final String SIGNATURE_PARTS_VERIFY = "signaturePartsVerify";
  227.     /** SIGNATURE_ATTACHMENTS_PARTS: {Content/Complete}{indice}
  228.     // utilizzo: {Content}{Attach}{*}
  229.     // o sintassi wss4j {}cid:Attachments
  230.     // Il valore * o '' puo' essere usato come indice per indicare qualsiasi, altrimenti l'indice indica la posizione dell'attachment*/
  231.     public static final String SIGNATURE_NAMESPACE_ATTACH = NAMESPACE_ATTACH;
  232.     public static final String SIGNATURE_PART_CONTENT = PART_CONTENT;
  233.     public static final String SIGNATURE_PART_COMPLETE = PART_COMPLETE;
  234.     public static final String SIGNATURE_PART_ELEMENT = PART_ELEMENT;
  235.     public static final String SIGNATURE_JWK_SET_FILE = "signatureJWKSetFile";
  236.     public static final String SIGNATURE_PROPERTY_REF_ID = ConfigurationConstants.SIG_PROP_REF_ID;
  237.     public static final String SIGNATURE_PROPERTY_FILE = ConfigurationConstants.SIG_PROP_FILE;
  238.     public static final String SIGNATURE_TRUSTSTORE_PROPERTY_FILE = "signatureTrustStorePropFile";
  239.     public static final String SIGNATURE_TRUSTSTORE_PROPERTY_REF_ID = "signatureTrustStorePropRefId";
  240.     public static final String SIGNATURE_MULTI_PROPERTY_FILE = "signatureMultiPropFile";
  241.     public static final String SIGNATURE_C14N_ALGORITHM = "signatureC14nAlgorithm";
  242.     public static final String SIGNATURE_DIGEST_ALGORITHM = ConfigurationConstants.SIG_DIGEST_ALGO;
  243.     public static final String SIGNATURE_ALGORITHM = ConfigurationConstants.SIG_ALGO;
  244.     public static final String SIGNATURE_KEY_IDENTIFIER = ConfigurationConstants.SIG_KEY_ID;
  245.     public static final String SIGNATURE_VALIDITY_CHECK = "signatureValidityCheck";
  246.     public static final String SIGNATURE_CRL = "signatureCRL";
  247.     public static final String SIGNATURE_CRL_VALIDATE_ONLY_END_ENTITY = "signatureCRLValidateOnlyEndEntity";
  248.     public static final String SIGNATURE_OCSP = "signatureOCSP";
  249.     public static final String SIGNATURE_VERIFICATION_PROPERTY_REF_ID = ConfigurationConstants.SIG_VER_PROP_REF_ID;
  250.     public static final String SIGNATURE_VERIFICATION_PROPERTY_FILE = ConfigurationConstants.SIG_VER_PROP_FILE;
  251.     public static final String SIGNATURE_MODE = "signatureMode";
  252.     public static final String SIGNATURE_MODE_JSON = MODE_JSON;
  253.     public static final String SIGNATURE_MODE_COMPACT = MODE_COMPACT;
  254.     public static final String SIGNATURE_PAYLOAD_ENCODING = "signaturePayloadEncoding";
  255.     public static final String SIGNATURE_PAYLOAD_ENCODING_TRUE = "true";
  256.     public static final String SIGNATURE_PAYLOAD_ENCODING_FALSE = "false";
  257.     public static final String SIGNATURE_DETACHED = "signatureDetached";
  258.     public static final String SIGNATURE_DETACHED_TRUE = "true";
  259.     public static final String SIGNATURE_DETACHED_FALSE = "false";
  260.     public static final String SIGNATURE_DETACHED_BASE64 = "signatureDetachedBase64";
  261.     public static final String SIGNATURE_DETACHED_BASE64_TRUE = "true";
  262.     public static final String SIGNATURE_DETACHED_BASE64_FALSE = "false";
  263.     public static final boolean SIGNATURE_DETACHED_BASE64_DEFAULT = Boolean.parseBoolean(SIGNATURE_DETACHED_BASE64_TRUE);
  264.     public static final String SIGNATURE_DETACHED_HEADER = "signatureDetachedHeader";
  265.     public static final String SIGNATURE_DETACHED_PROPERTY_URL = "signatureDetachedPropertyURL";
  266.     public static final String SIGNATURE_XML_KEY_INFO = "keyInfo";
  267.     public static final String SIGNATURE_XML_KEY_INFO_ALIAS = "keyInfoAlias";
  268.     public static final String SIGNATURE_XML_KEY_INFO_X509 = "x509";
  269.     public static final String SIGNATURE_XML_KEY_INFO_RSA = "RSA";
  270.    
  271.     public static final String USERNAME_TOKEN_ACTION = ConfigurationConstants.USERNAME_TOKEN;
  272.     public static final String USERNAME_TOKEN_NO_PASSWORD_ACTION = ConfigurationConstants.USERNAME_TOKEN_NO_PASSWORD;
  273.     public static final String USERNAME_TOKEN_SIGNATURE_ACTION = ConfigurationConstants.USERNAME_TOKEN_SIGNATURE;
  274.     public static final String USERNAME_TOKEN_SOAP_FAULT = "UsernameTokenSOAPFault";
  275.     public static final String USERNAME_TOKEN_PROBLEM_DETAILS = "UsernameTokenProblemDetails";
  276.    
  277.     public static final String SAML_TOKEN_SIGNED_ACTION = ConfigurationConstants.SAML_TOKEN_SIGNED;
  278.     public static final String SAML_TOKEN_UNSIGNED_ACTION = ConfigurationConstants.SAML_TOKEN_UNSIGNED;
  279.     public static final String SAML_TOKEN_SOAP_FAULT = "SAMLTokenSOAPFault";
  280.     public static final String SAML_TOKEN_PROBLEM_DETAILS = "SAMLTokenProblemDetails";
  281.    
  282.     public static final String JOSE_KEYSTORE = RSSecurityConstants.RSSEC_KEY_STORE;
  283.     public static final String JOSE_KEYSTORE_JWKSET = JoseConstants.RSSEC_KEY_STORE_JWKSET;
  284.     public static final String JOSE_KEYSTORE_TYPE = RSSecurityConstants.RSSEC_KEY_STORE_TYPE;
  285.     public static final String JOSE_KEYSTORE_FILE = RSSecurityConstants.RSSEC_KEY_STORE_FILE;
  286.     public static final String JOSE_KEYSTORE_KEY_ALGORITHM = RSSecurityConstants.RSSEC_KEY_STORE_FILE+SUFFIX_ALGORITHM;
  287.     public static final String JOSE_KEYSTORE_PUBLIC_KEY = RSSecurityConstants.RSSEC_KEY_STORE_FILE+SUFFIX_PUBLIC_KEY;
  288.     public static final String JOSE_KEYSTORE_PSWD = RSSecurityConstants.RSSEC_KEY_STORE_PSWD;
  289.     public static final String JOSE_KEYSTORE_KEY_ALIAS = RSSecurityConstants.RSSEC_KEY_STORE_ALIAS;
  290.     public static final String JOSE_KEYSTORE_KEY_PSWD = RSSecurityConstants.RSSEC_KEY_PSWD;
  291.     public static final String JOSE_KEYSTORE_CRL = RSSecurityConstants.RSSEC_KEY_STORE+SUFFIX_CRL;
  292.     public static final String JOSE_KEYSTORE_OCSP_POLICY = RSSecurityConstants.RSSEC_KEY_STORE+SUFFIX_OCSP;
  293.     public static final String JOSE_KEYSTORE_BYOK_POLICY = RSSecurityConstants.RSSEC_KEY_STORE_FILE+SecurityConstants.SUFFIX_BYOK;
  294.    
  295.     public static final String JOSE_TRUSTSTORE_SSL_TYPE = RSSecurityConstants.RSSEC_KEY_STORE_TYPE+SUFFIX_SSL;
  296.     public static final String JOSE_TRUSTSTORE_SSL_FILE = RSSecurityConstants.RSSEC_KEY_STORE_FILE+SUFFIX_SSL;
  297.     public static final String JOSE_TRUSTSTORE_SSL_PSWD = RSSecurityConstants.RSSEC_KEY_STORE_PSWD+SUFFIX_SSL;
  298.     public static final String JOSE_TRUSTSTORE_SSL_CRL =  RSSecurityConstants.RSSEC_KEY_STORE+SUFFIX_SSL+SUFFIX_CRL;
  299.     public static final String JOSE_TRUSTSTORE_SSL_OCSP =  RSSecurityConstants.RSSEC_KEY_STORE+SUFFIX_SSL+SUFFIX_OCSP;
  300.     public static final String JOSE_TRUSTSTORE_SSL_TRUSTALL = RSSecurityConstants.RSSEC_KEY_STORE+".trustAll"+SUFFIX_SSL;
  301.     public static final String JOSE_TRUSTSTORE_SSL_CONNECTION_TIMEOUT = RSSecurityConstants.RSSEC_KEY_STORE+SUFFIX_SSL+".connectionTimeout";
  302.     public static final String JOSE_TRUSTSTORE_SSL_READ_TIMEOUT = RSSecurityConstants.RSSEC_KEY_STORE+SUFFIX_SSL+".readTimeout";
  303.     public static final String JOSE_TRUSTSTORE_SSL_HOSTNAME_VERIFIER = RSSecurityConstants.RSSEC_KEY_STORE+SUFFIX_SSL+".hostNameVerifier";
  304.    
  305.     private static final String JOSE_FORWARD_PROXY_PREFIX = "rs.security.forwardProxy.";
  306.     public static final String JOSE_FORWARD_PROXY_ENDPOINT = JOSE_FORWARD_PROXY_PREFIX+"endpoint";
  307.     public static final String JOSE_FORWARD_PROXY_HEADER = JOSE_FORWARD_PROXY_PREFIX+"header";
  308.     public static final String JOSE_FORWARD_PROXY_HEADER_BASE64 = JOSE_FORWARD_PROXY_PREFIX+"header.base64";
  309.     public static final String JOSE_FORWARD_PROXY_QUERY = JOSE_FORWARD_PROXY_PREFIX+"query";
  310.     public static final String JOSE_FORWARD_PROXY_QUERY_BASE64 = JOSE_FORWARD_PROXY_PREFIX+"query.base64";
  311.    
  312.     private static final String JOSE_PROXY_PREFIX = "rs.security.proxy.";
  313.     public static final String JOSE_PROXY_TYPE = JOSE_PROXY_PREFIX+"type";
  314.     public static final String JOSE_PROXY_HOSTNAME = JOSE_PROXY_PREFIX+"hostname";
  315.     public static final String JOSE_PROXY_PORT = JOSE_PROXY_PREFIX+"port";
  316.     public static final String JOSE_PROXY_USERNAME = JOSE_PROXY_PREFIX+"username";
  317.     public static final String JOSE_PROXY_PASSWORD = JOSE_PROXY_PREFIX+"password";
  318.    
  319.     public static final String JOSE_KID = "joseKeyId";
  320.     public static final String JOSE_KID_TRUE = "true";
  321.     public static final String JOSE_KID_FALSE = "false";
  322.     public static final String JOSE_KID_CUSTOM = "joseKeyIdCustom";
  323.     public static final String JOSE_INCLUDE_CERT = "joseIncludeCert";
  324.     public static final String JOSE_INCLUDE_CERT_TRUE = "true";
  325.     public static final String JOSE_INCLUDE_CERT_FALSE = "false";
  326.     public static final String JOSE_INCLUDE_CERT_CHAIN = "joseIncludeCertChain";
  327.     public static final String JOSE_INCLUDE_CERT_CHAIN_TRUE = "true";
  328.     public static final String JOSE_INCLUDE_CERT_CHAIN_FALSE = "false";
  329.     public static final String JOSE_INCLUDE_CERT_SHA = "joseIncludeCertSHA";
  330.     public static final String JOSE_INCLUDE_CERT_SHA_1 = "sha1";
  331.     public static final String JOSE_INCLUDE_CERT_SHA_256 = "sha256";
  332.     public static final String JOSE_CONTENT_TYPE = "joseContentType";
  333.     public static final String JOSE_CONTENT_TYPE_TRUE = "true";
  334.     public static final String JOSE_CONTENT_TYPE_FALSE = "false";
  335.     public static final String JOSE_TYPE = "joseType";
  336.     public static final String JOSE_X509_URL = "joseX509Url";
  337.     public static final String JOSE_JWK_SET_URL = "joseJWKSetUrl";
  338.     public static final String JOSE_CRITICAL_HEADERS = "joseCriticalHeaders";
  339.     public static final String JOSE_CRITICAL_HEADERS_SEPARATOR = ",";
  340.     public static final String JOSE_EXT_HEADER_PREFIX = "joseExtensionHeader.";
  341.     public static final String JOSE_EXT_HEADER_SUFFIX_NAME = ".name";
  342.     public static final String JOSE_EXT_HEADER_SUFFIX_VALUE = ".value";
  343.    
  344.     public static final String JOSE_USE_HEADERS = "joseUseHeaders";
  345.     public static final String JOSE_USE_HEADERS_X5C = "joseUseHeaders.x5c";
  346.     public static final String JOSE_USE_HEADERS_X5U = "joseUseHeaders.x5u";
  347.     public static final String JOSE_USE_HEADERS_X5T = "joseUseHeaders.x5t";
  348.     public static final String JOSE_USE_HEADERS_X5T_256 = "joseUseHeaders.x5t256";
  349.     public static final String JOSE_USE_HEADERS_JWK = "joseUseHeaders.jwk";
  350.     public static final String JOSE_USE_HEADERS_JKU = "joseUseHeaders.jku";
  351.     public static final String JOSE_USE_HEADERS_KID = "joseUseHeaders.kid";
  352.     public static final String JOSE_USE_HEADERS_TRUE = "true";
  353.     public static final String JOSE_USE_HEADERS_FALSE = "false";
  354.    
  355.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_TYPE = "joseUseHeaders.truststore.type";
  356.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_FILE = "joseUseHeaders.truststore.file";
  357.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_KEY_PAIR_ALGORITHM = "joseUseHeaders.truststore.file.algorithm";
  358.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_PASSWORD = "joseUseHeaders.truststore.password";
  359.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_VALIDITY_CHECK =  "joseUseHeaders.truststore.validityCheck";
  360.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_CRL =  "joseUseHeaders.truststore.crl";
  361.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_OCSP =  "joseUseHeaders.truststore.ocsp";
  362.    
  363.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_SSL_TYPE = JOSE_TRUSTSTORE_SSL_TYPE;
  364.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_SSL_FILE = JOSE_TRUSTSTORE_SSL_FILE;
  365.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_SSL_PASSWORD = JOSE_TRUSTSTORE_SSL_PSWD;
  366.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_SSL_CRL = JOSE_TRUSTSTORE_SSL_CRL;
  367.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_SSL_OCSP = JOSE_TRUSTSTORE_SSL_OCSP;
  368.    
  369.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_REMOTE_STORE_PROVIDER = "joseUseHeaders.truststore.remoteStoreProvider";
  370.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_REMOTE_STORE_KEY_TYPE = "joseUseHeaders.truststore.remoteStoreKeyType";
  371.     public static final String JOSE_USE_HEADERS_TRUSTSTORE_REMOTE_STORE_CONFIG = "joseUseHeaders.truststore.remoteStoreConfig";
  372.    
  373.     public static final String JOSE_USE_HEADERS_KEYSTORE_TYPE = "joseUseHeaders.keystore.type";
  374.     public static final String JOSE_USE_HEADERS_KEYSTORE_FILE = "joseUseHeaders.keystore.file";
  375.     public static final String JOSE_USE_HEADERS_KEYSTORE_KEY_PAIR_ALGORITHM = "joseUseHeaders.keystore.file.algorithm";
  376.     public static final String JOSE_USE_HEADERS_KEYSTORE_PASSWORD = "joseUseHeaders.keystore.password";
  377.     public static final String JOSE_USE_HEADERS_KEYSTORE_MAP_ALIAS_PW = "joseUseHeaders.key.";
  378.     public static final String JOSE_USE_HEADERS_KEYSTORE_MAP_ALIAS_PW_SUFFIX_ALIAS = ".alias";
  379.     public static final String JOSE_USE_HEADERS_KEYSTORE_MAP_ALIAS_PW_SUFFIX_PW = ".password";
  380.        
  381.    
  382.    
  383.     public static final String TIMESTAMP_ACTION = ConfigurationConstants.TIMESTAMP;
  384.     public static final String TIMESTAMP_TTL = ConfigurationConstants.TTL_TIMESTAMP;
  385.    
  386.     public static final String TIMESTAMP_STRICT = ConfigurationConstants.TIMESTAMP_STRICT;
  387.     public static final String TIMESTAMP_PRECISION = ConfigurationConstants.TIMESTAMP_PRECISION;
  388.     public static final String TIMESTAMP_FUTURE_TTL = ConfigurationConstants.TTL_FUTURE_TIMESTAMP;
  389.    
  390.     public static final String TIMESTAMP_SOAPBOX_TTL_DEFAULT = "300";
  391.     public static final String TIMESTAMP_SOAPBOX_FUTURE_TTL_DEFAULT =  "60";

  392.     public static final String USERNAME_TOKEN_PW = "usernameTokenPassword";
  393.     public static final String USERNAME_TOKEN_PW_TYPE = ConfigurationConstants.PASSWORD_TYPE;
  394.     public static final String USERNAME_TOKEN_PW_TYPE_DIGEST = WSS4JConstants.PW_DIGEST;
  395.     public static final String USERNAME_TOKEN_PW_TYPE_TEXT = WSS4JConstants.PW_TEXT;
  396.     public static final String USERNAME_TOKEN_PW_TYPE_NONE = WSS4JConstants.PW_NONE;
  397.    
  398.     public static final String USERNAME_TOKEN_PW_MAP_MODE = "usernameTokenPasswordMode";
  399.     public static final String USERNAME_TOKEN_PW_MAP_MODE_SINGLE = "single";
  400.     public static final String USERNAME_TOKEN_PW_MAP_MODE_MAP = "map";
  401.    
  402.     public static final String USERNAME_TOKEN_PW_MAP = "usernameTokenPasswordMap";
  403.    
  404.     public static final String SAML_PROF_FILE =  "samlPropFile";
  405.     public static final String SAML_PROF_REF_ID  =  "samlPropRefId";
  406.     public static final String SAML_CALLBACK_REF = ConfigurationConstants.SAML_CALLBACK_REF;
  407.     public static final String SAML_VERSION_XMLCONFIG_ID =  "samlVersion";
  408.     public static final String SAML_VERSION_XMLCONFIG_ID_VALUE_20 =  "2.0";
  409.     public static final String SAML_ISSUER_FORMAT_XMLCONFIG_ID_2 =  "issuerFormat2";
  410.     public static final String SAML_SUBJECT_FORMAT_XMLCONFIG_ID_1 =  "subjectFormat1";
  411.     public static final String SAML_SUBJECT_FORMAT_XMLCONFIG_ID_2 =  "subjectFormat2";
  412.     public static final String SAML_SUBJECT_CONFIRMATION_METHOD_XMLCONFIG_ID_1 =  "subjectConfirmationMethod1";
  413.     public static final String SAML_SUBJECT_CONFIRMATION_METHOD_XMLCONFIG_ID_2 =  "subjectConfirmationMethod2";
  414.     public static final String SAML_AUTHN_CONTEXT_CLASS_REF_XMLCONFIG_ID_1 =  "authnContextClassRef1";
  415.     public static final String SAML_AUTHN_CONTEXT_CLASS_REF_XMLCONFIG_ID_2 =  "authnContextClassRef2";
  416.     public static final String SAML_ENVELOPED_SAML_SIGNATURE_XMLCONFIG_PREFIX_ID =  "signatureActionChoice";
  417.     public static final String SAML_ATTRIBUTE_STATEMENT_FORMAT_XMLCONFIG_PREFIX_ID =  "attributeStatementFormat_";
  418.     public static final String SAML_SUBJECT_CONFIRMATION_VALIDATION_METHOD_XMLCONFIG_ID =  "validateSamlSubjectConfirmationType";
  419.     public static final String SAML_SUBJECT_CONFIRMATION_VALIDATION_METHOD_XMLCONFIG_ID_SENDER_VOUCHES =  "sender-vouches";
  420.     public static final String SAML_SUBJECT_CONFIRMATION_VALIDATION_METHOD_XMLCONFIG_ID_HOLDER_OF_KEY =  "holder-of-key";
  421.     public static final String SAML_SIGNATURE_PARAM_CONVERTO_INTO_SAML_CONFIG = "signaturePropRefId_convertParamsIntoSamlPropRefId";
  422.     public static final String SAML_SIGNATURE_PARAM_CONVERTO_INTO_SAML_CONFIG_HOLDER_OF_KEY = "signaturePropRefId_convertParamsIntoSamlPropRefId_holderOfKey";
  423.     public static final String SAML_NAMESPACE_TEMPLATE = "SAML_TEMPLATE_NS";
  424.    
  425.     public static final String AUTH_PDP_LOCAL = "pdpLocal"; // true/false (default true)
  426.     public static final String AUTH_PDP_REMOTE_URL = "pdpRemoteUrl";
  427.     public static final String AUTH_PDP_REMOTE_CONNECTION_TIMEOUT = "pdpRemoteConnectionTimeout";
  428.     public static final String AUTH_PDP_REMOTE_READ_CONNECTION_TIMEOUT = "pdpRemoteReadConnectionTimeout";
  429.    
  430.     // Do not perform any action, do nothing. Only applies to DOM code.
  431.     public static final String ACTION_NO_SECURITY = WSHandlerConstants.NO_SECURITY;
  432.     // Perform a UsernameTokenSignature action.
  433.     public static final String ACTION_USERNAME_TOKEN_SIGNATURE = ConfigurationConstants.USERNAME_TOKEN_SIGNATURE;
  434.     // Perform a UsernameToken action.
  435.     public static final String ACTION_USERNAME_TOKEN = ConfigurationConstants.USERNAME_TOKEN;
  436.     // Used on the receiving side to specify a UsernameToken with no password
  437.     public static final String ACTION_USERNAME_TOKEN_NO_PASSWORD = ConfigurationConstants.USERNAME_TOKEN_NO_PASSWORD;
  438.     // Perform an unsigned SAML Token action.
  439.     public static final String ACTION_SAML_TOKEN_UNSIGNED = ConfigurationConstants.SAML_TOKEN_UNSIGNED;    
  440.     // Perform a signed SAML Token action.
  441.     public static final String ACTION_SAML_TOKEN_SIGNED = ConfigurationConstants.SAML_TOKEN_SIGNED;    
  442.     // Perform a signature action.
  443.     public static final String ACTION_SIGNATURE = SIGNATURE_ACTION;
  444.     // Perform a encryption action.
  445.     public static final String ACTION_ENCRYPTION = ENCRYPTION_ACTION;
  446.     public static final String ACTION_ENCRYPT_OLD = ENCRYPT_ACTION_OLD;  // modificato costante in wss4j 2.3.x
  447.     // Perform a decryption action.
  448.     public static final String ACTION_DECRYPTION = DECRYPTION_ACTION;
  449.     public static final String ACTION_DECRYPT_OLD = DECRYPT_ACTION_OLD;  // modificato costante in wss4j 2.3.x
  450.     // Perform a Timestamp action.
  451.     public static final String ACTION_TIMESTAMP = TIMESTAMP_ACTION;
  452.     // Perform a Signature action with derived keys.
  453.     public static final String ACTION_SIGNATURE_DERIVED = ConfigurationConstants.SIGNATURE_DERIVED;
  454.     // Perform a Encryption action with derived keys.
  455.     public static final String ACTION_ENCRYPTION_DERIVED = ConfigurationConstants.ENCRYPTION_DERIVED;
  456.     @SuppressWarnings("deprecation")
  457.     public static final String ACTION_ENCRYPT_DERIVED_OLD = ConfigurationConstants.ENCRYPT_DERIVED;  // modificato costante in wss4j 2.3.x
  458.     // Perform a Signature action with a kerberos token. Only for StAX code.
  459.     public static final String ACTION_SIGNATURE_WITH_KERBEROS_TOKEN = ConfigurationConstants.SIGNATURE_WITH_KERBEROS_TOKEN;
  460.     // Perform a Encryption action with a kerberos token. Only for StAX code.
  461.     public static final String ACTION_ENCRYPTION_WITH_KERBEROS_TOKEN = ConfigurationConstants.ENCRYPTION_WITH_KERBEROS_TOKEN;
  462.     @SuppressWarnings("deprecation")
  463.     public static final String ACTION_ENCRYPT_WITH_KERBEROS_TOKEN_OLD = ConfigurationConstants.ENCRYPT_WITH_KERBEROS_TOKEN;  // modificato costante in wss4j 2.3.x
  464.     // Add a kerberos token.
  465.     public static final String ACTION_KERBEROS_TOKEN = ConfigurationConstants.KERBEROS_TOKEN;
  466.     // Add a "Custom" token from a CallbackHandler
  467.     public static final String ACTION_CUSTOM_TOKEN = ConfigurationConstants.CUSTOM_TOKEN;
  468.    
  469.     public static boolean isActionEncryption(String action) {
  470.         return
  471.                 SecurityConstants.ACTION_ENCRYPTION.equals(action) ||
  472.                 SecurityConstants.ACTION_ENCRYPT_OLD.equals(action) ||
  473.                 SecurityConstants.ACTION_ENCRYPTION_DERIVED.equals(action) ||
  474.                 SecurityConstants.ACTION_ENCRYPT_DERIVED_OLD.equals(action) ||
  475.                 SecurityConstants.ACTION_ENCRYPTION_WITH_KERBEROS_TOKEN.equals(action) ||
  476.                 SecurityConstants.ACTION_ENCRYPT_WITH_KERBEROS_TOKEN_OLD.equals(action);
  477.     }
  478.     public static boolean containsActionEncryption(String action) {
  479.         if(action==null) {
  480.             return false;
  481.         }
  482.         return
  483.                 action.contains(SecurityConstants.ACTION_ENCRYPTION) ||
  484.                 action.contains(SecurityConstants.ACTION_ENCRYPT_OLD) ||
  485.                 action.contains(SecurityConstants.ACTION_ENCRYPTION_DERIVED) ||
  486.                 action.contains(SecurityConstants.ACTION_ENCRYPT_DERIVED_OLD) ||
  487.                 action.contains(SecurityConstants.ACTION_ENCRYPTION_WITH_KERBEROS_TOKEN) ||
  488.                 action.contains(SecurityConstants.ACTION_ENCRYPT_WITH_KERBEROS_TOKEN_OLD);
  489.     }
  490.     public static boolean isActionDecryption(String action) {
  491.         return
  492.                 SecurityConstants.ACTION_DECRYPTION.equals(action) ||
  493.                 SecurityConstants.ACTION_DECRYPT_OLD.equals(action);
  494.     }
  495.     public static boolean containsActionDecryption(String action) {
  496.         if(action==null) {
  497.             return false;
  498.         }
  499.         return
  500.                 action.contains(SecurityConstants.ACTION_DECRYPTION) ||
  501.                 action.contains(SecurityConstants.ACTION_DECRYPT_OLD);
  502.     }
  503.    
  504.     public static boolean isActionUsernameToken(String action) {
  505.         return
  506.                 SecurityConstants.ACTION_USERNAME_TOKEN.equals(action) ||
  507.                 SecurityConstants.ACTION_USERNAME_TOKEN_NO_PASSWORD.equals(action) ||
  508.                 SecurityConstants.ACTION_USERNAME_TOKEN_SIGNATURE.equals(action);
  509.     }
  510.     public static boolean containsActionUsernameToken(String action) {
  511.         if(action==null) {
  512.             return false;
  513.         }
  514.         return
  515.                 action.contains(SecurityConstants.ACTION_USERNAME_TOKEN) ||
  516.                 action.contains(SecurityConstants.ACTION_USERNAME_TOKEN_NO_PASSWORD) ||
  517.                 action.contains(SecurityConstants.ACTION_USERNAME_TOKEN_SIGNATURE);
  518.     }
  519.    
  520.     public static boolean isActionSAMLToken(String action) {
  521.         return
  522.                 SecurityConstants.ACTION_SAML_TOKEN_SIGNED.equals(action) ||
  523.                 SecurityConstants.ACTION_SAML_TOKEN_UNSIGNED.equals(action);
  524.     }
  525.     public static boolean containsActionSAMLToken(String action) {
  526.         if(action==null) {
  527.             return false;
  528.         }
  529.         return
  530.                 action.contains(SecurityConstants.ACTION_SAML_TOKEN_SIGNED) ||
  531.                 action.contains(SecurityConstants.ACTION_SAML_TOKEN_UNSIGNED);
  532.     }
  533.    
  534.     public static final String KEY_IDENTIFIER_BST_DIRECT_REFERENCE = CostantiDB.KEY_IDENTIFIER_BST_DIRECT_REFERENCE;
  535.     public static final String KEY_IDENTIFIER_ISSUER_SERIAL = CostantiDB.KEY_IDENTIFIER_ISSUER_SERIAL;
  536.     public static final String KEY_IDENTIFIER_X509 = CostantiDB.KEY_IDENTIFIER_X509;
  537.     public static final String KEY_IDENTIFIER_SKI = CostantiDB.KEY_IDENTIFIER_SKI;
  538.     public static final String KEY_IDENTIFIER_EMBEDDED_KEY_NAME = CostantiDB.KEY_IDENTIFIER_EMBEDDED_KEY_NAME;
  539.     public static final String KEY_IDENTIFIER_THUMBPRINT = CostantiDB.KEY_IDENTIFIER_THUMBPRINT;
  540.     public static final String KEY_IDENTIFIER_ENCRYPTED_KEY_SHA1 = CostantiDB.KEY_IDENTIFIER_ENCRYPTED_KEY_SHA1;

  541.     public static final String KEY_IDENTIFIER_BST_DIRECT_REFERENCE_USE_SINGLE_CERTIFICATE = ConfigurationConstants.USE_SINGLE_CERTIFICATE;
  542.    
  543.     public static final String KEY_IDENTIFIER_INCLUDE_SIGNATURE_TOKEN = ConfigurationConstants.INCLUDE_SIGNATURE_TOKEN;
  544.     public static final String KEY_IDENTIFIER_INCLUDE_ENCRYPT_TOKEN = ConfigurationConstants.INCLUDE_ENCRYPTION_TOKEN;
  545.    
  546.     public static final String IS_BSP_COMPLIANT = ConfigurationConstants.IS_BSP_COMPLIANT;
  547.    
  548.     public static final String AUTHORIZATION_CLASS = "authorizationClass";
  549.    
  550.     public static final String DETACH_HEADER_WSS = "detachHeaderWSSecurity";
  551.     public static final String DETACH_SECURITY_INFO = "detachSecurityInfo";
  552.    
  553.     // l'id puo' appartenere ad un altro header wssecurity con diverso actor/mustUnderstand.
  554.     // Se si abilita questa opzione in caso di presenza di differenti header wssecurity con actor differenti,
  555.     // la sicurezza può andare in errore sull'ultimo nodo, essendo state eliminate tutte le reference
  556.     // Questa opzione serve però abilitarla dove sono presenti vecchi soap engine della sicurezza che lasciavano 'zomibie' degli id non riferiti ed utilizzati nell'header WSS
  557.     // Questi attributi 'zombie' possono poi far fallire una eventuale validazione dei contenuti applicativi ad esempio (caso pdc)
  558.     public static final String REMOVE_ALL_WSU_ID_REF = "removeAllWsuIdRef";
  559.    
  560.     public static final String TRUE = "true";
  561.     public static final String FALSE = "false";
  562.    
  563.     public static final String KEYSTORE_TYPE_KEY_PAIR_VALUE = CostantiDB.KEYSTORE_TYPE_KEY_PAIR;
  564.     public static final String KEYSTORE_TYPE_KEY_PAIR_LABEL = CostantiLabel.KEYSTORE_TYPE_KEY_PAIR;
  565.    
  566.     public static final String KEYSTORE_TYPE_PUBLIC_KEY_VALUE = CostantiDB.KEYSTORE_TYPE_PUBLIC_KEY;
  567.     public static final String KEYSTORE_TYPE_PUBLIC_KEY_LABEL = CostantiLabel.KEYSTORE_TYPE_PUBLIC_KEY;
  568.    
  569.     public static final String KEYSTORE_TYPE_JWK_VALUE = CostantiDB.KEYSTORE_TYPE_JWK;
  570.     public static final String KEYSTORE_TYPE_JWK_LABEL = CostantiLabel.KEYSTORE_TYPE_JWK;
  571.    
  572.     public static final String KEYSTORE_TYPE_JKS_VALUE = CostantiDB.KEYSTORE_TYPE_JKS;
  573.     public static final String KEYSTORE_TYPE_JKS_LABEL = CostantiLabel.KEYSTORE_TYPE_JKS;
  574.    
  575.     public static final String KEYSTORE_TYPE_PKCS12_VALUE = CostantiDB.KEYSTORE_TYPE_PKCS12;
  576.     public static final String KEYSTORE_TYPE_PKCS12_LABEL = CostantiLabel.KEYSTORE_TYPE_PKCS12;
  577.    
  578.     public static List<String> getTipologieKeystoreValues(boolean truststore){
  579.         // NOTA:far ricreare la lista ogni volta, poiche' poi viene modificata
  580.         List<String> l = new ArrayList<>();
  581.         l.add(KEYSTORE_TYPE_JKS_VALUE);
  582.         l.add(KEYSTORE_TYPE_PKCS12_VALUE);
  583.         HSMUtils.fillTipologieKeystore(truststore, false, l);
  584.         return l;
  585.     }
  586.     public static List<String> getTipologieKeystoreLabels(boolean truststore){
  587.         // NOTA:far ricreare la lista ogni volta, poiche' poi viene modificata
  588.         List<String> l = new ArrayList<>();
  589.         l.add(KEYSTORE_TYPE_JKS_LABEL);
  590.         l.add(KEYSTORE_TYPE_PKCS12_LABEL);
  591.         HSMUtils.fillTipologieKeystore(truststore, false, l);
  592.         return l;
  593.     }
  594.    
  595.     public static final String KEYSTORE_TYPE_JCEKS_VALUE = "jceks";
  596.     public static final String KEYSTORE_TYPE_JCEKS_LABEL = "JCEKS";
  597.     public static List<String> getTipologieSecretKeystoreValues(){
  598.         // NOTA:far ricreare la lista ogni volta, poiche' poi viene modificata
  599.         List<String> l = new ArrayList<>();
  600.         l.add(KEYSTORE_TYPE_JCEKS_VALUE);
  601.         HSMUtils.fillTipologieKeystore(false, true, l);
  602.         return l;
  603.     }
  604.     public static List<String> getTipologieSecretKeystoreLabels(){
  605.         // NOTA:far ricreare la lista ogni volta, poiche' poi viene modificata
  606.         List<String> l = new ArrayList<>();
  607.         l.add(KEYSTORE_TYPE_JCEKS_LABEL);
  608.         HSMUtils.fillTipologieKeystore(false, true, l);
  609.         return l;
  610.     }

  611.     public static final String SECRETKEYSTORE_TYPE = "secretkeystoreType";
  612.     public static final String SECRETKEYSTORE_FILE = "secretkeystoreFile";
  613.     public static final String SECRETKEYSTORE_PASSWORD = "secretkeystorePassword";
  614.     public static final String SECRETKEYSTORE_PRIVATE_KEY_PASSWORD = "secretkeystorePrivateKeyPassword";
  615.     public static final String SECRETKEYSTORE_BYOK_POLICY = "secretkeystoreByokPolicy";
  616.    
  617.     public static final String KEYSTORE_TYPE = "keystoreType";
  618.     public static final String KEYSTORE_FILE = "keystoreFile";
  619.     public static final String KEYSTORE_PASSWORD = "keystorePassword";
  620.     public static final String KEYSTORE_PRIVATE_KEY_PASSWORD = "keystorePrivateKeyPassword";
  621.     public static final String KEYSTORE_OCSP_POLICY = "keystoreOcspPolicy";
  622.     public static final String KEYSTORE_BYOK_POLICY = "keystoreByokPolicy";
  623.      
  624.     public static final String TRUSTSTORE_TYPE = "truststoreType";
  625.     public static final String TRUSTSTORE_FILE = "truststoreFile";
  626.     public static final String TRUSTSTORE_PASSWORD = "truststorePassword";
  627.     public static final String TRUSTSTORE_OCSP_POLICY = "truststoreOcspPolicy";

  628.     /**
  629.      * Produce l'encoding in base64 dell'attachment (prima di applicare la sicurezza)
  630.      */
  631.     public static final String PRE_BASE64_ENCODING_ATTACHMENT_TRUE = "true";
  632.     public static final String PRE_BASE64_ENCODING_ATTACHMENT_FALSE= "false";
  633.     public static final boolean PRE_BASE64_ENCODING_ATTACHMENT_DEFAULT = Boolean.parseBoolean(PRE_BASE64_ENCODING_ATTACHMENT_FALSE);
  634.     public static final String PRE_BASE64_ENCODING_ATTACHMENT = "preBase64EncodingAttachment";

  635.     /**
  636.      * Produce l'encoding in base64 dell'attachment (dopo aver applicato la sicurezza)
  637.      */
  638.     public static final String POST_BASE64_ENCODING_ATTACHMENT_TRUE = "true";
  639.     public static final String POST_BASE64_ENCODING_ATTACHMENT_FALSE = "false";
  640.     public static final boolean POST_BASE64_ENCODING_ATTACHMENT_DEFAULT = Boolean.parseBoolean(POST_BASE64_ENCODING_ATTACHMENT_FALSE);
  641.     public static final String POST_BASE64_ENCODING_ATTACHMENT = "postBase64EncodingAttachment";

  642.     /**
  643.      * Decodifica la rappresentazione base64 dell'attachment (dopo la validazione della sicurezza)
  644.      */
  645.     public static final String POST_BASE64_DECODING_ATTACHMENT_TRUE = "true";
  646.     public static final String POST_BASE64_DECODING_ATTACHMENT_FALSE = "false";
  647.     public static final boolean POST_BASE64_DECODING_ATTACHMENT_DEFAULT = Boolean.parseBoolean(POST_BASE64_DECODING_ATTACHMENT_FALSE);
  648.     public static final String POST_BASE64_DECODING_ATTACHMENT = "postBase64DecodingAttachment";

  649.     /**
  650.      * Aggiunge le parentesi uncinate all'id degli attachment
  651.      */
  652.     public static final String ADD_ATTACHMENT_ID_BRACKETS_FALSE = "false";
  653.     public static final String ADD_ATTACHMENT_ID_BRACKETS_TRUE = "true";
  654.     public static final boolean ADD_ATTACHMENT_ID_BRACKETS_DEFAULT = Boolean.parseBoolean(ADD_ATTACHMENT_ID_BRACKETS_FALSE);
  655.     public static final String ADD_ATTACHMENT_ID_BRACKETS = "addAttachmentIdBrackets";
  656.    
  657.     /**
  658.      * Cifra gli headers degli attachment
  659.      */
  660.     public static final String ENCRYPT_ATTACHMENT_HEADERS_FALSE = "false";
  661.     public static final String ENCRYPT_ATTACHMENT_HEADERS_TRUE = "true";
  662.     public static final boolean ENCRYPT_ATTACHMENT_HEADERS_DEFAULT = Boolean.parseBoolean(ENCRYPT_ATTACHMENT_HEADERS_FALSE);
  663.     public static final String ENCRYPT_ATTACHMENT_HEADERS = "encryptAttachmentHeaders";
  664.    
  665. }