<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
    <title>Apache Rampart - Source Repository</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
      </head>
  <body class="composite">
    <div id="banner">
                  <a href="ws.apache.org/rampart/" id="bannerLeft">Apache Rampart</a>
     <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
    <div class="xleft">
        Last Published: 13 Jul 2007
    </div>
    <div class="xright"><a href="http://www.apache.org/">Apache</a>
          <a href="../">WebServices</a>
       </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
                   <h5>Apache Rampart</h5>
        <ul>
              
    <li class="none">
              <a href="index.html">About</a>
        </li>
    
            <li class="expanded">
              <a href="">Downloads</a>
                <ul>
                  
    <li class="none">
              <a href="download.cgi">Releases</a>
        </li>
                  
    <li class="none">
              <a href="source-repository.html">Source Code</a>
        </li>
              </ul>
        </li>
      <li class="expanded">
              <a href="">Documentation</a>
                <ul>
                  
    <li class="none">
              <a href="quick-start.html">Quick Start Guide</a>
    </li>
    <li class="none">
              <strong>Rampart Configuration</strong>
        </li>             
     <li class="none">
              <a href="developer-guide.html">Developer Guide</a>
        </li>
              </ul>
        </li>
    
             
    <li class="none">
              <a href="">Project Information</a>
                <ul>
                  
    <li class="none">
              <a href="mail-lists.html">Mailing Lists</a>
        </li>
                  
    <li class="none">
              <a href="http://issues.apache.org/jira/browse/Rampart">Issue Tracking</a>
        </li>
                  
    <li class="none">
              <a href="dependencies.html">Dependencies</a>
        </li>
              </ul>
        </li>
          </ul>
                                       <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
            <img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
          </a>
                       
     </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
<h2>Rampart Configurations</h2>
<p>RampartConfig element can have any of the following child elements. Schema is available <a href="rampart-config.xsd">here</a></p>
<table class="bodyTable"><tbody>
    <tr class="a"><td><b>Parameter</b></td><td><b>Description</b></td><td><b>Example</b></td></tr>

    <tr class="b"><td>user</td><td>The user's name</td><td>Set alias of the key to be used to sign<br></br>
        &lt;user&gt; bob&lt;/user&gt;</td></tr>
    <tr class="a"><td>encryptionUser</td><td>The user's name for encryption.</td><td><br></br>
        &lt;encryptionUser&gt;alice&lt;/encryptionUser&gt;</td></tr>
    <tr class="b"><td>passwordCallbackClass</td><td>Callback class used to provide the password required to create the
        UsernameToken or to sign the message</td><td>&lt;passwordCallbackClass&gt;
        org.apache.axis2.security.PWCallback&lt;/passwordCallbackClass&gt;</td></tr>

    <tr class="a"><td>signatureCrypto</td><td>properties to needed perform signature, such as crypto
        provider, keystore and its password</td><td>
	&lt;signatureCrypto&gt;<br/>
		&nbsp;&nbsp;&nbsp;&nbsp;&lt;crypto provider="org.apache.ws.security.components.crypto.Merlin"&gt;<br>
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="org.apache.ws.security.crypto.merlin.keystore.type"&gt;JKS&lt;/property&gt;<br>
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="org.apache.ws.security.crypto.merlin.file"&gt;client.jks&lt;/property&gt;<br>
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="org.apache.ws.security.crypto.merlin.keystore.password"&gt;apache&lt;/property&gt;<br>
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;/crypto&gt;<br>
	&lt;signatureCrypto&gt;</td></tr>
    <tr class="b"><td>encryptionCypto</td><td>properties to needed perform signature, such as crypto
        provider, keystore and its password</td><td>&lt;encryptionCypto&gt;....crypto element ......&lt;/encryptionCypto&gt;</td></tr>
    <tr class="a"><td>decryptionCrypto</td><td>properties to needed perform signature, such as crypto
        provider, keystore and its password</td><td>&lt;decryptionCrypto&gt;....crypto element ......&lt;/decryptionCrypto&gt;</td></tr>
 <tr class="b"><td>timestampTTL</td><td>Time to live of Timestamp</td><td>The default timestamp time to live is 300 seconds</td></tr>
    <tr class="a"><td>timestampMaxSkew</td><td>The maximum tolerence limit for timeskew of the timestamp</td><td>Rampart allows timestamps created slightly ahead of the reciever's time.<br/> This parameter allows to specify the tolerence limit</td></tr>
    <tr class="b"><td>tokenStoreClass</td><td></td><td></td></tr>
    <tr class="a"><td>sslConfig</td><td>SSL Configuration need for Transportbinding</td><td>Can specify the properties such as "javax.net.ssl.trustStore" and "javax.net.ssl.trustStorePassword". Please see below for more information.</td></tr>
  </tbody></table>
<h3>Crypto Provider</h3>
  <p>org.apache.ws.security.crypto.provider defines the implementation of
the org.apache.ws.security.components.crypto.Crypto interface to provide the
crypto information required by WSS4J. The other properties defined are the
configuration properties used by the implementation class
(org.apache.ws.security.components.crypto.Merlin). <a name="ref"></a><a name="references"></a></p></div><div class="subsection"><a name="References"></a><h3>References</h3><p>1. <a href="http://ws.apache.org/wss4j" class="externalLink" title="External Link">Apache WSS4J -Home</a>
</div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">&#169;  
          2005-2007
    
          Apache Software Foundation
          
  

  
    
  
  
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>

