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/24 20:46:49 UTC
svn commit: r449457 - in /webservices/axis2/trunk/java/modules:
integration/test/org/apache/rampart/ security/src/org/apache/rampart/
security/src/org/apache/rampart/builder/
security/src/org/apache/rampart/util/ security/test/org/apache/rampart/
Author: ruchithf
Date: Sun Sep 24 11:46:48 2006
New Revision: 449457
URL: http://svn.apache.org/viewvc?view=rev&rev=449457
Log:
Got the asymm sig only test working :-)
Modified:
webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java
webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartEngine.java
webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartMessageData.java
webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/AsymmetricBindingBuilder.java
webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/BindingBuilder.java
webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SymmetricBindingBuilder.java
webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/util/RampartUtil.java
webservices/axis2/trunk/java/modules/security/test/org/apache/rampart/AsymmetricBindingBuilderTest.java
Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java?view=diff&rev=449457&r1=449456&r2=449457
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java Sun Sep 24 11:46:48 2006
@@ -65,7 +65,7 @@
serviceClient.engageModule(new QName("addressing"));
serviceClient.engageModule(new QName("rampart"));
- for (int i = 1; i <= 1; i++) { //<-The number of tests we have
+ for (int i = 1; i <= 2; i++) { //<-The number of tests we have
options.setTo(new EndpointReference("http://127.0.0.1:" + PORT + "/axis2/services/SecureService" + i));
options.setProperty(RampartMessageData.KEY_RAMPART_POLICY, loadPolicy("test-resources/rampart/policy/" + i + ".xml"));
serviceClient.setOptions(options);
Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartEngine.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartEngine.java?view=diff&rev=449457&r1=449456&r2=449457
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartEngine.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartEngine.java Sun Sep 24 11:46:48 2006
@@ -58,8 +58,10 @@
results = engine.processSecurityHeader(rmd.getDocument(),
null,
RampartUtil.getPasswordCB(rmd),
- RampartUtil.getSignatureCrypto(rpd.getRampartConfig()),
- RampartUtil.getEncryptionCrypto(rpd.getRampartConfig()));
+ RampartUtil.getSignatureCrypto(rpd.getRampartConfig(),
+ msgCtx.getAxisService().getClassLoader()),
+ RampartUtil.getEncryptionCrypto(rpd.getRampartConfig(),
+ msgCtx.getAxisService().getClassLoader()));
}
return results;
Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartMessageData.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartMessageData.java?view=diff&rev=449457&r1=449456&r2=449457
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartMessageData.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartMessageData.java Sun Sep 24 11:46:48 2006
@@ -122,6 +122,8 @@
private boolean isClientSide;
private boolean sender;
+
+ private ClassLoader customClassLoader;
public RampartMessageData(MessageContext msgCtx, boolean sender) throws RampartException {
@@ -179,11 +181,12 @@
OMElement policyElem = param.getParameterElement().getFirstElement();
this.servicePolicy = PolicyEngine.getPolicy(policyElem);
}
+
+ //Set the policy in the config ctx
+ msgCtx.getConfigurationContext().setProperty(
+ RampartMessageData.getOperationPolicyKey(msgCtx), this.servicePolicy);
}
- //Set the policy in the config ctx
- msgCtx.getConfigurationContext().setProperty(
- RampartMessageData.getOperationPolicyKey(msgCtx), this.servicePolicy);
}
@@ -211,6 +214,8 @@
this.config = WSSConfig.getDefaultWSConfig();
+ this.customClassLoader = msgCtx.getAxisService().getClassLoader();
+
this.secHeader = new WSSecHeader();
secHeader.insertSecurityHeader(this.document);
@@ -476,7 +481,8 @@
public static String getOperationPolicyKey(MessageContext msgCtx) {
if(msgCtx.getAxisOperation() != null) {
return createPolicyKey(msgCtx.getAxisService().getName(),
- msgCtx.getAxisOperation().getName());
+ msgCtx.getAxisOperation().getName());
+
}
return null;
}
@@ -514,5 +520,9 @@
*/
public boolean isClientSide() {
return isClientSide;
+ }
+
+ public ClassLoader getCustomClassLoader() {
+ return customClassLoader;
}
}
Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/AsymmetricBindingBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/AsymmetricBindingBuilder.java?view=diff&rev=449457&r1=449456&r2=449457
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/AsymmetricBindingBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/AsymmetricBindingBuilder.java Sun Sep 24 11:46:48 2006
@@ -146,7 +146,7 @@
encr.setDocument(doc);
encr.setUserInfo(config.getEncryptionUser());
encr.setSymmetricEncAlgorithm(rpd.getAlgorithmSuite().getEncryption());
- encr.prepare(doc, RampartUtil.getEncryptionCrypto(config));
+ encr.prepare(doc, RampartUtil.getEncryptionCrypto(config, rmd.getCustomClassLoader()));
Element bstElem = encr.getBinarySecurityTokenElement();
if (bstElem != null) {
@@ -324,11 +324,11 @@
}
}
+ Vector encrParts = RampartUtil.getEncryptedParts(rmd);
//Do encryption
Token encrToken = rpd.getRecipientToken();
- if(encrToken != null) {
+ if(encrToken != null && encrParts.size() > 0) {
Element refList = null;
- Vector encrParts = RampartUtil.getEncryptedParts(rmd);
if(encrToken.isDerivedKeys()) {
try {
@@ -371,7 +371,7 @@
encr.setUserInfo(rpd.getRampartConfig().getEncryptionUser());
encr.setSymmetricEncAlgorithm(rpd.getAlgorithmSuite().getEncryption());
encr.prepare(doc, RampartUtil.getEncryptionCrypto(rpd
- .getRampartConfig()));
+ .getRampartConfig(), rmd.getCustomClassLoader()));
this.setInsertionLocation(this.timestampElement);
if(encr.getBSTTokenId() != null) {
@@ -462,12 +462,12 @@
} else {
sig = this.getSignatureBuider(rmd, sigToken);
Element bstElem = sig.getBinarySecurityTokenElement();
- if (Constants.INCLUDE_ALWAYS.equals(sigToken.getInclusion())
- || Constants.INCLUDE_ONCE.equals(sigToken.getInclusion())) {
+ if(bstElem != null) {
bstElem = RampartUtil.insertSiblingAfter(rmd, this
- .getInsertionLocation(), bstElem);
+ .getInsertionLocation(), bstElem);
this.setInsertionLocation(bstElem);
}
+
if (rmd.getPolicyData().isTokenProtection()
&& sig.getBSTTokenId() != null) {
sigParts.add(new WSEncryptionPart(sig.getBSTTokenId()));
Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/BindingBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/BindingBuilder.java?view=diff&rev=449457&r1=449456&r2=449457
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/BindingBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/BindingBuilder.java Sun Sep 24 11:46:48 2006
@@ -180,7 +180,7 @@
encrKey.setKeySize(rpd.getAlgorithmSuite().getMaximumSymmetricKeyLength());
encrKey.setKeyEncAlgo(rpd.getAlgorithmSuite().getAsymmetricKeyWrap());
- encrKey.prepare(doc, RampartUtil.getEncryptionCrypto(rpd.getRampartConfig()));
+ encrKey.prepare(doc, RampartUtil.getEncryptionCrypto(rpd.getRampartConfig(), rmd.getCustomClassLoader()));
return encrKey;
} catch (WSSecurityException e) {
@@ -251,7 +251,8 @@
try {
sig.prepare(rmd.getDocument(), RampartUtil.getSignatureCrypto(rpd
- .getRampartConfig()), rmd.getSecHeader());
+ .getRampartConfig(), rmd.getCustomClassLoader()),
+ rmd.getSecHeader());
} catch (WSSecurityException e) {
throw new RampartException("errorInSignatureWithX509Token", e);
}
Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SymmetricBindingBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SymmetricBindingBuilder.java?view=diff&rev=449457&r1=449456&r2=449457
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SymmetricBindingBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SymmetricBindingBuilder.java Sun Sep 24 11:46:48 2006
@@ -424,7 +424,8 @@
encr.setEphemeralKey(encrTok.getSecret());
encr.setDocument(doc);
- encr.prepare(doc, RampartUtil.getEncryptionCrypto(rpd.getRampartConfig()));
+ encr.prepare(doc, RampartUtil.getEncryptionCrypto(rpd
+ .getRampartConfig(), rmd.getCustomClassLoader()));
//Encrypt, get hold of the ref list and add it
refList = encr.encryptForExternalRef(null, encrParts);
Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/util/RampartUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/util/RampartUtil.java?view=diff&rev=449457&r1=449456&r2=449457
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/util/RampartUtil.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/util/RampartUtil.java Sun Sep 24 11:46:48 2006
@@ -65,6 +65,7 @@
public class RampartUtil {
+ private static final String CRYPTO_PROVIDER = "org.apache.ws.security.crypto.provider";
private static Log log = LogFactory.getLog(RampartUtil.class);
@@ -165,7 +166,7 @@
* @return
* @throws RampartException
*/
- public static Crypto getEncryptionCrypto(RampartConfig config)
+ public static Crypto getEncryptionCrypto(RampartConfig config, ClassLoader loader)
throws RampartException {
log.debug("Loading encryption crypto");
@@ -174,7 +175,8 @@
String provider = cryptoConfig.getProvider();
log.debug("Usig provider: " + provider);
Properties prop = cryptoConfig.getProp();
- return CryptoFactory.getInstance(provider, prop);
+ prop.put(CRYPTO_PROVIDER, provider);
+ return CryptoFactory.getInstance(prop, loader);
} else {
log.debug("Trying the signature crypto info");
//Try using signature crypto infomation
@@ -184,7 +186,8 @@
String provider = cryptoConfig.getProvider();
log.debug("Usig provider: " + provider);
Properties prop = cryptoConfig.getProp();
- return CryptoFactory.getInstance(provider, prop);
+ prop.put(CRYPTO_PROVIDER, provider);
+ return CryptoFactory.getInstance(prop, loader);
} else {
return null;
}
@@ -199,7 +202,7 @@
* @return
* @throws RampartException
*/
- public static Crypto getSignatureCrypto(RampartConfig config)
+ public static Crypto getSignatureCrypto(RampartConfig config, ClassLoader loader)
throws RampartException {
log.debug("Loading Signature crypto");
@@ -208,7 +211,8 @@
String provider = cryptoConfig.getProvider();
log.debug("Usig provider: " + provider);
Properties prop = cryptoConfig.getProp();
- return CryptoFactory.getInstance(provider, prop);
+ prop.put(CRYPTO_PROVIDER, provider);
+ return CryptoFactory.getInstance(prop, loader);
} else {
return null;
}
@@ -412,8 +416,8 @@
client.setRstTemplate(rstTemplate);
// Set crypto information
- Crypto crypto = RampartUtil.getSignatureCrypto(rmd
- .getPolicyData().getRampartConfig());
+ Crypto crypto = RampartUtil.getSignatureCrypto(rmd.getPolicyData().getRampartConfig(),
+ rmd.getMsgContext().getAxisService().getClassLoader());
CallbackHandler cbh = RampartUtil.getPasswordCB(rmd);
client.setCryptoInfo(crypto, cbh);
Modified: webservices/axis2/trunk/java/modules/security/test/org/apache/rampart/AsymmetricBindingBuilderTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/test/org/apache/rampart/AsymmetricBindingBuilderTest.java?view=diff&rev=449457&r1=449456&r2=449457
==============================================================================
--- webservices/axis2/trunk/java/modules/security/test/org/apache/rampart/AsymmetricBindingBuilderTest.java (original)
+++ webservices/axis2/trunk/java/modules/security/test/org/apache/rampart/AsymmetricBindingBuilderTest.java Sun Sep 24 11:46:48 2006
@@ -204,11 +204,12 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
-
+ System.out.println(ctx.getEnvelope());
ArrayList list = new ArrayList();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.ENC_NS, WSConstants.ENC_KEY_LN));
+ list.add(new QName(WSConstants.WSSE_NS, WSConstants.BINARY_TOKEN_LN));
list.add(new QName(WSConstants.SIG_NS, WSConstants.SIG_LN));
this.verifySecHeader(list.iterator(), ctx.getEnvelope());
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org