<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>RahasConstants.java</title><link rel="stylesheet" href="../.resources/prettify.css" type="text/css"/><script type="text/javascript" src="../.resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="right"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Coverage Report</a> &gt; <a href="index.html" class="el_package">org.apache.rahas</a> &gt; <span class="el_source">RahasConstants.java</span></div><h1>RahasConstants.java</h1><pre class="source lang-java linenums">/*
 * Copyright 2004,2005 The Apache Software Foundation.
 *
 * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
 * 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 &quot;AS IS&quot; 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.rahas;


<span class="nc" id="L20">public class RahasConstants {</span>

    public final static int VERSION_05_02 = 1;
    public final static int VERSION_05_12 = 2;

    /**
     * WS-Trust 2005 Feb namespace
     */
    public final static String WST_NS_05_02 = &quot;http://schemas.xmlsoap.org/ws/2005/02/trust&quot;;

    /**
     * WS-SX Namespace
     */
    public final static String WST_NS_05_12 = &quot;http://docs.oasis-open.org/ws-sx/ws-trust/200512&quot;;

    public final static String WST_PREFIX = &quot;wst&quot;;

    public final static String WSP_NS = &quot;http://schemas.xmlsoap.org/ws/2004/09/policy&quot;;
    public final static String WSP_PREFIX = &quot;wsp&quot;;

<span class="nc" id="L40">    public static class LocalNames {</span>
        public static final String REQUEST_SECURITY_TOKEN = &quot;RequestSecurityToken&quot;;
        public static final String REQUEST_SECURITY_TOKEN_RESPONSE = &quot;RequestSecurityTokenResponse&quot;;
        public static final String REQUEST_TYPE = &quot;RequestType&quot;;
        public static final String TOKEN_TYPE = &quot;TokenType&quot;;
        public static final String REQUESTED_PROOF_TOKEN = &quot;RequestedProofToken&quot;;
        public static final String
                REQUEST_SECURITY_TOKEN_RESPONSE_COLLECTION = &quot;RequestSecurityTokenResponseCollection&quot;;
        public final static String BINARY_SECRET = &quot;BinarySecret&quot;;
        public final static String VALIDATE_TARGET = &quot;ValidateTarget&quot;;
        public final static String RENEW_TARGET = &quot;RenewTarget&quot;;
        
       /* &lt;wst:RequestSecurityTokenResponse&gt;
        * &lt;wst:TokenType&gt;http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Status&lt;/wst:TokenType&gt;
        * &lt;wst:Status&gt;
        * &lt;wst:Code&gt;http://schemas.xmlsoap.org/ws/2005/02/trust/status/valid&lt;/wst:Code&gt;
        * &lt;/wst:Status&gt; ... &lt;/wst:RequestSecurityTokenResponse&gt;&quot;
        */
        public static final String STATUS = &quot;Status&quot;;
        public static final String CODE = &quot;Code&quot;;
    }

<span class="nc" id="L62">    public static class IssuanceBindingLocalNames {</span>
        public static final String REQUESTED_SECURITY_TOKEN = &quot;RequestedSecurityToken&quot;;
        public static final String COMPUTED_KEY_ALGO = &quot;ComputedKeyAlgorithm&quot;;
        public static final String COMPUTED_KEY = &quot;ComputedKey&quot;;
        public static final String REQUESTED_ATTACHED_REFERENCE = &quot;RequestedAttachedReference&quot;;
        public static final String REQUESTED_UNATTACHED_REFERENCE = &quot;RequestedUnattachedReference&quot;;
        public static final String KEY_SIZE = &quot;KeySize&quot;;
        public static final String KEY_TYPE = &quot;KeyType&quot;;
        public static final String ENTROPY = &quot;Entropy&quot;;
        public static final String APPLIES_TO = &quot;AppliesTo&quot;;
        public static final String LIFETIME = &quot;Lifetime&quot;;
        public static final String CLAIMS = &quot;Claims&quot;;
       
    }

<span class="nc" id="L77">    public static class CancelBindingLocalNames {</span>
        public static final String REQUESTED_TOKEN_CANCELED = &quot;RequestedTokenCancelled&quot;;
        public static final String CANCEL_TARGET = &quot;CancelTarget&quot;;
        public static final String URI = &quot;URI&quot;;
    }

    //Key types
    public static final String KEY_TYPE_SYMM_KEY = &quot;/SymmetricKey&quot;;
    public static final String KEY_TYPE_PUBLIC_KEY = &quot;/PublicKey&quot;;
    public static final String KEY_TYPE_BEARER = &quot;/Bearer&quot;;

    //Attr values
    public static final String BIN_SEC_TYPE_NONCE = &quot;/Nonce&quot;;

    //ComputedKey algos
    public static final String COMPUTED_KEY_PSHA1 = &quot;/CK/PSHA1&quot;;

    //  RequestTypes
    public static final String REQ_TYPE_ISSUE = &quot;/Issue&quot;;
    public static final String REQ_TYPE_VALIDATE = &quot;/Validate&quot;;
    public static final String REQ_TYPE_RENEW = &quot;/Renew&quot;;
    public static final String REQ_TYPE_CANCEL = &quot;/Cancel&quot;;

    //RST actions
    public static final String RST_ACTION_ISSUE = &quot;/RST&quot; + REQ_TYPE_ISSUE;
    public static final String RST_ACTION_VALIDATE = &quot;/RST&quot; + REQ_TYPE_VALIDATE;
    public static final String RST_ACTION_RENEW = &quot;/RST&quot; + REQ_TYPE_RENEW;
    public static final String RST_ACTION_CANCEL = &quot;/RST&quot; + REQ_TYPE_CANCEL;
    public static final String RST_ACTION_SCT = &quot;/RST/SCT&quot;;
    public static final String RST_ACTION_CANCEL_SCT = &quot;/RST/SCT&quot; + REQ_TYPE_CANCEL;

    //RSTR actions
    public static final String RSTR_ACTION_ISSUE = &quot;/RSTR&quot; + REQ_TYPE_ISSUE;
    public static final String RSTR_ACTION_VALIDATE = &quot;/RSTR&quot; + REQ_TYPE_VALIDATE;
    public static final String RSTR_ACTION_RENEW = &quot;/RSTR&quot; + REQ_TYPE_RENEW;
    public static final String RSTR_ACTION_CANCEL = &quot;/RSTR&quot; + REQ_TYPE_CANCEL;
    public static final String RSTR_ACTION_SCT = &quot;/RSTR/SCT&quot;;
    public static final String RSTR_ACTION_CANCEL_SCT = &quot;/RSTR/SCT&quot; + REQ_TYPE_CANCEL;
    
    //Status codes
    public static final String STATUS_CODE_VALID = &quot;/status/valid&quot;;
    public static final String STATUS_CODE_INVALID = &quot;/status/invalid&quot;;
    
    public static final String TOK_TYPE_STATUS = &quot;/RSTR/Status&quot;;

    //Token types
    public static final String TOK_TYPE_SAML_10 = &quot;http://docs.oasis-open.org/wss/&quot; +
                                                  &quot;oasis-wss-saml-token-profile-1.1#SAMLV1.1&quot;;

    public static final String TOK_TYPE_SAML_20 = &quot;http://docs.oasis-open.org/wss/&quot; +
                                                  &quot;oasis-wss-saml-token-profile-1.1#SAMLV2.0&quot;;
    //Attrs
    public static final String ATTR_TYPE           = &quot;Type&quot;;
    public static final String ATTR_CLAIMS_DIALECT = &quot;Dialect&quot;;

    //Constants required for SAML2 assertion generation
    public final static String X509_CERT =&quot;X509Certificate&quot;;
    public final static String USERNAME = &quot;username&quot;;

    //Constants required for SubjectConfirmation methods
    public static final String SAML11_SUBJECT_CONFIRMATION_HOK = &quot;urn:oasis:names:tc:SAML:1.0:cm:&quot; +
                                                          &quot;holder-of-key&quot;;
    public static final String SAML11_SUBJECT_CONFIRMATION_BEARER = &quot;urn:oasis:names:tc:SAML:1.0:cm:bearer&quot;;

    public static final String SAML20_SUBJECT_CONFIRMATION_HOK = &quot;urn:oasis:names:tc:SAML:2.0:cm:holder-of-key&quot;;

    public static final String SAML20_SUBJECT_CONFIRMATION_BEARER = &quot;urn:oasis:names:tc:SAML:2.0:cm:bearer&quot;;

    public static final String SAML_NS = &quot;urn:oasis:names:tc:SAML:1.0:assertion&quot;;

    public static final String  AUTHENTICATION_METHOD_PASSWORD = &quot;urn:oasis:names:tc:SAML:1.0:am:password&quot;;
}
</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.6.1.201212231917</span></div></body></html>