You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ru...@apache.org on 2006/09/01 11:24:40 UTC

svn commit: r439246 - in /webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder: ./ EncryptionBuilder.java SignatureBuilder.java TimestampBuilder.java

Author: ruchithf
Date: Fri Sep  1 02:24:39 2006
New Revision: 439246

URL: http://svn.apache.org/viewvc?rev=439246&view=rev
Log:
Oops ... missed the builder package

Added:
    webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/
    webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/EncryptionBuilder.java
    webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SignatureBuilder.java
    webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/TimestampBuilder.java

Added: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/EncryptionBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/EncryptionBuilder.java?rev=439246&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/EncryptionBuilder.java (added)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/EncryptionBuilder.java Fri Sep  1 02:24:39 2006
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2004,2005 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.rampart.builder;
+
+import org.apache.rampart.RampartException;
+import org.apache.rampart.RampartMessageData;
+
+/**
+ *
+ */
+public class EncryptionBuilder {
+    
+    public void build(RampartMessageData messageData) throws RampartException {
+        //TODO
+    }
+}

Added: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SignatureBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SignatureBuilder.java?rev=439246&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SignatureBuilder.java (added)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SignatureBuilder.java Fri Sep  1 02:24:39 2006
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2004,2005 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.rampart.builder;
+
+import org.apache.axis2.context.MessageContext;
+import org.apache.rampart.RampartException;
+import org.apache.rampart.RampartMessageData;
+import org.apache.rampart.util.RampartUtil;
+import org.apache.ws.secpolicy.model.Token;
+import org.apache.ws.secpolicy.model.X509Token;
+import org.apache.ws.security.WSPasswordCallback;
+import org.apache.ws.security.handler.WSHandlerConstants;
+import org.apache.ws.security.message.WSSecDKSign;
+import org.apache.ws.security.message.WSSecSignature;
+
+import javax.security.auth.callback.CallbackHandler;
+
+/**
+ *
+ */
+public class SignatureBuilder {
+
+    public void build(RampartMessageData messageData) throws RampartException {
+        
+        Token initiatorToken = messageData.getPolicyData().getInitiatorToken();
+        
+        //TODO:Handle different initiator token types here
+        
+        //Create message
+        if(!initiatorToken.isDerivedKeys() && initiatorToken instanceof X509Token ) {
+            WSSecSignature wsSign = new WSSecSignature();
+            wsSign.setWsConfig(messageData.getConfig());
+    
+            int keyIdentifier = RampartUtil.getKeyIdentifier((X509Token)initiatorToken);
+            if (keyIdentifier != 0) {
+                wsSign.setKeyIdentifierType(keyIdentifier);
+            }
+            String asymmSignature = messageData.getPolicyData()
+                    .getAlgorithmSuite().getAsymmetricSignature();
+            
+            if (asymmSignature != null) {
+                wsSign.setSignatureAlgorithm(asymmSignature);
+            }
+    
+            MessageContext msgCtx = messageData.getMsgContext();
+            
+            CallbackHandler handler = RampartUtil.getPasswordCB(msgCtx
+                    .getAxisService().getClassLoader(), messageData
+                    .getPolicyData().getRampartConfig().getPwCbClass());
+            
+            if(handler == null) {
+                //If not found then try to find a call back handler instance located in the message context
+                
+                handler = (CallbackHandler)msgCtx.getProperty(WSHandlerConstants.PW_CALLBACK_REF);
+            }
+            
+            if(handler == null) {
+                throw new RampartException("missingCallbackHandler");
+            }
+            
+            String user = messageData.getPolicyData().getRampartConfig()
+                    .getUser();
+            wsSign.setUserInfo(user, RampartUtil.performCallback(handler, user,
+                    WSPasswordCallback.SIGNATURE).getPassword());
+            
+            if (messageData.getSignatureParts().size() > 0) {
+                wsSign.setParts(messageData.getSignatureParts());
+            }
+        } else {
+            WSSecDKSign dkSig = new WSSecDKSign();
+            //TODO: Handle derieved key signature
+            
+        }
+    }
+
+}

Added: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/TimestampBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/TimestampBuilder.java?rev=439246&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/TimestampBuilder.java (added)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/TimestampBuilder.java Fri Sep  1 02:24:39 2006
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2004,2005 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.rampart.builder;
+
+import org.apache.rampart.RampartException;
+import org.apache.rampart.RampartMessageData;
+import org.apache.ws.security.message.WSSecTimestamp;
+
+/**
+ *
+ */
+public class TimestampBuilder {
+
+    public void build(RampartMessageData messageData) throws RampartException {
+        WSSecTimestamp timeStampBuilder = new WSSecTimestamp();
+        timeStampBuilder.setWsConfig(messageData.getConfig());
+
+        timeStampBuilder.setTimeToLive(getTimeToLive(messageData));
+        // add the Timestamp to the SOAP Enevelope
+        timeStampBuilder.build(messageData.getDocument(), messageData
+                .getSecHeader());
+    }
+
+    private int getTimeToLive(RampartMessageData messageData) {
+
+        String ttl = messageData.getPolicyData().getRampartConfig()
+                .getTimestampTTL();
+        int ttl_i = 0;
+        if (ttl != null) {
+            try {
+                ttl_i = Integer.parseInt(ttl);
+            } catch (NumberFormatException e) {
+                ttl_i = messageData.getTimeToLive();
+            }
+        }
+        if (ttl_i <= 0) {
+            ttl_i = messageData.getTimeToLive();
+        }
+        return ttl_i;
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org