Author: ruchithf
Date: Sat Jul 14 02:35:56 2007
New Revision: 556251
URL: http://svn.apache.org/viewvc?view=rev&rev=556251
Log:
Fixed a few typos and updated rampart to support latest WSS4J chanegs
Modified:
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/TokenCallbackHandler.java
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/SymmetricBindingBuilder.java
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/TransportBindingBuilder.java
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/errors.properties
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/handler/RampartReceiver.java
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuer.java
Modified:
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java?view=diff&rev=556251&r1=556250&r2=556251
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java
(original)
+++
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java
Sat Jul 14 02:35:56 2007
@@ -16,26 +16,37 @@
package org.apache.rampart;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Vector;
-
-import javax.xml.namespace.QName;
-
+import org.apache.axiom.om.OMElement;
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.soap.SOAPHeaderBlock;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.rahas.Token;
+import org.apache.rahas.TrustException;
import org.apache.rampart.policy.RampartPolicyData;
import org.apache.rampart.util.Axis2Util;
import org.apache.rampart.util.RampartUtil;
import org.apache.ws.secpolicy.WSSPolicyException;
import org.apache.ws.security.WSConstants;
import org.apache.ws.security.WSSecurityEngine;
+import org.apache.ws.security.WSSecurityEngineResult;
import org.apache.ws.security.WSSecurityException;
+import org.apache.ws.security.components.crypto.Crypto;
+import org.apache.ws.security.handler.WSHandlerResult;
+import org.apache.ws.security.saml.SAMLKeyInfo;
+import org.apache.ws.security.saml.SAMLUtil;
import org.apache.ws.security.util.WSSecurityUtil;
+import org.opensaml.SAMLAssertion;
+import org.opensaml.SAMLException;
+
+import javax.xml.namespace.QName;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.Vector;
public class RampartEngine {
@@ -98,7 +109,10 @@
String actorValue = secHeader.getAttributeValue(new QName(rmd
.getSoapConstants().getEnvelopeURI(), "actor"));
- if(rpd.isSymmetricBinding()) {
+ Crypto signatureCrypto =
RampartUtil.getSignatureCrypto(rpd.getRampartConfig(),
+ msgCtx.getAxisService().getClassLoader());
+ TokenCallbackHandler tokenCallbackHandler = new
TokenCallbackHandler(rmd.getTokenStorage(), RampartUtil.getPasswordCB(rmd));
+ if(rpd.isSymmetricBinding()) {
//Here we have to create the CB handler to get the
tokens from the
//token storage
if(doDebug){
@@ -107,18 +121,16 @@
results =
engine.processSecurityHeader(rmd.getDocument(),
actorValue,
- new
TokenCallbackHandler(rmd.getTokenStorage(), RampartUtil.getPasswordCB(rmd)),
-
RampartUtil.getSignatureCrypto(rpd.getRampartConfig(),
-
msgCtx.getAxisService().getClassLoader()));
+ tokenCallbackHandler,
+ signatureCrypto);
} else {
if(doDebug){
log.debug("Processing security header in normal
path");
}
results =
engine.processSecurityHeader(rmd.getDocument(),
actorValue,
- new
TokenCallbackHandler(rmd.getTokenStorage(), RampartUtil.getPasswordCB(rmd)),
-
RampartUtil.getSignatureCrypto(rpd.getRampartConfig(),
-
msgCtx.getAxisService().getClassLoader()),
+ tokenCallbackHandler,
+ signatureCrypto,
RampartUtil.getEncryptionCrypto(rpd.getRampartConfig(),
msgCtx.getAxisService().getClassLoader()));
}
@@ -127,6 +139,36 @@
t1 = System.currentTimeMillis();
}
+ //Store symm tokens
+ //Pick the first SAML token
+ //TODO : This is a hack , MUST FIX
+ //get the sec context id from the req msg ctx
+
+ for (int j = 0; j < results.size(); j++) {
+ WSSecurityEngineResult wser = (WSSecurityEngineResult)
results.get(j);
+ final Integer actInt =
+ (Integer)wser.get(WSSecurityEngineResult.TAG_ACTION);
+ if(WSConstants.ST_UNSIGNED == actInt.intValue()) {
+ final SAMLAssertion assertion =
+ ((SAMLAssertion) wser
+ .get(WSSecurityEngineResult.TAG_SAML_ASSERTION));
+ String id = assertion.getId();
+ Date created = assertion.getNotBefore();
+ Date expires = assertion.getNotOnOrAfter();
+ SAMLKeyInfo samlKi = SAMLUtil.getSAMLKeyInfo(assertion,
+ signatureCrypto, tokenCallbackHandler);
+ try {
+ Token token = new Token(id, (OMElement)assertion.toDOM(),
created, expires);
+ token.setSecret(samlKi.getSecret());
+ rmd.getTokenStorage().add(token);
+ } catch (Exception e) {
+ throw new RampartException(
+ "errorInAddingTokenIntoStore", e);
+ }
+
+ }
+
+ }
SOAPEnvelope env =
Axis2Util.getSOAPEnvelopeFromDOMDocument(rmd.getDocument(), true);
Modified:
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java?view=diff&rev=556251&r1=556250&r2=556251
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
(original)
+++
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
Sat Jul 14 02:35:56 2007
@@ -49,6 +49,7 @@
import org.apache.ws.security.message.token.SecurityContextToken;
import org.apache.ws.security.util.Loader;
import org.apache.ws.security.util.WSSecurityUtil;
+import org.opensaml.SAMLAssertion;
import org.w3c.dom.Document;
import java.util.List;
@@ -429,7 +430,33 @@
* @return Returns the issuedSignatureTokenId.
*/
public String getIssuedSignatureTokenId() {
- return issuedSignatureTokenId;
+ if(this.isInitiator) {
+ return issuedSignatureTokenId;
+ } else {
+ //Pick the first SAML token
+ //TODO : This is a hack , MUST FIX
+ //get the sec context id from the req msg ctx
+ Vector results =
(Vector)this.msgContext.getProperty(WSHandlerConstants.RECV_RESULTS);
+ for (int i = 0; i < results.size(); i++) {
+ WSHandlerResult rResult = (WSHandlerResult) results.get(i);
+ Vector wsSecEngineResults = rResult.getResults();
+
+ for (int j = 0; j < wsSecEngineResults.size(); j++) {
+ WSSecurityEngineResult wser = (WSSecurityEngineResult)
wsSecEngineResults
+ .get(j);
+ final Integer actInt =
+ (Integer)wser.get(WSSecurityEngineResult.TAG_ACTION);
+ if(WSConstants.ST_UNSIGNED == actInt.intValue()) {
+ final SAMLAssertion assertion =
+ ((SAMLAssertion) wser
+
.get(WSSecurityEngineResult.TAG_SAML_ASSERTION));
+ return assertion.getId();
+ }
+
+ }
+ }
+ return null;
+ }
}
/**
Modified:
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/TokenCallbackHandler.java
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/TokenCallbackHandler.java?view=diff&rev=556251&r1=556250&r2=556251
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/TokenCallbackHandler.java
(original)
+++
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/TokenCallbackHandler.java
Sat Jul 14 02:35:56 2007
@@ -19,6 +19,7 @@
import org.apache.rahas.Token;
import org.apache.rahas.TokenStorage;
import org.apache.ws.security.WSPasswordCallback;
+import org.w3c.dom.Element;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
@@ -44,7 +45,8 @@
if (callbacks[i] instanceof WSPasswordCallback) {
WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];
- if(pc.getUsage() == WSPasswordCallback.SECURITY_CONTEXT_TOKEN
&&
+ if((pc.getUsage() == WSPasswordCallback.SECURITY_CONTEXT_TOKEN
||
+ pc.getUsage() == WSPasswordCallback.CUSTOM_TOKEN) &&
this.store != null) {
String id = pc.getIdentifer();
Token tok;
@@ -54,6 +56,7 @@
if(tok != null) {
//Get the secret and set it in the callback object
pc.setKey(tok.getSecret());
+ pc.setCustomToken((Element)tok.getToken());
}
} catch (Exception e) {
e.printStackTrace();
Modified:
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java?view=diff&rev=556251&r1=556250&r2=556251
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java
(original)
+++
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java
Sat Jul 14 02:35:56 2007
@@ -542,8 +542,38 @@
"errorInDerivedKeyTokenSignature", e);
}
} else {
- //TODO : Example SAMLTOken Signature
- throw new UnsupportedOperationException("TODO");
+ try {
+ WSSecSignature sig = new WSSecSignature();
+ sig.setWsConfig(rmd.getConfig());
+ sig.setCustomTokenId(tok.getId());
+ sig.setCustomTokenValueType(WSConstants.WSS_SAML_NS +
+ WSConstants.SAML_ASSERTION_ID);
+ sig.setSecretKey(tok.getSecret());
+
sig.setSignatureAlgorithm(rpd.getAlgorithmSuite().getAsymmetricSignature());
+
sig.setSignatureAlgorithm(rpd.getAlgorithmSuite().getSymmetricSignature());
+ sig.setKeyIdentifierType(WSConstants.CUSTOM_SYMM_SIGNING);
+ sig.prepare(rmd.getDocument(),
RampartUtil.getSignatureCrypto(rpd
+ .getRampartConfig(), rmd.getCustomClassLoader()),
+ rmd.getSecHeader());
+
+ sig.setParts(sigParts);
+ sig.addReferencesToSign(sigParts, rmd.getSecHeader());
+
+ //Do signature
+ sig.computeSignature();
+
+
+ this.setInsertionLocation(RampartUtil.insertSiblingAfter(
+ rmd,
+ this.getInsertionLocation(),
+ sig.getSignatureElement()));
+
+ return sig.getSignatureValue();
+
+ } catch (WSSecurityException e) {
+ throw new RampartException("errorInSignatureWithACustomToken",
e);
+ }
+
}
}
Modified:
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/SymmetricBindingBuilder.java
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/SymmetricBindingBuilder.java?view=diff&rev=556251&r1=556250&r2=556251
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/SymmetricBindingBuilder.java
(original)
+++
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/SymmetricBindingBuilder.java
Sat Jul 14 02:35:56 2007
@@ -512,19 +512,26 @@
WSSecEncrypt encr = new WSSecEncrypt();
encr.setWsConfig(rmd.getConfig());
-
+ encr.setEncKeyId(encrTokId);
encr.setEphemeralKey(encrTok.getSecret());
RampartUtil.setEncryptionUser(rmd, encr);
encr.setDocument(doc);
+ encr.setEncryptSymmKey(false);
encr.prepare(doc, RampartUtil.getEncryptionCrypto(rpd
.getRampartConfig(), rmd.getCustomClassLoader()));
//Encrypt, get hold of the ref list and add it
refList = encr.encryptForExternalRef(null, encrParts);
- RampartUtil.insertSiblingAfter(rmd,
+ if(encrTokElem != null) {
+ RampartUtil.insertSiblingAfter(rmd,
encrTokElem,
refList);
+ } else {
+ RampartUtil.insertSiblingAfter(rmd,
+ this.timestampElement,
+ refList);
+ }
} catch (WSSecurityException e) {
throw new RampartException("errorInEncryption", e);
}
@@ -594,7 +601,7 @@
MessageContext msgContext = rmd.getMsgContext();
if(rpd.isSymmetricBinding() && !msgContext.isServerSide()) {
- log.debug("Procesing symmentric binding: " +
+ log.debug("Processing symmetric binding: " +
"Setting up encryption token and signature token");
//Setting up encryption token and signature token
@@ -612,7 +619,6 @@
String id = RampartUtil.getIssuedToken(rmd,
issuedToken);
rmd.setIssuedSignatureTokenId(id);
-
}
Modified:
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/TransportBindingBuilder.java
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/TransportBindingBuilder.java?view=diff&rev=556251&r1=556250&r2=556251
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/TransportBindingBuilder.java
(original)
+++
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/TransportBindingBuilder.java
Sat Jul 14 02:35:56 2007
@@ -98,9 +98,6 @@
//Add the UT
utBuilder.appendToHeader(rmd.getSecHeader());
- } else if(token instanceof IssuedToken) {
- //TODO Handle issued token
-
} else {
throw new
RampartException("unsupportedSignedSupportingToken",
new String[]{"{"
+token.getName().getNamespaceURI()
@@ -299,8 +296,18 @@
tokenIncluded = true;
}
-
- //check for dirived keys
+
+ Vector sigParts = new Vector();
+
+ if(this.timestampElement != null){
+ sigParts.add(new WSEncryptionPart(rmd.getTimestampId()));
+ }
+
+ if(rpd.isTokenProtection() && tokenIncluded) {
+ sigParts.add(new WSEncryptionPart(id));
+ }
+
+ //check for derived keys
if(token.isDerivedKeys()) {
//Create a derived key and add
try {
@@ -327,16 +334,6 @@
dkSign.appendDKElementToHeader(rmd.getSecHeader());
- Vector sigParts = new Vector();
-
- if(this.timestampElement != null){
- sigParts.add(new WSEncryptionPart(rmd.getTimestampId()));
- }
-
- if(rpd.isTokenProtection() && tokenIncluded) {
- sigParts.add(new WSEncryptionPart(id));
- }
-
dkSign.setParts(sigParts);
dkSign.addReferencesToSign(sigParts, rmd.getSecHeader());
@@ -357,8 +354,44 @@
}
} else {
- //TODO: Do signature withtout derived keys with the Issuedtoken ??
- return null;
+ try {
+ WSSecSignature sig = new WSSecSignature();
+ sig.setWsConfig(rmd.getConfig());
+ sig.setCustomTokenId(tok.getId().substring(1));
+ sig.setCustomTokenValueType(WSConstants.WSS_SAML_NS +
+ WSConstants.SAML_ASSERTION_ID);
+ sig.setSecretKey(tok.getSecret());
+
sig.setSignatureAlgorithm(rpd.getAlgorithmSuite().getAsymmetricSignature());
+
sig.setSignatureAlgorithm(rpd.getAlgorithmSuite().getSymmetricSignature());
+ sig.setKeyIdentifierType(WSConstants.CUSTOM_SYMM_SIGNING);
+ sig.prepare(rmd.getDocument(),
RampartUtil.getSignatureCrypto(rpd
+ .getRampartConfig(), rmd.getCustomClassLoader()),
+ rmd.getSecHeader());
+
+ sig.setParts(sigParts);
+ sig.addReferencesToSign(sigParts, rmd.getSecHeader());
+
+ //Do signature
+ sig.computeSignature();
+
+ //Add elements to header
+ Element tokElem =
(Element)doc.importNode((Element)tok.getToken(), true);
+
+ this.setInsertionLocation(RampartUtil
+ .insertSiblingAfter(rmd,
+ this.getInsertionLocation(),
+ tokElem));
+
+ this.setInsertionLocation(RampartUtil.insertSiblingAfter(
+ rmd,
+ this.getInsertionLocation(),
+ sig.getSignatureElement()));
+
+ return sig.getSignatureValue();
+
+ } catch (WSSecurityException e) {
+ throw new RampartException("errorInSignatureWithACustomToken",
e);
+ }
}
}
}
Modified:
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/errors.properties
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/errors.properties?view=diff&rev=556251&r1=556250&r2=556251
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/errors.properties
(original)
+++
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/errors.properties
Sat Jul 14 02:35:56 2007
@@ -40,6 +40,7 @@
errorInAddingTokenIntoStore = Error in adding token into store
errorInDerivedKeyTokenSignature = Error in DerivedKeyToken signature
errorInSignatureWithX509Token = Error in signature with X509Token
+errorInSignatureWithACustomToken = Error in signature with a custom token
errorCreatingEncryptedKey = Error in creating an encrypted key
errorGettingSignatureValuesForSigconf = Error in getting signature values for
signature confirmation
cannotLoadPWCBClass = Cannot load password callback class: {0}
Modified:
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/handler/RampartReceiver.java
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/handler/RampartReceiver.java?view=diff&rev=556251&r1=556250&r2=556251
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/handler/RampartReceiver.java
(original)
+++
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/handler/RampartReceiver.java
Sat Jul 14 02:35:56 2007
@@ -70,9 +70,9 @@
if (!msgContext.isEngaged(WSSHandlerConstants.SECURITY_MODULE_NAME)) {
return InvocationResponse.CONTINUE;
}
-
+ System.out.println("Received MEssage: \n" + msgContext.getEnvelope() +
"\n\n");
if(mlog.isDebugEnabled()){
- mlog.debug("*********************** RampartReceiver recieved
\n"+msgContext.getEnvelope());
+ mlog.debug("*********************** RampartReceiver received
\n"+msgContext.getEnvelope());
}
RampartEngine engine = new RampartEngine();
Modified:
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java?view=diff&rev=556251&r1=556250&r2=556251
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
(original)
+++
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
Sat Jul 14 02:35:56 2007
@@ -462,40 +462,49 @@
String issuerEpr, String action, Policy issuerPolicy) throws
RampartException {
try {
- Axis2Util.useDOOM(false);
-
- STSClient client = new STSClient(rmd.getMsgContext()
- .getConfigurationContext());
- // Set request action
- client.setAction(action);
-
- client.setRstTemplate(rstTemplate);
+ //First check whether the user has provided the token
+ MessageContext msgContext = rmd.getMsgContext();
+ String customTokeId = (String) msgContext
+ .getProperty(RampartMessageData.KEY_CUSTOM_ISSUED_TOKEN);
+ if(customTokeId != null) {
+ return customTokeId;
+ } else {
- // Set crypto information
- Crypto crypto =
RampartUtil.getSignatureCrypto(rmd.getPolicyData().getRampartConfig(),
- rmd.getMsgContext().getAxisService().getClassLoader());
- CallbackHandler cbh = RampartUtil.getPasswordCB(rmd);
- client.setCryptoInfo(crypto, cbh);
-
- // Get service policy
- Policy servicePolicy = rmd.getServicePolicy();
-
- // Get service epr
- String servceEprAddress = rmd.getMsgContext()
- .getOptions().getTo().getAddress();
-
- //Make the request
- org.apache.rahas.Token rst =
- client.requestSecurityToken(servicePolicy,
- issuerEpr,
- issuerPolicy,
- servceEprAddress);
-
- //Add the token to token storage
- rst.setState(Token.ISSUED);
- rmd.getTokenStorage().add(rst);
- Axis2Util.useDOOM(true);
- return rst.getId();
+ Axis2Util.useDOOM(false);
+
+ STSClient client = new STSClient(rmd.getMsgContext()
+ .getConfigurationContext());
+ // Set request action
+ client.setAction(action);
+
+ client.setRstTemplate(rstTemplate);
+
+ // Set crypto information
+ Crypto crypto =
RampartUtil.getSignatureCrypto(rmd.getPolicyData().getRampartConfig(),
+ rmd.getMsgContext().getAxisService().getClassLoader());
+ CallbackHandler cbh = RampartUtil.getPasswordCB(rmd);
+ client.setCryptoInfo(crypto, cbh);
+
+ // Get service policy
+ Policy servicePolicy = rmd.getServicePolicy();
+
+ // Get service epr
+ String servceEprAddress = rmd.getMsgContext()
+ .getOptions().getTo().getAddress();
+
+ //Make the request
+ org.apache.rahas.Token rst =
+ client.requestSecurityToken(servicePolicy,
+ issuerEpr,
+ issuerPolicy,
+ servceEprAddress);
+
+ //Add the token to token storage
+ rst.setState(Token.ISSUED);
+ rmd.getTokenStorage().add(rst);
+ Axis2Util.useDOOM(true);
+ return rst.getId();
+ }
} catch (Exception e) {
throw new RampartException("errorInObtainingToken", e);
}
Modified:
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java?view=diff&rev=556251&r1=556250&r2=556251
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java
(original)
+++
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java
Sat Jul 14 02:35:56 2007
@@ -140,7 +140,7 @@
*
* @param issuerAddress
* @param tokenId
- * @return true is the Token was successfully cancelled. False otherwise.
+ * @return true is the Token was successfully canceled. False otherwise.
* @throws TrustException
*/
public boolean cancelToken(String issuerAddress,
@@ -364,7 +364,8 @@
return null;
}
- if (child.getQName().equals(new QName(WSConstants.SIG_NS, "KeyInfo")))
{
+ if (child.getQName().equals(new QName(WSConstants.SIG_NS, "KeyInfo"))
||
+ child.getQName().equals(new QName(WSConstants.WSSE_NS,
"KeyIdentifier"))) {
return child.getText();
} else if(child.getQName().equals(Reference.TOKEN)) {
return child.getAttributeValue(new QName("URI"));
Modified:
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuer.java
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuer.java?view=diff&rev=556251&r1=556250&r2=556251
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuer.java
(original)
+++
webservices/rampart/trunk/java/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAMLTokenIssuer.java
Sat Jul 14 02:35:56 2007
@@ -375,19 +375,21 @@
*/
private X509Certificate getServiceCert(SAMLTokenIssuerConfig config,
Crypto crypto, String serviceAddress) throws WSSecurityException {
-
- if (serviceAddress != null && !"".equals(serviceAddress)) {
- String alias = (String) config.trustedServices.get(serviceAddress);
- if (alias != null) {
- return crypto.getCertificates(alias)[0];
- } else {
- alias = (String) config.trustedServices.get("*");
- return crypto.getCertificates(alias)[0];
- }
- } else {
- String alias = (String) config.trustedServices.get("*");
- return crypto.getCertificates(alias)[0];
- }
+
+ return crypto.getCertificates("bob")[0];
+//
+// if (serviceAddress != null && !"".equals(serviceAddress)) {
+// String alias = (String)
config.trustedServices.get(serviceAddress);
+// if (alias != null) {
+// return crypto.getCertificates(alias)[0];
+// } else {
+// alias = (String) config.trustedServices.get("*");
+// return crypto.getCertificates(alias)[0];
+// }
+// } else {
+// String alias = (String) config.trustedServices.get("*");
+// return crypto.getCertificates(alias)[0];
+// }
}