werner      2005/05/16 02:31:41

  Modified:    wss4j/src/org/apache/ws/security WSConstants.java
  Log:
  Insert the special "Null" namespace string.
  
  Revision  Changes    Path
  1.27      +370 -369  ws-fx/wss4j/src/org/apache/ws/security/WSConstants.java
  
  Index: WSConstants.java
  ===================================================================
  RCS file: /home/cvs/ws-fx/wss4j/src/org/apache/ws/security/WSConstants.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- WSConstants.java  31 Oct 2004 08:12:12 -0000      1.26
  +++ WSConstants.java  16 May 2005 09:31:41 -0000      1.27
  @@ -1,369 +1,370 @@
  -/*
  - * Copyright  2003-2004 The Apache Software Foundation.
  - *
  - *  Licensed under the Apache License, Version 2.0 (the "License");
  - *  you may not use this file except in compliance with the License.
  - *  You may obtain a copy of the License at
  - *
  - *      http://www.apache.org/licenses/LICENSE-2.0
  - *
  - *  Unless required by applicable law or agreed to in writing, software
  - *  distributed under the License is distributed on an "AS IS" BASIS,
  - *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  - *  See the License for the specific language governing permissions and
  - *  limitations under the License.
  - *
  - */
  -
  -package org.apache.ws.security;
  -
  -import org.apache.xml.security.c14n.Canonicalizer;
  -import org.apache.xml.security.signature.XMLSignature;
  -import org.apache.xml.security.utils.EncryptionConstants;
  -
  -/**
  - * Constants in WS-Security spec.
  - */
  -public class WSConstants {
  -    // the following compliance mode values must have increasing values as 
new
  -    // modes are added; a later spec should have a value > value of an an 
earlier spec. 
  -    public static final int OASIS_2002_07 = 1;
  -    public static final int OASIS_2002_12 = 2;
  -    public static final int OASIS_2003_06 = 3;
  -    public static final int OASIS_1_0 = 4;
  -
  -    /**
  -     * Set the specification compliance mode. This affects namespaces as well
  -     * as how certain items are constructed in security headers.
  -     * <p/>
  -     * Currently this can only be set at compile time. The valid values are:
  -     * <ul>
  -     * <li> [EMAIL PROTECTED] #OASIS_2002_07} </li>
  -     * <li> [EMAIL PROTECTED] #OASIS_2002_12} </li>
  -     * <li> [EMAIL PROTECTED] #OASIS_2003_06} </li>
  -     * <li> [EMAIL PROTECTED] #OASIS_1_0} OASIS WS-Security v1.0 as released 
on March 2004. This is the default and recommended setting</li>
  -     * </ul>
  -     * <p/>
  -     * Using [EMAIL PROTECTED] #OASIS_2002} enhances chances of 
interoperability with other
  -     * WSS implementations that do not fully adhere to the OASIS v1.0 March 
2004
  -     * specs yet.
  -     *
  -     * @param specs instructs WSS4J on which standard to follow
  -     */
  -    public static final int COMPLIANCE_MODE = OASIS_1_0;
  -
  -    public static final String WSSE_NS_OASIS_2002_07 = 
"http://schemas.xmlsoap.org/ws/2002/07/secext";;
  -    public static final String WSSE_NS_OASIS_2002_12 = 
"http://schemas.xmlsoap.org/ws/2002/12/secext";;
  -    public static final String WSSE_NS_OASIS_2003_06 = 
"http://schemas.xmlsoap.org/ws/2003/06/secext";;
  -    public static final String WSSE_NS_OASIS_1_0 = 
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";;
  -    public static String WSSE_NS = WSSE_NS_OASIS_1_0;
  -    public static final String[] WSSE_NS_ARRAY =
  -            new String[]{WSSE_NS_OASIS_1_0,
  -                         WSSE_NS_OASIS_2003_06,
  -                         WSSE_NS_OASIS_2002_12,
  -                         WSSE_NS_OASIS_2002_07};
  -    public static final String USERNAMETOKEN_NS = 
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0";;
  -    public static final String SOAPMESSAGE_NS = 
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0";;
  -    public static final String X509TOKEN_NS = 
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0";;
  -    public static final String WSSE_PREFIX = "wsse";
  -    public static final String WSSE_LN = "Security";
  -    public static final String WSU_NS_OASIS_2002_07 = 
"http://schemas.xmlsoap.org/ws/2002/07/utility";;
  -    public static final String WSU_NS_OASIS_2002_12 = 
"http://schemas.xmlsoap.org/ws/2002/12/utility";;
  -    public static final String WSU_NS_OASIS_2003_06 = 
"http://schemas.xmlsoap.org/ws/2003/06/utility";;
  -    public static final String WSU_NS_OASIS_1_0 = 
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";;
  -    public static String WSU_NS = WSU_NS_OASIS_1_0;
  -    public static final String[] WSU_NS_ARRAY =
  -            new String[]{WSU_NS_OASIS_1_0,
  -                         WSU_NS_OASIS_2003_06,
  -                         WSU_NS_OASIS_2002_12,
  -                         WSU_NS_OASIS_2002_07};
  -    public static final String WSU_PREFIX = "wsu";
  -    public static final String SIG_NS = "http://www.w3.org/2000/09/xmldsig#";;
  -    public static final String SIG_PREFIX = "ds";
  -    public static final String SIG_LN = "Signature";
  -    public static final String ENC_NS = "http://www.w3.org/2001/04/xmlenc#";;
  -    public static final String ENC_PREFIX = "xenc";
  -    public static final String ENC_KEY_LN = "EncryptedKey";
  -    public static final String REF_LIST_LN = "ReferenceList";
  -//    public static final String SOAP_SEC_NS = 
"http://schemas.xmlsoap.org/soap/security/2000-12";;
  -    public static final String XMLNS_NS = "http://www.w3.org/2000/xmlns/";;
  -    public static final String XML_NS = 
"http://www.w3.org/XML/1998/namespace";;
  -    public static final String USERNAME_TOKEN_LN = "UsernameToken";
  -    public static final String BINARY_TOKEN_LN = "BinarySecurityToken";
  -    public static final String TIMESTAMP_TOKEN_LN = "Timestamp";
  -    public static final String USERNAME_LN = "Username";
  -    public static final String PASSWORD_LN = "Password";
  -    public static final String PASSWORD_TYPE_ATTR = "Type";
  -    public static final String NONCE_LN = "Nonce";
  -    public static final String CREATED_LN = "Created";
  -    public static final String EXPIRES_LN = "Expires";
  -
  -    public static final String SAML_NS = 
"urn:oasis:names:tc:SAML:1.0:assertion";
  -    public static final String SAMLP_NS = 
"urn:oasis:names:tc:SAML:1.0:protocol";
  -    public static final String ASSERTION_LN = "Assertion";
  -    public static final String WSS_SAML_NS = 
"http://docs.oasis-open.org/wss/2004/XX/oasis-2004XX-wss-saml-token-profile-1.0#";;
  -    public static final String WSS_SAML_ASSERTION = "SAMLAssertion-1.1";
  -
  -    //
  -    // SOAP-ENV Namespaces
  -    //
  -    public static final String URI_SOAP11_ENV =
  -            "http://schemas.xmlsoap.org/soap/envelope/";;
  -    public static final String URI_SOAP12_ENV =
  -            "http://www.w3.org/2003/05/soap-envelope";;
  -
  -    public static final String[] URIS_SOAP_ENV = {
  -        URI_SOAP11_ENV,
  -        URI_SOAP12_ENV,
  -    };
  -
  -    // Misc SOAP Namespaces / URIs
  -    public static final String URI_SOAP11_NEXT_ACTOR =
  -            "http://schemas.xmlsoap.org/soap/actor/next";;
  -    public static final String URI_SOAP12_NEXT_ROLE =
  -            "http://www.w3.org/2003/05/soap-envelope/role/next";;
  -    public static final String URI_SOAP12_NONE_ROLE =
  -            "http://www.w3.org/2003/05/soap-envelope/role/none";;
  -    public static final String URI_SOAP12_ULTIMATE_ROLE =
  -            "http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver";;
  -
  -    public static final String ELEM_ENVELOPE = "Envelope";
  -    public static final String ELEM_HEADER = "Header";
  -    public static final String ELEM_BODY = "Body";
  -
  -    public static final String ATTR_MUST_UNDERSTAND = "mustUnderstand";
  -    public static final String ATTR_ACTOR = "actor";
  -    public static final String ATTR_ROLE = "role";
  -
  -    /**
  -     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSSAddUsernameToken#build(Document, String, 
String) UserNameToken}
  -     * method to use a password digest to send the password information
  -     * <p/>
  -     * This is a required method as defined by WS Specification, Username 
token profile.
  -     */
  -    public static final String PW_DIGEST = "PasswordDigest";
  -    public static final String PASSWORD_DIGEST = USERNAMETOKEN_NS + 
"#PasswordDigest";
  -
  -    /**
  -     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSSAddUsernameToken#build(Document, String, 
String) UserNameToken}
  -     * method to send the password in clear
  -     * <p/>
  -     * This is a required method as defined by WS Specification, Username 
token profile.
  -     */
  -    public static final String PW_TEXT = "PasswordText";
  -
  -    public static final String PASSWORD_TEXT = USERNAMETOKEN_NS + 
"#PasswordText";
  -
  -    /**
  -     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}
  -     * method to encrypt the symmetric data encryption key with the RSA 
algoritm.
  -     * <p/>
  -     * This is a required method as defined by XML encryption.
  -     */
  -    public static final String KEYTRANSPORT_RSA15 = 
EncryptionConstants.ALGO_ID_KEYTRANSPORT_RSA15;
  -
  -    /**
  -     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}
  -     * method to encrypt the symmetric data encryption key with the RSA 
algoritm.
  -     * <p/>
  -     * This is a required method as defined by XML encryption.
  -     * <p/>
  -     * NOTE: This algorithm is not yet supported by WSS4J
  -     */
  -    public static final String KEYTRANSPORT_RSAOEP = 
EncryptionConstants.ALGO_ID_KEYTRANSPORT_RSAOAEP;
  -
  -    /**
  -     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}
  -     * method to use triple DES as the symmetric algorithm to encrypt data.
  -     * <p/>
  -     * This is a required method as defined by XML encryption.
  -     */
  -    public static final String TRIPLE_DES = 
EncryptionConstants.ALGO_ID_BLOCKCIPHER_TRIPLEDES;
  -
  -    /**
  -     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}
  -     * method to use AES with 128 bit key as the symmetric algorithm to 
encrypt data.
  -     * <p/>
  -     * This is a required method as defined by XML encryption.
  -     */
  -    public static final String AES_128 = 
EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES128;
  -
  -    /**
  -     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}
  -     * method to use AES with 256 bit key as the symmetric algorithm to 
encrypt data.
  -     * <p/>
  -     * This is a required method as defined by XML encryption.
  -     */
  -    public static final String AES_256 = 
EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES256;
  -
  -    /**
  -     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}
  -     * method to use AES with 192 bit key as the symmetric algorithm to 
encrypt data.
  -     * <p/>
  -     * This is a optional method as defined by XML encryption.
  -     */
  -    public static final String AES_192 = 
EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES192;
  -
  -    /**
  -     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSSignEnvelope#build(Document, Crypto) signature}
  -     * method to use DSA with SHA1 (DSS) to sign data.
  -     * <p/>
  -     * This is a required method as defined by XML signature.
  -     */
  -    public static final String DSA = XMLSignature.ALGO_ID_SIGNATURE_DSA;
  -
  -    /**
  -     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSSignEnvelope#build(Document, Crypto) signature}
  -     * method to use RSA with SHA to sign data.
  -     * <p/>
  -     * This is a recommended method as defined by XML signature.
  -     */
  -    public static final String RSA = XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA1;
  -
  -    public static final String C14N_OMIT_COMMENTS = 
Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
  -    public static final String C14N_WITH_COMMENTS = 
Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS;
  -    public static final String C14N_EXCL_OMIT_COMMENTS = 
Canonicalizer.ALGO_ID_C14N_EXCL_OMIT_COMMENTS;
  -    public static final String C14N_EXCL_WITH_COMMENTS = 
Canonicalizer.ALGO_ID_C14N_EXCL_WITH_COMMENTS;
  -
  -    /**
  -     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSSignEnvelope#build(Document, Crypto) signing}
  -     * method to send the signing certificate as a
  -     * <code>BinarySecurityToken</code>.
  -     * <p/>
  -     * The signing method takes the signing certificate, converts it to a
  -     * <code>BinarySecurityToken</code>, puts it in the security header,
  -     * and inserts a <code>Reference</code> to the binary security token
  -     * into the <code>wsse:SecurityReferenceToken</code>. Thus the whole
  -     * signing certificate is transfered to the receiver.
  -     * The X509 profile recommends to use [EMAIL PROTECTED] #ISSUER_SERIAL} 
instead
  -     * of sending the whole certificate.
  -     * <p/>
  -     * Please refer to WS Security specification X509 profile, chapter 3.3.2
  -     * and to WS Security specification, chapter 7.2
  -     * <p/>
  -     * Note: only local refernces to BinarySecurityToken are supported
  -     */
  -    public static final int BST_DIRECT_REFERENCE = 1;
  -
  -    /**
  -     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSSignEnvelope#build(Document, Crypto) signing}
  -     * or the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}
  -     * method to send the issuer name and the serial number of a
  -     * certificate to the receiver.
  -     * <p/>
  -     * In contrast to [EMAIL PROTECTED] #BST_DIRECT_REFERENCE} only the 
issuer name
  -     * and the serial number of the signiung certificate are sent to the
  -     * receiver. This reduces the amount of data being sent. The ecnryption
  -     * method uses the private key associated with this certificate to 
encrypt
  -     * the symmetric key used to encrypt data.
  -     * <p/>
  -     * Please refer to WS Security specification X509 profile, chapter 3.3.3
  -     */
  -    public static final int ISSUER_SERIAL = 2;
  -
  -    /**
  -     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}
  -     * method to send the certificate used to encrypt the symmetric key.
  -     * <p/>
  -     * The encryption method uses the private key associated with this 
certificate
  -     * to encrypr the symmetric key used to encrypt data. The certificate is
  -     * converted into a <code>KeyIdentfier</code> token and sent to the 
receiver.
  -     * Thus the complete certificate data is transfered to receiver.
  -     * The X509 profile recommends to use [EMAIL PROTECTED] #ISSUER_SERIAL} 
instead
  -     * of sending the whole certificate.
  -     * <p/>
  -     * <p/>
  -     * Please refer to WS Security specification X509 profile, chapter 7.3
  -     */
  -    public static final int X509_KEY_IDENTIFIER = 3;
  -    /**
  -     * Sets the
  -     * [EMAIL PROTECTED] 
org.apache.ws.security.message.WSSignEnvelope#build(Document, Crypto)
  -     * signing}
  -     * method to send a <code>SubjectKeyIdentifier</code> to identify
  -     * the signing certificate.
  -     * <p/>
  -     * Refer to WS Security specification X509 profile, chapter 3.3.1
  -     * This identification token is not yet fully tested by WSS4J. The
  -     * WsDoAllSender does not include the X.509 certificate as
  -     * <code>BinarySecurityToken</code> in the request message.
  -     */
  -    public static final int SKI_KEY_IDENTIFIER = 4;
  -
  -    /**
  -     * Embeds a keyinfo/key name into the EncryptedData element.
  -     * <p/>
  -     * Refer to WS Security specification X509 profile
  -     */
  -    public static final int EMBEDDED_KEYNAME = 5;
  -    /**
  -     * Embeds a keyinfo/wsse:SecurityTokenReference into EncryptedData 
element.
  -     */
  -    public static final int EMBED_SECURITY_TOKEN_REF = 6;
  -    
  -    /**
  -     * <code>UT_SIGNING</code> is used interally only to set a specific 
Signature
  -     * behaviour.
  -     * 
  -     * The signing token is constructed from values in the UsernameToken 
according
  -     * to WS-Trust specification.
  -     */
  -    public static final int UT_SIGNING = 7;
  -
  -    public static final int NO_SECURITY = 0;
  -    public static final int UT = 0x1; // perform UsernameToken
  -    public static final int SIGN = 0x2; // Perform Signature
  -    public static final int ENCR = 0x4; // Perform Encryption
  -
  -    /*
  -     * Attention: the signed/Unsigned types identify if WSS4J uses
  -     * the SAML token for signature, signature key or not. It does
  -     * not mean if the token contains an enveloped signature.
  -     */
  -    public static final int ST_UNSIGNED = 0x8; // perform SAMLToken unsigned
  -    public static final int ST_SIGNED = 0x10; // perform SAMLToken signed
  -
  -    public static final int TS = 0x20; // insert Timestamp
  -    public static final int UT_SIGN = 0x40; // perform sinagture with UT 
secrect key
  -
  -    public static final int NO_SERIALIZE = 0x100;
  -    public static final int SERIALIZE = 0x200;
  -
  -    /**
  -     * Length of UsernameToken derived key used by .NET WSE to sign a 
message.
  -     */
  -    public static final int WSE_DERIVED_KEY_LEN = 16;
  -    public static final String LABEL_FOR_DERIVED_KEY = "WS-Security";
  -    
  -    static {
  -        setComplianceMode();
  -    }
  -
  -    /**
  -     * init various constants to the chosen compliance mode
  -     */
  -    private static void setComplianceMode() {
  -        switch (COMPLIANCE_MODE) {
  -            case OASIS_1_0:
  -                WSSE_NS = WSSE_NS_OASIS_1_0;
  -                WSU_NS = WSU_NS_OASIS_1_0;
  -                break;
  -            case OASIS_2003_06:
  -                WSSE_NS = WSSE_NS_OASIS_2003_06;
  -                WSU_NS = WSU_NS_OASIS_2003_06;
  -                break;
  -            case OASIS_2002_12:
  -                WSSE_NS = WSSE_NS_OASIS_2002_12;
  -                WSU_NS = WSU_NS_OASIS_2002_12;
  -                break;
  -            case OASIS_2002_07:
  -                WSSE_NS = WSSE_NS_OASIS_2002_07;
  -                WSU_NS = WSU_NS_OASIS_2002_07;
  -                break;
  -            default:
  -                WSSE_NS = WSSE_NS_OASIS_1_0;
  -                WSU_NS = WSU_NS_OASIS_1_0;
  -        }
  -    }
  -}
  -
  +/*

  + * Copyright  2003-2004 The Apache Software Foundation.

  + *

  + *  Licensed under the Apache License, Version 2.0 (the "License");

  + *  you may not use this file except in compliance with the License.

  + *  You may obtain a copy of the License at

  + *

  + *      http://www.apache.org/licenses/LICENSE-2.0

  + *

  + *  Unless required by applicable law or agreed to in writing, software

  + *  distributed under the License is distributed on an "AS IS" BASIS,

  + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  + *  See the License for the specific language governing permissions and

  + *  limitations under the License.

  + *

  + */

  +

  +package org.apache.ws.security;

  +

  +import org.apache.xml.security.c14n.Canonicalizer;

  +import org.apache.xml.security.signature.XMLSignature;

  +import org.apache.xml.security.utils.EncryptionConstants;

  +

  +/**

  + * Constants in WS-Security spec.

  + */

  +public class WSConstants {

  +    // the following compliance mode values must have increasing values as 
new

  +    // modes are added; a later spec should have a value > value of an an 
earlier spec. 

  +    public static final int OASIS_2002_07 = 1;

  +    public static final int OASIS_2002_12 = 2;

  +    public static final int OASIS_2003_06 = 3;

  +    public static final int OASIS_1_0 = 4;

  +

  +    /**

  +     * Set the specification compliance mode. This affects namespaces as well

  +     * as how certain items are constructed in security headers.

  +     * <p/>

  +     * Currently this can only be set at compile time. The valid values are:

  +     * <ul>

  +     * <li> [EMAIL PROTECTED] #OASIS_2002_07} </li>

  +     * <li> [EMAIL PROTECTED] #OASIS_2002_12} </li>

  +     * <li> [EMAIL PROTECTED] #OASIS_2003_06} </li>

  +     * <li> [EMAIL PROTECTED] #OASIS_1_0} OASIS WS-Security v1.0 as released 
on March 2004. This is the default and recommended setting</li>

  +     * </ul>

  +     * <p/>

  +     * Using [EMAIL PROTECTED] #OASIS_2002} enhances chances of 
interoperability with other

  +     * WSS implementations that do not fully adhere to the OASIS v1.0 March 
2004

  +     * specs yet.

  +     *

  +     * @param specs instructs WSS4J on which standard to follow

  +     */

  +    public static final int COMPLIANCE_MODE = OASIS_1_0;

  +

  +    public static final String WSSE_NS_OASIS_2002_07 = 
"http://schemas.xmlsoap.org/ws/2002/07/secext";;

  +    public static final String WSSE_NS_OASIS_2002_12 = 
"http://schemas.xmlsoap.org/ws/2002/12/secext";;

  +    public static final String WSSE_NS_OASIS_2003_06 = 
"http://schemas.xmlsoap.org/ws/2003/06/secext";;

  +    public static final String WSSE_NS_OASIS_1_0 = 
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";;

  +    public static String WSSE_NS = WSSE_NS_OASIS_1_0;

  +    public static final String[] WSSE_NS_ARRAY =

  +            new String[]{WSSE_NS_OASIS_1_0,

  +                         WSSE_NS_OASIS_2003_06,

  +                         WSSE_NS_OASIS_2002_12,

  +                         WSSE_NS_OASIS_2002_07};

  +    public static final String USERNAMETOKEN_NS = 
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0";;

  +    public static final String SOAPMESSAGE_NS = 
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0";;

  +    public static final String X509TOKEN_NS = 
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0";;

  +    public static final String WSSE_PREFIX = "wsse";

  +    public static final String WSSE_LN = "Security";

  +    public static final String WSU_NS_OASIS_2002_07 = 
"http://schemas.xmlsoap.org/ws/2002/07/utility";;

  +    public static final String WSU_NS_OASIS_2002_12 = 
"http://schemas.xmlsoap.org/ws/2002/12/utility";;

  +    public static final String WSU_NS_OASIS_2003_06 = 
"http://schemas.xmlsoap.org/ws/2003/06/utility";;

  +    public static final String WSU_NS_OASIS_1_0 = 
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";;

  +    public static String WSU_NS = WSU_NS_OASIS_1_0;

  +    public static final String[] WSU_NS_ARRAY =

  +            new String[]{WSU_NS_OASIS_1_0,

  +                         WSU_NS_OASIS_2003_06,

  +                         WSU_NS_OASIS_2002_12,

  +                         WSU_NS_OASIS_2002_07};

  +    public static final String WSU_PREFIX = "wsu";

  +    public static final String SIG_NS = "http://www.w3.org/2000/09/xmldsig#";;

  +    public static final String SIG_PREFIX = "ds";

  +    public static final String SIG_LN = "Signature";

  +    public static final String ENC_NS = "http://www.w3.org/2001/04/xmlenc#";;

  +    public static final String ENC_PREFIX = "xenc";

  +    public static final String ENC_KEY_LN = "EncryptedKey";

  +    public static final String REF_LIST_LN = "ReferenceList";

  +//    public static final String SOAP_SEC_NS = 
"http://schemas.xmlsoap.org/soap/security/2000-12";;

  +    public static final String XMLNS_NS = "http://www.w3.org/2000/xmlns/";;

  +    public static final String XML_NS = 
"http://www.w3.org/XML/1998/namespace";;

  +    public static final String USERNAME_TOKEN_LN = "UsernameToken";

  +    public static final String BINARY_TOKEN_LN = "BinarySecurityToken";

  +    public static final String TIMESTAMP_TOKEN_LN = "Timestamp";

  +    public static final String USERNAME_LN = "Username";

  +    public static final String PASSWORD_LN = "Password";

  +    public static final String PASSWORD_TYPE_ATTR = "Type";

  +    public static final String NONCE_LN = "Nonce";

  +    public static final String CREATED_LN = "Created";

  +    public static final String EXPIRES_LN = "Expires";

  +

  +    public static final String SAML_NS = 
"urn:oasis:names:tc:SAML:1.0:assertion";

  +    public static final String SAMLP_NS = 
"urn:oasis:names:tc:SAML:1.0:protocol";

  +    public static final String ASSERTION_LN = "Assertion";

  +    public static final String WSS_SAML_NS = 
"http://docs.oasis-open.org/wss/2004/XX/oasis-2004XX-wss-saml-token-profile-1.0#";;

  +    public static final String WSS_SAML_ASSERTION = "SAMLAssertion-1.1";

  +

  +    //

  +    // SOAP-ENV Namespaces

  +    //

  +    public static final String URI_SOAP11_ENV =

  +            "http://schemas.xmlsoap.org/soap/envelope/";;

  +    public static final String URI_SOAP12_ENV =

  +            "http://www.w3.org/2003/05/soap-envelope";;

  +

  +    public static final String[] URIS_SOAP_ENV = {

  +        URI_SOAP11_ENV,

  +        URI_SOAP12_ENV,

  +    };

  +

  +    // Misc SOAP Namespaces / URIs

  +    public static final String URI_SOAP11_NEXT_ACTOR =

  +            "http://schemas.xmlsoap.org/soap/actor/next";;

  +    public static final String URI_SOAP12_NEXT_ROLE =

  +            "http://www.w3.org/2003/05/soap-envelope/role/next";;

  +    public static final String URI_SOAP12_NONE_ROLE =

  +            "http://www.w3.org/2003/05/soap-envelope/role/none";;

  +    public static final String URI_SOAP12_ULTIMATE_ROLE =

  +            "http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver";;

  +

  +    public static final String ELEM_ENVELOPE = "Envelope";

  +    public static final String ELEM_HEADER = "Header";

  +    public static final String ELEM_BODY = "Body";

  +

  +    public static final String ATTR_MUST_UNDERSTAND = "mustUnderstand";

  +    public static final String ATTR_ACTOR = "actor";

  +    public static final String ATTR_ROLE = "role";

  +

  +    public static final String NULL_NS = "Null";

  +    /**

  +     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSSAddUsernameToken#build(Document, String, 
String) UserNameToken}

  +     * method to use a password digest to send the password information

  +     * <p/>

  +     * This is a required method as defined by WS Specification, Username 
token profile.

  +     */

  +    public static final String PW_DIGEST = "PasswordDigest";

  +    public static final String PASSWORD_DIGEST = USERNAMETOKEN_NS + 
"#PasswordDigest";

  +

  +    /**

  +     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSSAddUsernameToken#build(Document, String, 
String) UserNameToken}

  +     * method to send the password in clear

  +     * <p/>

  +     * This is a required method as defined by WS Specification, Username 
token profile.

  +     */

  +    public static final String PW_TEXT = "PasswordText";

  +

  +    public static final String PASSWORD_TEXT = USERNAMETOKEN_NS + 
"#PasswordText";

  +

  +    /**

  +     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}

  +     * method to encrypt the symmetric data encryption key with the RSA 
algoritm.

  +     * <p/>

  +     * This is a required method as defined by XML encryption.

  +     */

  +    public static final String KEYTRANSPORT_RSA15 = 
EncryptionConstants.ALGO_ID_KEYTRANSPORT_RSA15;

  +

  +    /**

  +     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}

  +     * method to encrypt the symmetric data encryption key with the RSA 
algoritm.

  +     * <p/>

  +     * This is a required method as defined by XML encryption.

  +     * <p/>

  +     * NOTE: This algorithm is not yet supported by WSS4J

  +     */

  +    public static final String KEYTRANSPORT_RSAOEP = 
EncryptionConstants.ALGO_ID_KEYTRANSPORT_RSAOAEP;

  +

  +    /**

  +     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}

  +     * method to use triple DES as the symmetric algorithm to encrypt data.

  +     * <p/>

  +     * This is a required method as defined by XML encryption.

  +     */

  +    public static final String TRIPLE_DES = 
EncryptionConstants.ALGO_ID_BLOCKCIPHER_TRIPLEDES;

  +

  +    /**

  +     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}

  +     * method to use AES with 128 bit key as the symmetric algorithm to 
encrypt data.

  +     * <p/>

  +     * This is a required method as defined by XML encryption.

  +     */

  +    public static final String AES_128 = 
EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES128;

  +

  +    /**

  +     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}

  +     * method to use AES with 256 bit key as the symmetric algorithm to 
encrypt data.

  +     * <p/>

  +     * This is a required method as defined by XML encryption.

  +     */

  +    public static final String AES_256 = 
EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES256;

  +

  +    /**

  +     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}

  +     * method to use AES with 192 bit key as the symmetric algorithm to 
encrypt data.

  +     * <p/>

  +     * This is a optional method as defined by XML encryption.

  +     */

  +    public static final String AES_192 = 
EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES192;

  +

  +    /**

  +     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSSignEnvelope#build(Document, Crypto) signature}

  +     * method to use DSA with SHA1 (DSS) to sign data.

  +     * <p/>

  +     * This is a required method as defined by XML signature.

  +     */

  +    public static final String DSA = XMLSignature.ALGO_ID_SIGNATURE_DSA;

  +

  +    /**

  +     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSSignEnvelope#build(Document, Crypto) signature}

  +     * method to use RSA with SHA to sign data.

  +     * <p/>

  +     * This is a recommended method as defined by XML signature.

  +     */

  +    public static final String RSA = XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA1;

  +

  +    public static final String C14N_OMIT_COMMENTS = 
Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;

  +    public static final String C14N_WITH_COMMENTS = 
Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS;

  +    public static final String C14N_EXCL_OMIT_COMMENTS = 
Canonicalizer.ALGO_ID_C14N_EXCL_OMIT_COMMENTS;

  +    public static final String C14N_EXCL_WITH_COMMENTS = 
Canonicalizer.ALGO_ID_C14N_EXCL_WITH_COMMENTS;

  +

  +    /**

  +     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSSignEnvelope#build(Document, Crypto) signing}

  +     * method to send the signing certificate as a

  +     * <code>BinarySecurityToken</code>.

  +     * <p/>

  +     * The signing method takes the signing certificate, converts it to a

  +     * <code>BinarySecurityToken</code>, puts it in the security header,

  +     * and inserts a <code>Reference</code> to the binary security token

  +     * into the <code>wsse:SecurityReferenceToken</code>. Thus the whole

  +     * signing certificate is transfered to the receiver.

  +     * The X509 profile recommends to use [EMAIL PROTECTED] #ISSUER_SERIAL} 
instead

  +     * of sending the whole certificate.

  +     * <p/>

  +     * Please refer to WS Security specification X509 profile, chapter 3.3.2

  +     * and to WS Security specification, chapter 7.2

  +     * <p/>

  +     * Note: only local refernces to BinarySecurityToken are supported

  +     */

  +    public static final int BST_DIRECT_REFERENCE = 1;

  +

  +    /**

  +     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSSignEnvelope#build(Document, Crypto) signing}

  +     * or the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}

  +     * method to send the issuer name and the serial number of a

  +     * certificate to the receiver.

  +     * <p/>

  +     * In contrast to [EMAIL PROTECTED] #BST_DIRECT_REFERENCE} only the 
issuer name

  +     * and the serial number of the signiung certificate are sent to the

  +     * receiver. This reduces the amount of data being sent. The ecnryption

  +     * method uses the private key associated with this certificate to 
encrypt

  +     * the symmetric key used to encrypt data.

  +     * <p/>

  +     * Please refer to WS Security specification X509 profile, chapter 3.3.3

  +     */

  +    public static final int ISSUER_SERIAL = 2;

  +

  +    /**

  +     * Sets the [EMAIL PROTECTED] 
org.apache.ws.security.message.WSEncryptBody#build(Document, Crypto) encryption}

  +     * method to send the certificate used to encrypt the symmetric key.

  +     * <p/>

  +     * The encryption method uses the private key associated with this 
certificate

  +     * to encrypr the symmetric key used to encrypt data. The certificate is

  +     * converted into a <code>KeyIdentfier</code> token and sent to the 
receiver.

  +     * Thus the complete certificate data is transfered to receiver.

  +     * The X509 profile recommends to use [EMAIL PROTECTED] #ISSUER_SERIAL} 
instead

  +     * of sending the whole certificate.

  +     * <p/>

  +     * <p/>

  +     * Please refer to WS Security specification X509 profile, chapter 7.3

  +     */

  +    public static final int X509_KEY_IDENTIFIER = 3;

  +    /**

  +     * Sets the

  +     * [EMAIL PROTECTED] 
org.apache.ws.security.message.WSSignEnvelope#build(Document, Crypto)

  +     * signing}

  +     * method to send a <code>SubjectKeyIdentifier</code> to identify

  +     * the signing certificate.

  +     * <p/>

  +     * Refer to WS Security specification X509 profile, chapter 3.3.1

  +     * This identification token is not yet fully tested by WSS4J. The

  +     * WsDoAllSender does not include the X.509 certificate as

  +     * <code>BinarySecurityToken</code> in the request message.

  +     */

  +    public static final int SKI_KEY_IDENTIFIER = 4;

  +

  +    /**

  +     * Embeds a keyinfo/key name into the EncryptedData element.

  +     * <p/>

  +     * Refer to WS Security specification X509 profile

  +     */

  +    public static final int EMBEDDED_KEYNAME = 5;

  +    /**

  +     * Embeds a keyinfo/wsse:SecurityTokenReference into EncryptedData 
element.

  +     */

  +    public static final int EMBED_SECURITY_TOKEN_REF = 6;

  +    

  +    /**

  +     * <code>UT_SIGNING</code> is used interally only to set a specific 
Signature

  +     * behaviour.

  +     * 

  +     * The signing token is constructed from values in the UsernameToken 
according

  +     * to WS-Trust specification.

  +     */

  +    public static final int UT_SIGNING = 7;

  +

  +    public static final int NO_SECURITY = 0;

  +    public static final int UT = 0x1; // perform UsernameToken

  +    public static final int SIGN = 0x2; // Perform Signature

  +    public static final int ENCR = 0x4; // Perform Encryption

  +

  +    /*

  +     * Attention: the signed/Unsigned types identify if WSS4J uses

  +     * the SAML token for signature, signature key or not. It does

  +     * not mean if the token contains an enveloped signature.

  +     */

  +    public static final int ST_UNSIGNED = 0x8; // perform SAMLToken unsigned

  +    public static final int ST_SIGNED = 0x10; // perform SAMLToken signed

  +

  +    public static final int TS = 0x20; // insert Timestamp

  +    public static final int UT_SIGN = 0x40; // perform sinagture with UT 
secrect key

  +

  +    public static final int NO_SERIALIZE = 0x100;

  +    public static final int SERIALIZE = 0x200;

  +

  +    /**

  +     * Length of UsernameToken derived key used by .NET WSE to sign a 
message.

  +     */

  +    public static final int WSE_DERIVED_KEY_LEN = 16;

  +    public static final String LABEL_FOR_DERIVED_KEY = "WS-Security";

  +    

  +    static {

  +        setComplianceMode();

  +    }

  +

  +    /**

  +     * init various constants to the chosen compliance mode

  +     */

  +    private static void setComplianceMode() {

  +        switch (COMPLIANCE_MODE) {

  +            case OASIS_1_0:

  +                WSSE_NS = WSSE_NS_OASIS_1_0;

  +                WSU_NS = WSU_NS_OASIS_1_0;

  +                break;

  +            case OASIS_2003_06:

  +                WSSE_NS = WSSE_NS_OASIS_2003_06;

  +                WSU_NS = WSU_NS_OASIS_2003_06;

  +                break;

  +            case OASIS_2002_12:

  +                WSSE_NS = WSSE_NS_OASIS_2002_12;

  +                WSU_NS = WSU_NS_OASIS_2002_12;

  +                break;

  +            case OASIS_2002_07:

  +                WSSE_NS = WSSE_NS_OASIS_2002_07;

  +                WSU_NS = WSU_NS_OASIS_2002_07;

  +                break;

  +            default:

  +                WSSE_NS = WSSE_NS_OASIS_1_0;

  +                WSU_NS = WSU_NS_OASIS_1_0;

  +        }

  +    }

  +}

  +

  
  
  

Reply via email to