<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 18 Jan 2016 
 | Rendered using Apache Maven Fluido Skin 1.4
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20160118" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Rampart &#x2013; Apache Rampart Samples</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />

      
    <script type="text/javascript" src="./js/apache-maven-fluido-1.4.min.js"></script>

    
                  </head>
        <body class="topBarDisabled">
          
        
    
        <div class="container-fluid">
          <div id="banner">
        <div class="pull-left">
                                <div id="bannerLeft">
                                                                                                <img src="images/apache-rampart-logo.jpg" />
                </div>
                      </div>
        <div class="pull-right">                  <a href="http://www.apache.org" id="bannerRight">
                                                                                        <img src="http://www.apache.org/images/asf_logo_wide.png" />
                </a>
      </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
                
                    
                  <li id="publishDate">Last Published: 18 Jan 2016
                      <span class="divider">|</span>
                   </li>
                  <li id="projectVersion">Version: 1.7.0
                      </li>
                      
                
                    
      
                                    
    <li class="pull-right">
                      <a href="../core/" title="Apache Axis2/Java">
        Apache Axis2/Java</a>
      </li>

                    </ul>
      </div>

            
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
                
                    
                <ul class="nav nav-list">
                    <li class="nav-header">Apache Rampart</li>
                              
      <li>
  
                          <a href="index.html" title="Home">
          <span class="none"></span>
        Home</a>
            </li>
                                                                              
      <li>
  
                          <a href="javascript:void(0)" title="Downloads">
          <span class="icon-chevron-down"></span>
        Downloads</a>
                    <ul class="nav nav-list">
                    
      <li>
  
                          <a href="download.html" title="Releases">
          <span class="none"></span>
        Releases</a>
            </li>
                    
      <li>
  
                          <a href="svn.html" title="Source Code">
          <span class="none"></span>
        Source Code</a>
            </li>
              </ul>
        </li>
                                                                                                                                    
      <li>
  
                          <a href="javascript:void(0)" title="Release Notes">
          <span class="icon-chevron-down"></span>
        Release Notes</a>
                    <ul class="nav nav-list">
                    
      <li>
  
                          <a href="release-notes/1.6.1.html" title="1.6.1">
          <span class="none"></span>
        1.6.1</a>
            </li>
                    
      <li>
  
                          <a href="release-notes/1.6.2.html" title="1.6.2">
          <span class="none"></span>
        1.6.2</a>
            </li>
                    
      <li>
  
                          <a href="release-notes/1.6.3.html" title="1.6.3">
          <span class="none"></span>
        1.6.3</a>
            </li>
                    
      <li>
  
                          <a href="release-notes/1.6.4.html" title="1.6.4">
          <span class="none"></span>
        1.6.4</a>
            </li>
                    
      <li>
  
                          <a href="release-notes/1.7.0.html" title="1.7.0">
          <span class="none"></span>
        1.7.0</a>
            </li>
              </ul>
        </li>
                              <li class="nav-header">Documentation</li>
                              
      <li>
  
                          <a href="quick-start.html" title="Getting Started">
          <span class="none"></span>
        Getting Started</a>
            </li>
                
      <li class="active">
  
            <a href="#"><span class="none"></span>Samples</a>
          </li>
                
      <li>
  
                          <a href="http://wiki.apache.org/ws/FrontPage/Rampart/FAQ" class="externalLink" title="FAQ">
          <span class="none"></span>
        FAQ</a>
            </li>
                
      <li>
  
                          <a href="rampartconfig-guide.html" title="Rampart Configuration">
          <span class="none"></span>
        Rampart Configuration</a>
            </li>
                
      <li>
  
                          <a href="setting-up-sts.html" title="STS Configuration">
          <span class="none"></span>
        STS Configuration</a>
            </li>
                
      <li>
  
                          <a href="developer-guide.html" title="Developer Guide">
          <span class="none"></span>
        Developer Guide</a>
            </li>
                
      <li>
  
                          <a href="siteHowTo.html" title="Build the Site">
          <span class="none"></span>
        Build the Site</a>
            </li>
                              <li class="nav-header">Resources</li>
                              
      <li>
  
                          <a href="articles.html" title="Articles">
          <span class="none"></span>
        Articles</a>
            </li>
                
      <li>
  
                          <a href="specifications.html" title="Specifications">
          <span class="none"></span>
        Specifications</a>
            </li>
                
      <li>
  
                          <a href="apidocs/index.html" title="Online Javadocs">
          <span class="none"></span>
        Online Javadocs</a>
            </li>
                              <li class="nav-header">Project Information</li>
                              
      <li>
  
                          <a href="team-list.html" title="Project Team">
          <span class="none"></span>
        Project Team</a>
            </li>
                
      <li>
  
                          <a href="http://issues.apache.org/jira/browse/Rampart" class="externalLink" title="Issue Tracking">
          <span class="none"></span>
        Issue Tracking</a>
            </li>
                
      <li>
  
                          <a href="mail-lists.html" title="Mailing Lists">
          <span class="none"></span>
        Mailing Lists</a>
            </li>
                
      <li>
  
                          <a href="http://svn.apache.org/viewvc/axis/axis2/java/rampart/" class="externalLink" title="Source Code">
          <span class="none"></span>
        Source Code</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/licenses/" class="externalLink" title="License">
          <span class="none"></span>
        License</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">
          <span class="none"></span>
        Sponsorship</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
          <span class="none"></span>
        Thanks</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/security/" class="externalLink" title="Security">
          <span class="none"></span>
        Security</a>
            </li>
            </ul>
                
                    
                
          <hr />

           <div id="poweredBy">
                            <div class="clear"></div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
                  </div>
          </div>
        </div>
        
                
        <div id="bodyColumn"  class="span10" >
                                  
            <!-- ~  Licensed to the Apache Software Foundation (ASF) under one
  ~  or more contributor license agreements.  See the NOTICE file
  ~  distributed with this work for additional information
  ~  regarding copyright ownership.  The ASF licenses this file
  ~  to you 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. -->
    
        <h1>Rampart Samples</h1>
        
<div class="section">
<h2><a name="Basic_samples"></a> Basic samples </h2>
        
<p>These samples use parameter based configuration model. This will be a great starting point to get a basic understanding of how WS Security really works.  </p>
        
<div class="section">
<h2><a name="Policy_samples"></a> Policy samples </h2>
        
<p>These samples use WS Security Policy Language for configuration. It is recommended to use policy based configuration model for all production scenarios </p>
        
<div class="section">
<h3><a name="Running_Samples"></a>Running Samples</h3>
        
<p>Before beginning, please install Rampart as described <a href="quick-start.html">here</a>.</p>
        
<p>Now we'll look at how to run the first sample inside samples/policy folder.</p>
        
<ol style="list-style-type: decimal">
            
<li>Open a console and change the directory to sample/policy and give the following command. This will start the server at port 8080</li>
            
<div>
<pre>
<tt>$ant service.01</tt>
            </pre></div>
            
<li>Open a new console and change the directory to sample/policy and type the following command.</li>
            
<div>
<pre>
<tt>$ant client.01</tt>
            </pre></div>
        </ol>
        
<p>Congratulations! Now you have executed the first sample. Rest of the samples can be run by changing the sample number.</p>
        <br /></br>
        <br /></br>
        </div>
<div class="section">
<h3><a name="Samples"></a>Samples</h3>
        <br /></br>
        
<table border="0" class="table table-striped">
            <tbody>
                
<tr class="a">
<td>Sample 01</td></tr>
                
<tr class="b"></tr>           
           </tbody>
        </table>
        
<div style="margin-left:2px;margin-right:-2px;">UsernameToken Authentication, The policy uses a TransportBinding and requires a SignedSupportingToken which 
is a UsernameToken and the inclusion of a TimeStamp. </div>
        
<ul>
            
<li><a href="samples/policy/sample01.xml">Policy</a></li>
            
<li><a href="samples/msgs/req01.xml">Request Message</a></li>
            
<li><a href="samples/msgs/res01.xml">Response Message</a></li>
        </ul>

        <br /></br>
        
<table border="0" class="table table-striped">
            <tbody>
                
<tr class="a">
<td>Sample 02</td></tr>
                
<tr class="b"></tr>
           </tbody>
        </table>
        
<div class="b" style="margin-left:2px;margin-right:-2px;">Sign only, An AsymmetricBinding is used. Entire headers and body to be signed.
Algorithm suite is TripleDesRsa15.</div>
        
<ul>
            
<li><a href="samples/policy/sample02.xml">Policy</a></li>
            
<li><a href="samples/msgs/req02.xml">Request Message</a></li>
            
<li><a href="samples/msgs/res02.xml">Response Message</a></li>
        </ul>
        <br /></br>
        
<table border="0" class="table table-striped">
            <tbody>
                
<tr class="a">
<td>Sample 03</td></tr>
                
<tr class="b"></tr>           
           </tbody>
        </table>
        
<div class="b" style="margin-left:2px;margin-right:-2px;">Sign and Encrypt messages, An AsymmetricBinding is used. Entire headers and body to be signed. 
EncryptionParts specifies the Body to be encrypted. </div>
        
<ul>
            
<li><a href="samples/policy/sample03.xml">Policy</a></li>
            
<li><a href="samples/msgs/req03.xml">Request Message</a></li>
            
<li><a href="samples/msgs/res03.xml">Response Message</a></li>
        </ul>
        <br /></br>
        
<table border="0" class="table table-striped">
            <tbody>
                
<tr class="a">
<td>Sample 04</td></tr>
                
<tr class="b"></tr>
           </tbody>
        </table>
        
<div class="b" style="margin-left:2px;margin-right:-2px;">SecureConversation , The secure session is bootstrapped using a SymetricBinding which uses derived keys based on an ephemeral key. 
Messages in the secure conversation includes a timestamp, all headers are signed along with the timestamp, signature encrypted and body encrypted.</div>
        
<ul>
            
<li><a href="samples/policy/sample04.xml">Policy</a></li>
            
<li><a href="samples/msgs/rst04.xml">Bootstrap request (RST)</a></li>
            
<li><a href="samples/msgs/rstr04.xml">Bootstrap response (RSTR)</a></li>
            
<li><a href="samples/msgs/req04.xml">Request Message</a></li>
            
<li><a href="samples/msgs/res04.xml">Response Message</a></li>
            
<li><a href="samples/msgs/creq04.xml">Cancel request </a></li>
            
<li><a href="samples/msgs/cres04.xml">Cancel response</a></li>
        </ul>
        <br /></br>
        
<table border="0" class="table table-striped">
            <tbody>
                
<tr class="a">
<td>Sample 05</td></tr>                
                
<tr class="b"></tr>            
           </tbody>
        </table>
        
<div class="b" style="margin-left:2px;margin-right:-2px;">WS-Trust - RST - Resquest Security Token Service - Issuing a SAML token - issuing a token </div>
        
<ul>
            
<li><a href="samples/policy/sample05.xml">Policy</a></li>
            
<li><a href="samples/msgs/req05.xml">Request Message</a></li>
            
<li><a href="samples/msgs/res05.xml">Response Message</a></li>
        </ul>
        <br /></br>
        
<table border="0" class="table table-striped">
            <tbody>
                
<tr class="a">
<td>Sample 06</td></tr>              
                
<tr class="b"></tr>
           </tbody>
        </table>
        
<div class="b" style="margin-left:2px;margin-right:-2px;">WS-Trust ( With WS Metada Exchange) - RST - Resquest Security Token Service - Issuing a SAML token  </div>
        
<ul>
            
<li><a href="samples/policy/sample01.xml">Policy</a></li>
            
<li><a href="samples/msgs/req06.xml">Request Message</a></li>
            
<li><a href="samples/msgs/res06.xml">Response Message</a></li>
        </ul>
  </div>
 
                  </div>
            </div>
          </div>

    <hr/>

    <footer>
            <div class="container-fluid">
                      <div class="row-fluid">
                                      <p >Copyright &copy;                    2005&#x2013;2016
                        <a href="http://www.apache.org">Apache Software Foundation</a>.
            All rights reserved.      
                    
      </p>
                </div>

        
                </div>
    </footer>
        </body>
</html>