You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2017/01/29 15:02:13 UTC

svn commit: r1780802 [3/3] - in /axis/axis2/java/rampart/branches/RAMPART-252: ./ modules/distribution/ modules/documentation/src/site/ modules/documentation/src/site/resources/ modules/documentation/src/site/resources/css/ modules/documentation/src/si...

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/Token.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/Token.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/Token.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/Token.java Sun Jan 29 15:02:12 2017
@@ -18,164 +18,169 @@ package org.apache.rahas;
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
+import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.om.impl.dom.DOOMAbstractFactory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.ws.security.WSConstants;
 import org.apache.ws.security.util.XmlSchemaDateFormat;
 
 import javax.xml.namespace.QName;
-
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import java.io.ByteArrayInputStream;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Reader;
+import java.io.StringReader;
+import java.io.UnsupportedEncodingException;
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.util.Date;
 import java.util.Properties;
 
 /**
- * This represents a security token which can have either one of 4 states.
- * <ul>
- * <li>ISSUED</li>
- * <li>EXPIRED</li>
- * <li>CACELLED</li>
- * <li>RENEWED</li>
- * </ul>
- * Also this holds the <code>OMElement</code>s representing the token in its 
+ * This represents a security token which can have either one of 4 states. <ul> <li>ISSUED</li> <li>EXPIRED</li>
+ * <li>CACELLED</li> <li>RENEWED</li> </ul> Also this holds the <code>OMElement</code>s representing the token in its
  * present state and the previous state.
- * 
- * These tokens are stored using the storage mechanism provided via the 
- * <code>TokenStorage</code> interface.
+ * <p/>
+ * These tokens are stored using the storage mechanism provided via the <code>TokenStorage</code> interface.
+ *
  * @see org.apache.rahas.TokenStorage
  */
-public class Token {
-    
+public class Token implements Externalizable {
+
+    private static Log log = LogFactory.getLog(Token.class);
+
     public final static int ISSUED = 1;
+
     public final static int EXPIRED = 2;
+
     public final static int CANCELLED = 3;
+
     public final static int RENEWED = 4;
-    
+
     /**
      * Token identifier
      */
     private String id;
-    
+
     /**
      * Current state of the token
      */
     private int state = -1;
-    
+
     /**
      * The actual token in its current state
      */
     private OMElement token;
-    
+
     /**
      * The token in its previous state
      */
     private OMElement previousToken;
-    
+
     /**
-     * The RequestedAttachedReference element
-     * NOTE : The oasis-200401-wss-soap-message-security-1.0 spec allows 
-     * an extensibility mechanism for wsse:SecurityTokenReference and 
-     * wsse:Reference. Hence we cannot limit to the 
-     * wsse:SecurityTokenReference\wsse:Reference case and only hold the URI and 
-     * the ValueType values.
+     * The RequestedAttachedReference element NOTE : The oasis-200401-wss-soap-message-security-1.0 spec allows an
+     * extensibility mechanism for wsse:SecurityTokenReference and wsse:Reference. Hence we cannot limit to the
+     * wsse:SecurityTokenReference\wsse:Reference case and only hold the URI and the ValueType values.
      */
     private OMElement attachedReference;
-    
+
     /**
-     * The RequestedUnattachedReference element
-     * NOTE : The oasis-200401-wss-soap-message-security-1.0 spec allows 
-     * an extensibility mechanism for wsse:SecurityTokenRefence and 
-     * wsse:Reference. Hence we cannot limit to the 
-     * wsse:SecurityTokenReference\wsse:Reference case and only hold the URI and 
-     * the ValueType values.
+     * The RequestedUnattachedReference element NOTE : The oasis-200401-wss-soap-message-security-1.0 spec allows an
+     * extensibility mechanism for wsse:SecurityTokenRefence and wsse:Reference. Hence we cannot limit to the
+     * wsse:SecurityTokenReference\wsse:Reference case and only hold the URI and the ValueType values.
      */
     private OMElement unattachedReference;
-    
+
     /**
      * A bag to hold any other properties
      */
-    private Properties  properties;
+    private Properties properties;
 
     /**
      * A flag to assist the TokenStorage
      */
     private boolean changed;
-    
+
     /**
      * The secret associated with the Token
      */
     private byte[] secret;
-    
+
     /**
      * Created time
      */
     private Date created;
-    
+
     /**
      * Expiration time
      */
     private Date expires;
-    
+
     /**
      * Issuer end point address
      */
     private String issuerAddress;
-    
+
     private String encrKeySha1Value;
-    
+
+    public Token() {
+    }
+
     public Token(String id, Date created, Date expires) {
-    	this.id = id;
-    	this.created = created;
-    	this.expires = expires;
-    }
-    
-    public Token(String id,
-                 OMElement tokenElem,
-                 Date created,
-                 Date expires) throws TrustException {
         this.id = id;
-        StAXOMBuilder stAXOMBuilder = new StAXOMBuilder(DOOMAbstractFactory.getOMFactory(),
-                tokenElem.getXMLStreamReader());
+        this.created = created;
+        this.expires = expires;
+    }
+
+    public Token(String id, OMElement tokenElem, Date created, Date expires)
+        throws TrustException {
+        this.id = id;
+        StAXOMBuilder stAXOMBuilder =
+            new StAXOMBuilder(DOOMAbstractFactory.getOMFactory(), tokenElem.getXMLStreamReader());
         stAXOMBuilder.setNamespaceURIInterning(true);
         this.token = stAXOMBuilder.getDocumentElement();
         this.created = created;
         this.expires = expires;
     }
 
-    public Token(String id,
-                 OMElement tokenElem,
-                 OMElement lifetimeElem) throws TrustException {
+    public Token(String id, OMElement tokenElem, OMElement lifetimeElem)
+        throws TrustException {
         this.id = id;
-        StAXOMBuilder stAXOMBuilder = new StAXOMBuilder(DOOMAbstractFactory.getOMFactory(),
-                tokenElem.getXMLStreamReader());
+        StAXOMBuilder stAXOMBuilder =
+            new StAXOMBuilder(DOOMAbstractFactory.getOMFactory(), tokenElem.getXMLStreamReader());
         stAXOMBuilder.setNamespaceURIInterning(true);
         this.token = stAXOMBuilder.getDocumentElement();
         this.processLifeTime(lifetimeElem);
     }
-    
+
     /**
      * @param lifetimeElem
-     * @throws TrustException 
+     * @throws TrustException
      */
-    private void processLifeTime(OMElement lifetimeElem) throws TrustException {
+    private void processLifeTime(OMElement lifetimeElem)
+        throws TrustException {
         try {
             DateFormat zulu = new XmlSchemaDateFormat();
             OMElement createdElem =
-                    lifetimeElem.getFirstChildWithName(new QName(WSConstants.WSU_NS,
-                                                                 WSConstants.CREATED_LN));
+                lifetimeElem.getFirstChildWithName(new QName(WSConstants.WSU_NS, WSConstants.CREATED_LN));
             this.created = zulu.parse(createdElem.getText());
-            
+
             OMElement expiresElem =
-                    lifetimeElem.getFirstChildWithName(new QName(WSConstants.WSU_NS,
-                                                                 WSConstants.EXPIRES_LN));
+                lifetimeElem.getFirstChildWithName(new QName(WSConstants.WSU_NS, WSConstants.EXPIRES_LN));
             this.expires = zulu.parse(expiresElem.getText());
         } catch (OMException e) {
-            throw new TrustException("lifeTimeProcessingError",
-                                     new String[]{lifetimeElem.toString()}, e);
+            throw new TrustException("lifeTimeProcessingError", new String[]{lifetimeElem.toString()}, e);
         } catch (ParseException e) {
-            throw new TrustException("lifeTimeProcessingError",
-                                     new String[]{lifetimeElem.toString()}, e);
+            throw new TrustException("lifeTimeProcessingError", new String[]{lifetimeElem.toString()}, e);
         }
     }
 
@@ -192,7 +197,7 @@ public class Token {
     public void setChanged(boolean chnaged) {
         this.changed = chnaged;
     }
-    
+
     /**
      * @return Returns the properties.
      */
@@ -253,8 +258,8 @@ public class Token {
      * @param presivousToken The presivousToken to set.
      */
     public void setPreviousToken(OMElement presivousToken) {
-        this.previousToken = new StAXOMBuilder(DOOMAbstractFactory.getOMFactory(),
-                presivousToken.getXMLStreamReader()).getDocumentElement();
+        this.previousToken = new StAXOMBuilder(DOOMAbstractFactory.getOMFactory(), presivousToken.getXMLStreamReader())
+            .getDocumentElement();
     }
 
     /**
@@ -282,9 +287,9 @@ public class Token {
      * @param attachedReference The attachedReference to set.
      */
     public void setAttachedReference(OMElement attachedReference) {
-        if(attachedReference != null) {
-            this.attachedReference = new StAXOMBuilder(DOOMAbstractFactory
-                    .getOMFactory(), attachedReference.getXMLStreamReader())
+        if (attachedReference != null) {
+            this.attachedReference =
+                new StAXOMBuilder(DOOMAbstractFactory.getOMFactory(), attachedReference.getXMLStreamReader())
                     .getDocumentElement();
         }
     }
@@ -300,9 +305,9 @@ public class Token {
      * @param unattachedReference The unattachedReference to set.
      */
     public void setUnattachedReference(OMElement unattachedReference) {
-        if(unattachedReference != null) {
-            this.unattachedReference = new StAXOMBuilder(DOOMAbstractFactory
-                    .getOMFactory(), unattachedReference.getXMLStreamReader())
+        if (unattachedReference != null) {
+            this.unattachedReference =
+                new StAXOMBuilder(DOOMAbstractFactory.getOMFactory(), unattachedReference.getXMLStreamReader())
                     .getDocumentElement();
         }
     }
@@ -335,4 +340,150 @@ public class Token {
     public void setIssuerAddress(String issuerAddress) {
         this.issuerAddress = issuerAddress;
     }
+
+    /**
+     * Implementing serialize logic according to our own protocol. We had to follow this, because
+     * OMElement class is not serializable. Making OMElement serializable will have an huge impact
+     * on other components. Therefore implementing serialization logic according to a manual
+     * protocol.
+     * @param out Stream which writes serialized bytes.
+     * @throws IOException If unable to serialize particular member.
+     */
+    public void writeExternal(ObjectOutput out)
+        throws IOException {
+
+        out.writeObject(this.id);
+
+        out.writeInt(this.state);
+        
+        String stringElement = convertOMElementToString(this.token);
+        out.writeObject(stringElement);
+
+        stringElement = convertOMElementToString(this.previousToken);
+        out.writeObject(stringElement);
+
+        stringElement = convertOMElementToString(this.attachedReference);
+        out.writeObject(stringElement);
+
+        stringElement = convertOMElementToString(this.unattachedReference);
+        out.writeObject(stringElement);
+
+        out.writeObject(this.properties);
+
+        out.writeBoolean(this.changed);
+
+        int secretLength = 0;
+        if (null != this.secret) {
+            secretLength = this.secret.length;
+        }
+
+        // First write the length of secret
+        out.writeInt(secretLength);
+        if (0 != secretLength) {
+            out.write(this.secret);
+        }
+
+        out.writeObject(this.created);
+
+        out.writeObject(this.expires);
+
+        out.writeObject(this.issuerAddress);
+
+        out.writeObject(this.encrKeySha1Value);
+    }
+
+    /**
+     * Implementing de-serialization logic in accordance with the serialization logic.
+     * @param in Stream which used to read data.
+     * @throws IOException If unable to de-serialize particular data member.
+     * @throws ClassNotFoundException 
+     */
+    public void readExternal(ObjectInput in)
+        throws IOException, ClassNotFoundException {
+
+        this.id = (String)in.readObject();
+
+        this.state = in.readInt();
+
+        String stringElement = (String)in.readObject();
+        this.token = convertStringToOMElement(stringElement);
+
+        stringElement = (String)in.readObject();
+        this.previousToken = convertStringToOMElement(stringElement);
+
+        stringElement = (String)in.readObject();
+        this.attachedReference = convertStringToOMElement(stringElement);
+
+        stringElement = (String)in.readObject();
+        this.unattachedReference = convertStringToOMElement(stringElement);
+
+        this.properties = (Properties)in.readObject();
+
+        this.changed = in.readBoolean();
+
+        // Read the length of the secret
+        int secretLength = in.readInt();
+
+        if (0 != secretLength) {
+            byte[] buffer = new byte[secretLength];
+            if (secretLength != in.read(buffer)) {
+                throw new IllegalStateException("Bytes read from the secret key is not equal to serialized length");
+            }
+            this.secret = buffer;
+        }else{
+            this.secret = null;
+        }
+
+        this.created = (Date)in.readObject();
+
+        this.expires = (Date)in.readObject();
+
+        this.issuerAddress = (String)in.readObject();
+
+        this.encrKeySha1Value = (String)in.readObject();
+    }
+
+    private String convertOMElementToString(OMElement element)
+        throws IOException {
+        String serializedToken = "";
+
+        if (null == element) {
+            return serializedToken;
+        }
+
+        try {
+            serializedToken = element.toStringWithConsume();
+        } catch (XMLStreamException e) {
+            throw new IOException("Could not serialize token OM element");
+        }
+
+        return serializedToken;
+    }
+
+    private OMElement convertStringToOMElement(String stringElement)
+        throws IOException {
+
+        if (null == stringElement || stringElement.trim().equals("")) {
+            return null;
+        }
+
+        try {
+            Reader in = new StringReader(stringElement);
+            XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(in);
+            StAXOMBuilder builder = new StAXOMBuilder(parser);
+            OMElement documentElement = builder.getDocumentElement();
+
+            XMLStreamReader llomReader = documentElement.getXMLStreamReader();
+            OMFactory doomFactory = DOOMAbstractFactory.getOMFactory();
+            StAXOMBuilder doomBuilder = new StAXOMBuilder(doomFactory, llomReader);
+            return doomBuilder.getDocumentElement();
+            
+        } catch (XMLStreamException e) {
+            log.error("Cannot convert de-serialized string to OMElement. Could not create XML stream.", e);
+            // IOException only has a constructor supporting exception chaining starting with Java 1.6
+            IOException ex = new IOException("Cannot convert de-serialized string to OMElement. Could not create XML stream.");
+            ex.initCause(e);
+            throw ex;
+        }
+    }
 }

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java Sun Jan 29 15:02:12 2017
@@ -17,10 +17,9 @@
 package org.apache.rahas.client;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
+import java.util.*;
+import java.text.DateFormat;
+import java.text.ParseException;
 
 import javax.security.auth.callback.Callback;
 import javax.security.auth.callback.CallbackHandler;
@@ -29,6 +28,7 @@ import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNode;
+import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.om.impl.dom.DOOMAbstractFactory;
 import org.apache.axiom.om.util.Base64;
@@ -66,6 +66,7 @@ import org.apache.ws.security.conversati
 import org.apache.ws.security.message.token.Reference;
 import org.apache.ws.security.processor.EncryptedKeyProcessor;
 import org.apache.ws.security.util.WSSecurityUtil;
+import org.apache.ws.security.util.XmlSchemaDateFormat;
 import org.w3c.dom.Element;
 
 public class STSClient {
@@ -142,10 +143,14 @@ public class STSClient {
             //Process the STS and service policy policy
             this.processPolicy(issuerPolicy, servicePolicy);
             
-            OMElement response = client.sendReceive(rstQn,
-                                                    createIssueRequest(requestType, appliesTo));
-
-            return processIssueResponse(version, response, issuerAddress);
+            try {
+                OMElement response = client.sendReceive(rstQn,
+                                                        createIssueRequest(requestType, appliesTo));
+    
+                return processIssueResponse(version, response, issuerAddress);
+            } finally {
+                client.cleanupTransport();
+            }
         } catch (AxisFault e) {
             log.error("errorInObtainingToken", e);
             throw new TrustException("errorInObtainingToken", new String[]{issuerAddress},e);
@@ -243,7 +248,120 @@ public class STSClient {
         }
         
     }
-    
+
+    /**
+     * Renews the token referenced by the token id, updates the token store
+     * @param tokenId
+     * @param issuerAddress
+     * @param issuerPolicy
+     * @param store
+     * @return status
+     * @throws TrustException
+     */
+    public boolean renewToken(String tokenId,
+                              String issuerAddress,
+                              Policy issuerPolicy, TokenStorage store) throws TrustException {
+
+        try {
+            QName rstQn = new QName("requestSecurityToken");
+
+            ServiceClient client = getServiceClient(rstQn, issuerAddress);
+
+            client.getServiceContext().setProperty(RAMPART_POLICY, issuerPolicy);
+            client.getOptions().setSoapVersionURI(this.soapVersion);
+            if (this.addressingNs != null) {
+                client.getOptions().setProperty(AddressingConstants.WS_ADDRESSING_VERSION, this.addressingNs);
+            }
+            client.engageModule("addressing");
+            client.engageModule("rampart");
+
+            this.processPolicy(issuerPolicy, null);
+
+            String tokenType = RahasConstants.TOK_TYPE_SAML_10;
+
+            OMElement response = client.sendReceive(rstQn,
+                    createRenewRequest(tokenType, tokenId));
+            store.update(processRenewResponse(version, response, store, tokenId));
+
+            return true;
+
+        } catch (AxisFault e) {
+            log.error("errorInRenewingToken", e);
+            throw new TrustException("errorInRenewingToken", new String[]{issuerAddress}, e);
+        }
+
+    }
+
+    /**
+     * Processes the response and update the token store
+     * @param version
+     * @param elem
+     * @param store
+     * @param id
+     * @return
+     * @throws TrustException
+     */
+    private Token processRenewResponse(int version, OMElement elem, TokenStorage store, String id) throws TrustException {
+        OMElement rstr = elem;
+        if (version == RahasConstants.VERSION_05_12) {
+            //The WS-SX result will be an RSTRC
+            rstr = elem.getFirstElement();
+        }
+        //get the corresponding WS-Trust NS
+        String ns = TrustUtil.getWSTNamespace(version);
+
+        //Get the RequestedAttachedReference
+        OMElement reqSecToken = rstr.getFirstChildWithName(new QName(
+                ns, RahasConstants.IssuanceBindingLocalNames.REQUESTED_SECURITY_TOKEN));
+
+        if (reqSecToken == null) {
+            throw new TrustException("reqestedSecTokMissing");
+        }
+
+        //Extract the life-time element
+        OMElement lifeTimeEle = rstr.getFirstChildWithName(new QName(
+                ns, RahasConstants.IssuanceBindingLocalNames.LIFETIME));
+
+        if (lifeTimeEle == null) {
+            throw new TrustException("lifeTimeElemMissing");
+        }
+
+        //update the existing token
+        OMElement tokenElem = reqSecToken.getFirstElement();
+        Token token = store.getToken(id);
+        token.setPreviousToken(token.getToken());
+        token.setToken(tokenElem);
+        token.setState(Token.RENEWED);
+        token.setExpires(extractExpiryDate(lifeTimeEle));
+
+        return token;
+    }
+
+    /**
+     * extracts the expiry date from the Lifetime element of the RSTR
+     * @param lifetimeElem
+     * @return
+     * @throws TrustException
+     */
+    private Date extractExpiryDate(OMElement lifetimeElem) throws TrustException {
+        try {
+            DateFormat zulu = new XmlSchemaDateFormat();
+
+            OMElement expiresElem =
+                    lifetimeElem.getFirstChildWithName(new QName(WSConstants.WSU_NS,
+                            WSConstants.EXPIRES_LN));
+            Date expires = zulu.parse(expiresElem.getText());
+            return expires;
+        } catch (OMException e) {
+            throw new TrustException("lifeTimeProcessingError",
+                    new String[]{lifetimeElem.toString()}, e);
+        } catch (ParseException e) {
+            throw new TrustException("lifeTimeProcessingError",
+                    new String[]{lifetimeElem.toString()}, e);
+        }
+    }
+
+
     private ServiceClient getServiceClient(QName rstQn,
                                            String issuerAddress) throws AxisFault {
         AxisService axisService =
@@ -429,6 +547,11 @@ public class STSClient {
         } else {
             //Return wsu:Id of the token element
             id = token.getAttributeValue(new QName(WSConstants.WSU_NS, "Id"));
+            if ( id == null )
+            {
+            	// If we are dealing with a SAML Assetion, look for AssertionID.
+            	id = token.getAttributeValue(new QName( "AssertionID"));
+            }
         }
         return id;
     }
@@ -794,7 +917,7 @@ public class STSClient {
         this.rstTemplate = rstTemplate;
     }
 
-    private class CBHandler implements CallbackHandler {
+    private static class CBHandler implements CallbackHandler {
 
         private String passwd;
 

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/errors.properties
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/errors.properties?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/errors.properties (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/errors.properties Sun Jan 29 15:02:12 2017
@@ -86,4 +86,5 @@ configurationIsNull = Configuration is n
 errorInCancelingToken = Error occurred while trying to cancel token
 
 errorExtractingTokenId  = Error occurred while extracting token id from the Security Token Reference
+lifeTimeElemMissing = Lifetime element is missing in the RSTR
 lifeTimeElemMissing = Lifetime element is missing in the RSTR
\ No newline at end of file

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java Sun Jan 29 15:02:12 2017
@@ -456,10 +456,9 @@ public class SAML2TokenIssuer implements
                 x509CertElem.appendChild(base64CertText);
                 Element x509DataElem = doc.createElementNS(WSConstants.SIG_NS,
                         "ds:X509Data");
-                x509DataElem.appendChild(x509CertElem);
-
-
+                
                 if (x509DataElem != null) {
+                	x509DataElem.appendChild(x509CertElem);
                     keyInfoElem = doc.createElementNS(WSConstants.SIG_NS, "ds:KeyInfo");
                     ((OMElement) x509DataElem).declareNamespace(
                             WSConstants.SIG_NS, WSConstants.SIG_PREFIX);
@@ -661,9 +660,9 @@ public class SAML2TokenIssuer implements
         Attribute[] attributes = null;
 
         //Call the attribute callback handlers to get any attributes if exists
-        if (config.getCallbackHander() != null) {
+        if (config.getCallbackHandler() != null) {
             SAMLAttributeCallback cb = new SAMLAttributeCallback(data);
-            SAMLCallbackHandler handler = config.getCallbackHander();
+            SAMLCallbackHandler handler = config.getCallbackHandler();
             handler.handle(cb);
             attributes = cb.getSAML2Attributes();
         }

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuer.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuer.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuer.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuer.java Sun Jan 29 15:02:12 2017
@@ -254,10 +254,10 @@ public class SAMLTokenIssuer implements
             // In the case where the principal is a UT
             if (principal instanceof WSUsernameTokenPrincipal) {
             	SAMLNameIdentifier nameId = null;
-            	if(config.getCallbackHander() != null){
+            	if(config.getCallbackHandler() != null){
             		SAMLNameIdentifierCallback cb = new SAMLNameIdentifierCallback(data);
             		cb.setUserId(principal.getName());
-            		SAMLCallbackHandler callbackHandler = config.getCallbackHander();
+            		SAMLCallbackHandler callbackHandler = config.getCallbackHandler();
             		callbackHandler.handle(cb);
             		nameId = cb.getNameId();
             	}else{
@@ -338,7 +338,7 @@ public class SAMLTokenIssuer implements
                 String subjectNameId = data.getPrincipal().getName();
                 
                 SAMLNameIdentifier nameId = new SAMLNameIdentifier(
-                        subjectNameId, null, SAMLNameIdentifier.FORMAT_EMAIL);
+                        subjectNameId, null, SAMLNameIdentifier.FORMAT_X509);
 
                 // Create the ds:KeyValue element with the ds:X509Data
                 X509Certificate clientCert = data.getClientCert();
@@ -432,9 +432,9 @@ public class SAMLTokenIssuer implements
 
            
             SAMLAttribute[] attrs = null;
-            if(config.getCallbackHander() != null){
+            if(config.getCallbackHandler() != null){
             	SAMLAttributeCallback cb = new SAMLAttributeCallback(data);
-            	SAMLCallbackHandler handler = config.getCallbackHander();
+            	SAMLCallbackHandler handler = config.getCallbackHandler();
             	handler.handle(cb);
             	attrs = cb.getAttributes();
             } else if (config.getCallbackHandlerName() != null

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuerConfig.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuerConfig.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuerConfig.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuerConfig.java Sun Jan 29 15:02:12 2017
@@ -98,7 +98,7 @@ public class SAMLTokenIssuerConfig exten
     protected String issuerName;
     protected Map trustedServices = new HashMap();
     protected String trustStorePropFile;
-    protected SAMLCallbackHandler callbackHander;
+    protected SAMLCallbackHandler callbackHandler;
     protected String callbackHandlerName;
   
     /**
@@ -258,7 +258,7 @@ public class SAMLTokenIssuerConfig exten
 				try {
 					String value = attrElemet.getText();
 					Class handlerClass = Class.forName(value);
-					this.callbackHander = (SAMLCallbackHandler)handlerClass.newInstance();
+					this.callbackHandler = (SAMLCallbackHandler)handlerClass.newInstance();
 				} catch (ClassNotFoundException e) {
 					log.debug("Error loading class" , e);
 					throw new TrustException("Error loading class" , e);
@@ -300,6 +300,9 @@ public class SAMLTokenIssuerConfig exten
         OMElement callbackHandlerName = fac.createOMElement(ATTR_CALLBACK_HANDLER_NAME, configElem);
         callbackHandlerName.setText(this.callbackHandlerName);
         
+        OMElement timeToLive = fac.createOMElement(TTL, configElem);
+        timeToLive.setText(String.valueOf(this.ttl));
+
         configElem.addChild(this.cryptoPropertiesElement);
         
         OMElement keySizeElem = fac.createOMElement(KEY_SIZE, configElem);
@@ -405,12 +408,22 @@ public class SAMLTokenIssuerConfig exten
         return trustedServices;
     }
 
+    @Deprecated
 	public SAMLCallbackHandler getCallbackHander() {
-		return callbackHander;
+		return callbackHandler;
+	}
+
+    @Deprecated
+	public void setCallbackHander(SAMLCallbackHandler callbackHandler) {
+		this.callbackHandler = callbackHandler;
+	}
+	
+	public SAMLCallbackHandler getCallbackHandler() {
+		return callbackHandler;
 	}
 
-	public void setCallbackHander(SAMLCallbackHandler callbackHander) {
-		this.callbackHander = callbackHander;
+	public void setCallbackHandler(SAMLCallbackHandler callbackHandler) {
+		this.callbackHandler = callbackHandler;
 	}
 	
 	public String getCallbackHandlerName() {

Modified: axis/axis2/java/rampart/branches/RAMPART-252/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/pom.xml?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/pom.xml (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/pom.xml Sun Jan 29 15:02:12 2017
@@ -36,10 +36,10 @@
     <mailingLists>
         <mailingList>
             <name>Rampart Developers</name>
-            <subscribe>rampart-dev-subscribe@ws.apache.org</subscribe>
-            <unsubscribe>rampart-dev-unsubscribe@ws.apache.org</unsubscribe>
-            <post>rampart-dev@ws.apache.org</post>
-            <archive>http://mail-archives.apache.org/mod_mbox/ws-rampart-dev/</archive>
+            <subscribe>java-dev-subscribe@axis.apache.org</subscribe>
+            <unsubscribe>java-dev-unsubscribe@axis.apache.org</unsubscribe>
+            <post>java-dev@axis.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/axis-java-dev/</archive>
             <otherArchives>
                 <otherArchive>http://markmail.org/search/list:org.apache.ws.rampart-dev</otherArchive>
             </otherArchives>
@@ -70,29 +70,43 @@
         <developer>
             <name>Davanum Srinivas</name>
             <id>dims</id>
-            <email>dims AT wso2.com</email>
-            <organization>WSO2</organization>
+            <email>dims AT apache.org</email>
+            <organization>IBM</organization>
         </developer>
         <developer>
             <name>Nandana Mihindukulasooriya</name>
             <id>nandana</id>
-            <email>nandana AT wso2.com</email>
-            <organization>WSO2</organization>
+            <email>nandana AT apache.org</email>
+            <organization></organization>
         </developer>
     </developers>
 
     <scm>
         <connection>
-            scm:svn:https://svn.apache.org/repos/asf/webservices/rampart/trunk/java
+            scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/rampart/trunk
         </connection>
         <developerConnection>
-            scm:svn:https://svn.apache.org/repos/asf/webservices/rampart/trunk/java
+            scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/rampart/trunk
         </developerConnection>
-        <url>https://svn.apache.org/repos/asf/webservices/rampart/trunk/java</url>
+        <url>https://svn.apache.org/repos/asf/axis/axis2/java/rampart/trunk</url>
     </scm>
 
 
     <repositories>
+	
+	<repository>
+            <id>wso2-maven2-repository</id>
+            <name>WSO2 Maven2 Repository</name>
+            <url>http://dist.wso2.org/maven2</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+            <releases>
+                <enabled>true</enabled>
+                <updatePolicy>never</updatePolicy>
+                <checksumPolicy>fail</checksumPolicy>
+            </releases>
+        </repository>
 
         <repository>
             <releases>
@@ -166,7 +180,7 @@
 
     <dependencies>
 
-        <!-- Axis2 Dependencies -->
+        <!-- Axis2 and Axiom Dependencies -->
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-kernel</artifactId>
@@ -188,9 +202,13 @@
             <groupId>org.apache.axis2</groupId>
             <artifactId>addressing</artifactId>
             <type>mar</type>
-            <version>${addressing.mar.version}</version>
+            <version>${axis2.version}</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>axiom-dom</artifactId>
+        </dependency>
 
         <!-- Other Rampart Dependencies -->
         <dependency>
@@ -219,20 +237,25 @@
             <version>${xmlsec.version}</version>
         </dependency>
         <dependency>
+            <groupId>opensaml</groupId>
+            <artifactId>opensaml</artifactId>
+            <version>1.1.406</version>
+        </dependency>
+        <dependency>
             <groupId>org.opensaml</groupId>
-            <artifactId>opensaml1</artifactId>
-            <version>1.1</version>
+            <artifactId>opensaml</artifactId>
+            <version>2.2.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-jdk14</artifactId>
+            <version>1.5.2</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.3</version>
         </dependency>
-	<dependency>
-           <groupId>org.opensaml</groupId>
-           <artifactId>opensaml</artifactId>
-           <version>2.2.3</version>
-       </dependency>
-       	<dependency>
-   		<groupId>org.slf4j</groupId>
-   		<artifactId>slf4j-jdk14</artifactId>
-   		<version>1.5.2</version>
-	</dependency>
 
         <dependency>
             <groupId>log4j</groupId>
@@ -277,6 +300,27 @@
 
     </dependencies>
 
+    <dependencyManagement>
+        <dependencies>
+            <!-- Since Rampart depends on DOOM, but axiom-dom is not a transitive
+                 dependency, we need to manage the Axiom version. -->
+            <dependency>
+                <groupId>org.apache.ws.commons.axiom</groupId>
+                <artifactId>axiom-api</artifactId>
+                <version>${axiom.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.ws.commons.axiom</groupId>
+                <artifactId>axiom-impl</artifactId>
+                <version>${axiom.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.ws.commons.axiom</groupId>
+                <artifactId>axiom-dom</artifactId>
+                <version>${axiom.version}</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
 
     <profiles>
         <profile>
@@ -320,34 +364,6 @@
                 <module>modules/distribution</module>
             </modules>
         </profile>
-
-        <profile>
-            <id>axiom-managed</id>
-            <activation>
-                <property>
-                    <name>axiom.version</name>
-                </property>
-            </activation>
-            <dependencyManagement>
-                <dependencies>
-                    <dependency>
-                        <groupId>org.apache.ws.commons.axiom</groupId>
-                        <artifactId>axiom-api</artifactId>
-                        <version>${axiom.version}</version>
-                    </dependency>
-                    <dependency>
-                        <groupId>org.apache.ws.commons.axiom</groupId>
-                        <artifactId>axiom-impl</artifactId>
-                        <version>${axiom.version}</version>
-                    </dependency>
-                    <dependency>
-                        <groupId>org.apache.ws.commons.axiom</groupId>
-                        <artifactId>axiom-dom</artifactId>
-                        <version>${axiom.version}</version>
-                    </dependency>
-                </dependencies>
-            </dependencyManagement>
-        </profile>
     </profiles>
 
     <modules>
@@ -366,10 +382,10 @@
         <rampart.mar.version>SNAPSHOT</rampart.mar.version>
         <rahas.mar.version>SNAPSHOT</rahas.mar.version>
 
-        <axis2.version>SNAPSHOT</axis2.version>
-        <addressing.mar.version>SNAPSHOT</addressing.mar.version>
+        <axis2.version>1.5.3</axis2.version>
+        <axiom.version>1.2.10</axiom.version>
 
-        <wss4j.version>1.5.9</wss4j.version>
+        <wss4j.version>1.5.10</wss4j.version>
 	<xmlsec.version>1.4.2</xmlsec.version>
         <opensaml.version>1.1</opensaml.version>
 

Modified: axis/axis2/java/rampart/branches/RAMPART-252/release-docs/ChangeLog.txt
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/release-docs/ChangeLog.txt?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/release-docs/ChangeLog.txt (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/release-docs/ChangeLog.txt Sun Jan 29 15:02:12 2017
@@ -1,8 +1,73 @@
 This file contains a listing of all Jira issues that have been closed
 for a given release.
 
-Release 1.5
-===========
+Release 1.5.1 - 23 Dec 2010
+===========================
+ 
+** Bug
+    * [RAMPART-316] - commons-lang jar is not available with Axis2 which breaks Sample-08
+    * [RAMPART-315] - Sample-06 is not working in the current trunk
+    * [RAMPART-181] - OptimizePartsConfig does not open namespace tag when serializing the assertion
+    * [RAMPART-186] - Password call back not copied over when the call back is set via a parameter to the axis Service (Secure conversation)
+    * [RAMPART-174] - Rampart module says true to all assertions when canSupportAssertion is called
+    * [RAMPART-202] - RampartEngine throws ClassCastException retrieving SOAPHeaderBlocks
+    * [RAMPART-212] - WSSecurityException: Error in converting SOAP Envelope to Document
+    * [RAMPART-314] - Rampart distribution does not contain OpenSAML 1.1 jars
+    * [RAMPART-198] - Rampart 1.4 assumes WSS10 or WSS11 to be present in the policy
+    * [RAMPART-273] - multiple rampart samples doesn't work
+    * [RAMPART-254] - Public getter/setter setCallbackHander/getCallbackHander mis-spelled [ hander --> handler] in SAMLTokenIssuerConfig
+    * [RAMPART-259] - SAML2TokenIssuer calls DefaultBootstrap.bootstrap() per every request and attribute call back handler not being called
+    * [RAMPART-277] - Rampart ignores token inclusion settings when using the asymmetric security binding
+    * [RAMPART-267] - div class="xleft" does not work
+    * [RAMPART-224] - Error in Rampart configuration schema
+    * [RAMPART-283] - sp:ProtectTokens Assertion Ignored w/ Transport Security Binding
+    * [RAMPART-288] - Supporting Tokens Not Encrypted When Protection Order is Sign Before Encrypting
+    * [RAMPART-300] - Rampart automaticaly tries to load an "Encryption user" if the security policy defines the use of a UsernameToken with a AsymmetricBinding
+    * [RAMPART-225] - SupportingToken UsernameToken is always encrypted
+    * [RAMPART-303] - Incorrect XML Passed to Digest Algorithm when XML Elements Belong to Empty Namespace
+    * [RAMPART-309] - Incorrect XML Passed to Digest Algorithm
+    * [RAMPART-116] - Policy Sample 04 on application scope fails with "Error in key derivation"
+    * [RAMPART-253] - TTL doesn't serialized in to saml-issuer-config from SAMLTokenIssuerConfig
+    * [RAMPART-270] - NPE in RampartMessageData
+    * [RAMPART-274] - renewing a sts token doesn't work
+    * [RAMPART-180] - Wrong NameIdentifier format
+    * [RAMPART-276] - SignedEncryptedElements can incorrectly set the namespace of child xpaths during serialization
+    * [RAMPART-293] - NPE in RampartMessageData prevents fault being returned to service consumer
+    * [RAMPART-308] - All security exceptions reported as wsse:InvalidSecurity
+    * [RAMPART-290] - NullPointerException in RampartEngine.isSecurityFault if the incoming fault message contains an invalid fault code element
+    * [RAMPART-311] - Error AxisFault: A required message part [body] is not signed.
+    * [RAMPART-239] - Axis2: Rampart module should not check the order of WS-Security header tags
+    * [RAMPART-119] - Invalid behavior when empty <sp:SignedParts/> element present in the policy
+    * [RAMPART-310] - Property 'invalidIssuerAddress' missing from error.properties
+    * [RAMPART-154] - org.apache.rahas.client.STSClient.org.apache.rahas.processIssueResponse fails if SamlAssertion is issued.
+    * [RAMPART-130] - MTOM with WS-Security
+    * [RAMPART-97 ] - interop(WSE3.0 + Rampart1.3) Signature varification failed,When request with Non-English Character
+    * [RAMPART-210] - samples/basic/sample11 does not exist in distro rampart-dist-1.4-bin.zip
+    * [RAMPART-22 ] - Exception handling in UsernameTokenProcessor.handleUsernameToken
+    * [RAMPART-111] - Rampart won't send certificate serial + issuer. Only either BinaryToken or Identity, but not always as it should
+    * [RAMPART-187] - Secure conversation clients do not work when the bootstrap policy requires Username Token
+    * [RAMPART-195] - Maven metadata are invalid in official repo preventing the use of rampart in offline mode
+    * [RAMPART-280] - renewToken() does not provide a mechanism to update the token in the token-store
+    * [RAMPART-6  ] - RAMPART : Incoming policy validation of KeyWrap Algorithm.
+    * [RAMPART-7  ] - RAMPART : Incoming policy validation of Bulk Encryption Algorithms.
+    * [RAMPART-266] - Rampart module fails validating signing certificate when security provider is Bouncy Castle
+    * [RAMPART-271] - Build failure in the rampart trunk
+    * [RAMPART-279] - NPE thrown when WS-Trust renew binding implementation
+    * [RAMPART-285] - Interoporability issues in SAML 2.0 implementation
+    * [RAMPART-306] - Rampart Configuration page of the web site should be updated with Crypto Caching configurations
+    * [RAMPART-307] - Spelling error in org.apache.rampart.builder.BindingBuilder - Method getSignatureBuider should be getSignatureBuilder
+    * [RAMPART-206] - RampartUtil.getToken() not setting parent properties on the STS service call resulting in HTTP 401 error
+
+** Improvement
+    * [RAMPART-313] - Improvements to the site axis.apache.org/axis2/java/rampart/
+    * [RAMPART-121] - Handling of KeyStores
+    * [RAMPART-25 ] - Abilty to dynamically set Encryption certificate on client
+    * [RAMPART-258] - A sample is required to demonstrate the SAML 2.0 Token issuing capability in Rampart
+    * [RAMPART-291] - Possible improvements to SAML2TokenIssuer
+    * [RAMPART-265] - Incorrect version references in Rampart 1.4
+
+Release 1.5 01 Feb 2010
+=======================
  
 ** Bug
     * [RAMPART-189] - WS-Security rampart uses wrong token in service response

Modified: axis/axis2/java/rampart/branches/RAMPART-252/release-docs/NOTICE.txt
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/release-docs/NOTICE.txt?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/release-docs/NOTICE.txt (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/release-docs/NOTICE.txt Sun Jan 29 15:02:12 2017
@@ -1,12 +1,9 @@
-   =========================================================================
-   ==  NOTICE file corresponding to the section 4 d of                    ==
-   ==  the Apache License, Version 2.0,                                   ==
-   ==  in this case for the Apache Axis2 distribution.                    ==
-   =========================================================================
+Apache Rampart
+Copyright 2010 The Apache Software Foundation
 
-   This product includes software developed by
-   The Apache Software Foundation (http://www.apache.org/).
+This product includes software developed by
+The Apache Software Foundation (http://www.apache.org/).
 
-   Please read the different LICENSE files present in the lib directory of
-   this distribution.
+Please read the different LICENSE files present in the lib directory of
+this distribution.
 

Modified: axis/axis2/java/rampart/branches/RAMPART-252/release-docs/README.txt
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/release-docs/README.txt?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/release-docs/README.txt (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/release-docs/README.txt Sun Jan 29 15:02:12 2017
@@ -1,43 +1,43 @@
 ======================================================
-Apache Rampart-1.4 build  (April 03, 2008)
+Apache Rampart-1.5.1 build  (Dec 23, 2010)
 
-http://ws.apache.org/axis2/modules/rampart/
+http://axis.apache.org/axis2/java/rampart
 ------------------------------------------------------
 
-___________________
-Contents
-===================
+_______________________________
+Contents of Binary Distribution
+===============================
 
 lib      - This directory contains all the libraries required by rampart
            in addition to the libraries available in the axis2 standard binary 
            release.
 	   
 
-rampart-1.4.mar   - WS-Security and WS-SecureConversation support for Axis2
-rahas-1.4.mar     - STS module - to be used to add STS operations to a service
+rampart-1.5.1.mar   - WS-Security and WS-SecureConversation support for Axis2
+rahas-1.5.1.mar     - STS module - to be used to add STS operations to a service
 
 samples  - This contains samples on using Apache Rampart and configuring
            different components to carryout different WS-Sec* operations.
 
 README.txt - This file
 
-build.xml - Setup file to copy all jars to required places
-
-____________
-Installation
-============
-
-Using Ant
----------
-Run ant script on extracted binary distribution and it will copy the required files to Axis2. You have to set the AXIS2_HOME system variable to point to your Axis2 binary distribution.
-
-Manual Installation
--------------------
-You can copy the required libraries and module files manually. You need copy all the libraries in the lib directory of Rampart binary distribution to Axis2 lib directory and all the module files to in the modules directory of  Rampart binary distribution to Axis2 modules directory.
-
-Axis2 lib directory – AXIS2_HOME/lib (Standard binary distribution ) or axis2/WEB-INF/lib (WAR)
+build.xml - Setup file to copy all jars to required places
+____________
+Installation
+============
+
+Using Ant
+---------
+Run ant script on extracted binary distribution and it will copy the required files to Axis2. You have to set the AXIS2_HOME system variable to point to your Axis2 binary distribution. 
+
+Manual Installation
+-------------------
+You can copy the required libraries and module files manually. You need copy all the libraries in the lib directory of Rampart binary distribution to Axis2 lib directory and all the module files to in the modules directory of  Rampart binary distribution to Axis2 modules directory. 
+
+Axis2 lib directory – AXIS2_HOME/lib (Standard binary distribution ) or axis2/WEB-INF/lib (WAR)
+
+Axis2 modules directory – AXIS2_HOME/repository/modules (Standard binary distribution ) or axis2/WEB-INF/modules (WAR)
 
-Axis2 modules directory – AXIS2_HOME/repository/modules (Standard binary distribution ) or axis2/WEB-INF/modules (WAR)
 
 IMPORTANT: 
 Before you build rampart from source distribution, you need provision for 
@@ -120,7 +120,7 @@ Any problem with this release can be rep
 or in the JIRA issue tracker.
 
 Mailing list subscription:
-    rampart-dev-subscribe@ws.apache.org
+    java-dev-subscribe@axis.apache.org
 
 Jira:
     http://issues.apache.org/jira/browse/RAMPART

Modified: axis/axis2/java/rampart/branches/RAMPART-252/release-docs/release-notes.html
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/release-docs/release-notes.html?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/release-docs/release-notes.html (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/release-docs/release-notes.html Sun Jan 29 15:02:12 2017
@@ -12,30 +12,30 @@
 <body>
 <h1>Apache Rampart Release Notes</h1>
 
-<p>This is the 1.2 release of Apache Rampart.</p>
+<p>This is the 1.5.1 release of Apache Rampart.</p>
 
-<p>Apache Rampart 1.2 is a toolkit that provides implementations of the WS-Sec*
-specifications for Apache Axis 1.2, based on Apache WSS4J 1.5.2 and 
-the Apache AXIOM-DOOM 1.2.4 implementation.</p>
+<p>Apache Rampart 1.5.1 is a toolkit that provides implementations of the WS-Sec*
+specifications for Apache Axis2 1.5.1, based on Apache WSS4J 1.5.10 and 
+the Apache AXIOM-DOOM 1.2.10 implementation.</p>
 
 <b>What is in this release</b>
 
 <p>There are two main Apache Axis2 modules provided with this release.</p> 
 <ul>
-<li>rampart-1.2.mar</li>
+<li>rampart-1.5.1.mar</li>
 This provides support for WS-Security and WS-SecureConversation features.
-<li>rahas-1.2.mar</li>
+<li>rahas-1.5.1.mar</li>
 This module provides the necessary components to enable SecurityTokenService 
 functionality on a service.
 </ul>
 
-<p>Apache Rampart 1.2 uses a configuration model based on WS-Policy 
+<p>Apache Rampart 1.5.1 uses a configuration model based on WS-Policy 
 and WS-Security Policy and it is important to note that Apache Rampart 1.0 style 
 configuration is also available even though being marked as deprecated.
 </p>
 
-<p>Apache Rampart 1.2 can be successfully used with the next Apache Sandesha2 
-release targeted towards Apache Axis2 1.2 to configure 
+<p>Apache Rampart 1.5.1 can be successfully used with the next Apache Sandesha2 1.4
+release targeted towards Apache Axis2 1.5.4 to configure
 WS-SecureConversation + WS-ReliableMessaging scenarios.</p>
 <p>
 The rampart module was successfully tested for interoperability with other
@@ -48,7 +48,9 @@ WS-Security implementations.</p>
 <li>WS - Secure Conversation - February 2005</li>
 <li>WS - Security Policy - 1.1 - July 2005</li>
 <li>WS - Trust - February 2005</li>
-<li>WS - Trust - WS-SX spec - EXPERIMENTAL </li>
+<li>WS - Trust - WS-SX specification</li>
+<li>SAML Specification - 1.1 </li>
+<li>SAML Specification - 2.0 </li>
 </ul>
 
 
@@ -58,17 +60,7 @@ WS-Security implementations.</p>
 
 <p></p>
 
-<p>Apache Rampart team</p>
-
-<p></p>
-
-<p></p>
-
-<p></p>
-
-<p></p>
-
-<p></p>
+<p>Apache Rampart Team</p>
 
 <p></p>
 </body>