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/03/30 14:46:31 UTC
svn commit: r390111 - in /webservices/axis2/trunk/java/modules:
addressing/src/org/apache/axis2/handlers/addressing/ security/src/META-INF/
security/src/org/apache/axis2/security/rahas/
Author: ruchithf
Date: Thu Mar 30 04:46:27 2006
New Revision: 390111
URL: http://svn.apache.org/viewcvs?rev=390111&view=rev
Log:
- Updated the Addressing handlers to use the existing om factory
- Updating Rahas to do the STS call and obtain a SCT and use that SCT to secure the request message
Modified:
webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java
webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
webservices/axis2/trunk/java/modules/security/src/META-INF/rahas-module.xml
webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/RahasConfiguration.java
webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/Receiver.java
webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/STSRequester.java
webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/Sender.java
Modified: webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java?rev=390111&r1=390110&r2=390111&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java Thu Mar 30 04:46:27 2006
@@ -16,14 +16,10 @@
package org.apache.axis2.handlers.addressing;
-import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.soap.SOAP12Constants;
-import org.apache.axiom.soap.SOAPFactory;
-import org.apache.axiom.soap.SOAPFaultReason;
-import org.apache.axiom.soap.SOAPFaultText;
import org.apache.axiom.soap.SOAPHeader;
import org.apache.axiom.soap.SOAPHeaderBlock;
import org.apache.axis2.AxisFault;
@@ -33,10 +29,10 @@
import org.apache.axis2.addressing.RelatesTo;
import org.apache.axis2.client.Options;
import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.i18n.Messages;
import org.apache.axis2.util.Utils;
import javax.xml.namespace.QName;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
@@ -192,16 +188,6 @@
protected abstract void extractToEprReferenceParameters(EndpointReference toEPR, SOAPHeader header);
-
- private void handleNoServiceGroupContextIDCase(MessageContext msgContext) {
- SOAPFactory soapFac = msgContext.isSOAP11() ? OMAbstractFactory.getSOAP11Factory() : OMAbstractFactory.getSOAP12Factory();
- SOAPFaultReason soapFaultReason = soapFac.createSOAPFaultReason(null);
- SOAPFaultText soapFaultText = soapFac.createSOAPFaultText(soapFaultReason);
- soapFaultText.setLang("en");
- soapFaultText.setText(Messages.getMessage("serviceGroupIDNotFound"));
-
- msgContext.setProperty(SOAP12Constants.SOAP_FAULT_REASON_LOCAL_NAME, soapFaultReason);
- }
private void extractRelatesToInformation(SOAPHeaderBlock soapHeaderBlock, String addressingNamespace, Options messageContextOptions) {
Modified: webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java?rev=390111&r1=390110&r2=390111&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java Thu Mar 30 04:46:27 2006
@@ -16,7 +16,6 @@
package org.apache.axis2.handlers.addressing;
-import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMNamespace;
@@ -51,6 +50,8 @@
public void invoke(MessageContext msgContext) throws AxisFault {
+ SOAPFactory factory = (SOAPFactory)msgContext.getEnvelope().getOMFactory();
+
OMNamespace addressingNamespaceObject;
// it should be able to disable addressing by some one.
@@ -90,7 +91,7 @@
if (addressingNamespace == null || "".equals(addressingNamespace)) {
addressingNamespace = Final.WSA_NAMESPACE;
}
- addressingNamespaceObject = OMAbstractFactory.getOMFactory().createOMNamespace(
+ addressingNamespaceObject = factory.createOMNamespace(
addressingNamespace, WSA_DEFAULT_PREFIX);
anonymousURI = addressingNamespace.equals(Final.WSA_NAMESPACE) ? Final.WSA_ANONYMOUS_URL : Submission.WSA_ANONYMOUS_URL;
@@ -101,8 +102,8 @@
// if there is no soap header in the envelope being processed, add one.
if (soapHeader == null) {
- SOAPFactory soapFac = msgContext.isSOAP11() ? OMAbstractFactory.getSOAP11Factory() : OMAbstractFactory.getSOAP12Factory();
- soapHeader = soapFac.createSOAPHeader(envelope);
+// SOAPFactory soapFac = msgContext.isSOAP11() ? OMAbstractFactory.getSOAP11Factory() : OMAbstractFactory.getSOAP12Factory();
+ soapHeader = factory.createSOAPHeader(envelope);
}
// by this time, we definitely have some addressing information to be sent. This is because,
@@ -163,7 +164,7 @@
if (faultyHeaderQName != null && !"".equals(faultyHeaderQName)) {
// add to header
SOAPHeaderBlock faultDetail = envelope.getHeader().addHeaderBlock(Final.FAULT_HEADER_DETAIL, addressingNamespaceObject);
- OMElement probHeaderQName = OMAbstractFactory.getOMFactory().createOMElement(Final.FAULT_HEADER_PROB_HEADER_QNAME, addressingNamespaceObject, faultDetail);
+ OMElement probHeaderQName = envelope.getOMFactory().createOMElement(Final.FAULT_HEADER_PROB_HEADER_QNAME, addressingNamespaceObject, faultDetail);
probHeaderQName.setText(faultyHeaderQName);
String messageID = (String) faultInfo.get(AddressingConstants.WSA_RELATES_TO);
@@ -175,7 +176,7 @@
// add to header
SOAPFault fault = envelope.getBody().getFault();
if (fault != null && fault.getDetail() != null) {
- OMElement probHeaderQName2 = OMAbstractFactory.getOMFactory().createOMElement(Final.FAULT_HEADER_PROB_HEADER_QNAME, addressingNamespaceObject, fault.getDetail());
+ OMElement probHeaderQName2 = envelope.getOMFactory().createOMElement(Final.FAULT_HEADER_PROB_HEADER_QNAME, addressingNamespaceObject, fault.getDetail());
probHeaderQName2.setText(faultyHeaderQName);
}
@@ -290,7 +291,7 @@
SOAPHeaderBlock soapHeaderBlock =
soapEnvelope.getHeader().addHeaderBlock(type, addressingNamespaceObject);
soapHeaderBlock.addChild(
- OMAbstractFactory.getOMFactory().createText(value));
+ soapEnvelope.getOMFactory().createText(value));
return soapHeaderBlock;
}
return null;
@@ -310,7 +311,7 @@
// add epr address
String address = epr.getAddress();
if (!"".equals(address) && address != null) {
- OMElement addressElement = OMAbstractFactory.getOMFactory().createOMElement(EPR_ADDRESS, addressingNamespaceObject, soapHeaderBlock);
+ OMElement addressElement = envelope.getOMFactory().createOMElement(EPR_ADDRESS, addressingNamespaceObject, soapHeaderBlock);
addressElement.setText(address);
}
@@ -318,7 +319,7 @@
Map referenceParameters = epr.getAllReferenceParameters();
if (referenceParameters != null) {
OMElement reference =
- OMAbstractFactory.getOMFactory().createOMElement(
+ envelope.getOMFactory().createOMElement(
EPR_REFERENCE_PARAMETERS,
addressingNamespaceObject, soapHeaderBlock);
processReferenceInformation(referenceParameters, reference);
@@ -337,7 +338,7 @@
ArrayList metaDataList = epr.getMetaData();
if (metaDataList != null) {
OMElement metadata =
- OMAbstractFactory.getOMFactory().createOMElement(
+ envelope.getOMFactory().createOMElement(
Final.WSA_METADATA,
addressingNamespaceObject, soapHeaderBlock);
for (int i = 0; i < metaDataList.size(); i++) {
Modified: webservices/axis2/trunk/java/modules/security/src/META-INF/rahas-module.xml
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/security/src/META-INF/rahas-module.xml?rev=390111&r1=390110&r2=390111&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/META-INF/rahas-module.xml (original)
+++ webservices/axis2/trunk/java/modules/security/src/META-INF/rahas-module.xml Thu Mar 30 04:46:27 2006
@@ -24,10 +24,17 @@
<actionMapping>http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Validate</actionMapping>
<parameter name="token-dispatcher-configuration">
- <issuer class="org.apache.axis2.security.trust.impl.SCTIssuer" default="true">
- <configuration-param>sct-issuer-config</configuration-param>
- <tokenType>http://schemas.xmlsoap.org/ws/2005/02/sc/sct</tokenType>
- </issuer>
+ <token-dispatcher-configuration>
+ <issuer class="org.apache.axis2.security.trust.impl.SCTIssuer" default="true">
+ <configuration>
+ <sct-issuer-config>
+ <proofToken>EncryptedKey</proofToken>
+ <cryptoProperties>sctIssuer.properties</cryptoProperties>
+ </sct-issuer-config>
+ </configuration>
+ <tokenType>http://schemas.xmlsoap.org/ws/2005/02/sc/sct</tokenType>
+ </issuer>
+ </token-dispatcher-configuration>
</parameter>
</operation>
Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/RahasConfiguration.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/RahasConfiguration.java?rev=390111&r1=390110&r2=390111&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/RahasConfiguration.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/RahasConfiguration.java Thu Mar 30 04:46:27 2006
@@ -23,6 +23,7 @@
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.OperationContext;
import org.apache.axis2.description.Parameter;
+import org.apache.axis2.security.trust.SimpleTokenStore;
import org.apache.axis2.security.trust.TokenStorage;
import org.apache.axis2.security.util.Axis2Util;
import org.apache.ws.security.WSSecurityException;
@@ -378,11 +379,15 @@
* @return Returns the tokenStore.
*/
protected TokenStorage getTokenStore() throws Exception {
- if(this.tokenStore == null && this.tokenStoreClass != null) {
- this.tokenStore = (TokenStorage) Class
- .forName(this.tokenStoreClass).newInstance();
- this.msgCtx.getConfigurationContext().setProperty(
- RahasHandlerConstants.TOKEN_STORE_KEY, this.tokenStore);
+ if(this.tokenStore == null) {
+ if(this.tokenStoreClass != null) {
+ this.tokenStore = (TokenStorage) Class
+ .forName(this.tokenStoreClass).newInstance();
+ this.msgCtx.getConfigurationContext().setProperty(
+ RahasHandlerConstants.TOKEN_STORE_KEY, this.tokenStore);
+ } else {
+ this.tokenStore = new SimpleTokenStore();
+ }
}
return tokenStore;
}
Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/Receiver.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/Receiver.java?rev=390111&r1=390110&r2=390111&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/Receiver.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/Receiver.java Thu Mar 30 04:46:27 2006
@@ -21,6 +21,8 @@
import org.apache.axis2.description.HandlerDescription;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.engine.Handler;
+import org.apache.axis2.security.WSDoAllReceiver;
+import org.apache.axis2.security.trust.Constants;
import javax.xml.namespace.QName;
@@ -35,8 +37,13 @@
private HandlerDescription handlerDescription;
public void invoke(MessageContext msgContext) throws AxisFault {
- // TODO TODO
- throw new UnsupportedOperationException("TODO");
+ if(Constants.RST_ACTON_SCT.equals(msgContext.getWSAAction()) ||
+ Constants.RSTR_ACTON_SCT.equals(msgContext.getWSAAction())) {
+ WSDoAllReceiver secReceiver = new WSDoAllReceiver();
+ secReceiver.init(this.handlerDescription);
+ secReceiver.invoke(msgContext);
+ return;
+ }
}
public void cleanup() throws AxisFault {
Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/STSRequester.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/STSRequester.java?rev=390111&r1=390110&r2=390111&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/STSRequester.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/STSRequester.java Thu Mar 30 04:46:27 2006
@@ -19,6 +19,7 @@
import org.apache.axiom.om.OMDocument;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.impl.dom.DOOMAbstractFactory;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
@@ -93,8 +94,8 @@
OMElement tempResult = client.sendReceive(rstQn, builder.getDocumentElement());
- OMElement elem = Axis2Util.toDOOM(((OMDocument) config.getDocument())
- .getOMFactory(), tempResult);
+ OMElement tempelem = Axis2Util.toDOOM(DOOMAbstractFactory.getOMFactory(), tempResult);
+ OMElement elem = (OMElement)config.getDocument().importNode((Element)tempelem, true);
processRSTR(elem, config);
} catch (Exception e) {
@@ -114,6 +115,8 @@
if(sctElem != null) {
SecurityContextToken sct = new SecurityContextToken((Element)sctElem);
token = new Token(sct.getIdentifier(), sctElem);
+ config.setSecurityContextToken(sct);
+ config.setContextIdentifier(sct.getIdentifier());
} else {
throw new RahasException("sctMissingInResponse");
}
Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/Sender.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/Sender.java?rev=390111&r1=390110&r2=390111&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/Sender.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/rahas/Sender.java Thu Mar 30 04:46:27 2006
@@ -17,6 +17,7 @@
package org.apache.axis2.security.rahas;
import org.apache.axiom.om.impl.dom.jaxp.DocumentBuilderFactoryImpl;
+import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.description.HandlerDescription;
@@ -45,8 +46,8 @@
public void invoke(MessageContext msgContext) throws AxisFault {
try {
- System.out.println(msgContext.getWSAAction());
- if(Constants.RST_ACTON_SCT.equals(msgContext.getWSAAction())) {
+ if(Constants.RST_ACTON_SCT.equals(msgContext.getWSAAction()) ||
+ Constants.RSTR_ACTON_SCT.equals(msgContext.getWSAAction())) {
WSDoAllSender secSender = new WSDoAllSender();
secSender.init(this.handlerDescription);
secSender.invoke(msgContext);
@@ -62,6 +63,9 @@
if(sts != null) {
//Use a security token service
STSRequester.issueRequest(config);
+ this.constructMessage(config);
+ msgContext.setEnvelope((SOAPEnvelope) config.getDocument()
+ .getDocumentElement());
} else {
//Create a token
}
@@ -76,6 +80,7 @@
} catch (Exception e) {
+ e.printStackTrace();
if(e instanceof RahasException) {
RahasException re = (RahasException)e;
throw new AxisFault(re.getFaultString(), re.getFaultCode());