Return-Path: X-Original-To: apmail-cxf-commits-archive@www.apache.org Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 87FB118D90 for ; Thu, 4 Feb 2016 15:32:22 +0000 (UTC) Received: (qmail 77019 invoked by uid 500); 4 Feb 2016 15:32:22 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 76776 invoked by uid 500); 4 Feb 2016 15:32:22 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 76633 invoked by uid 99); 4 Feb 2016 15:32:22 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 Feb 2016 15:32:22 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id A8E1FDFC90; Thu, 4 Feb 2016 15:32:21 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: coheigea@apache.org To: commits@cxf.apache.org Date: Thu, 04 Feb 2016 15:32:23 -0000 Message-Id: <768c508e673e43c0b4595489e642fe0d@git.apache.org> In-Reply-To: <50a101ef40924abebfcea4d0db728956@git.apache.org> References: <50a101ef40924abebfcea4d0db728956@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [3/6] cxf git commit: Strip WebServiceContext from the RequestParser + RealmParser Strip WebServiceContext from the RequestParser + RealmParser Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/aafbcde5 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/aafbcde5 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/aafbcde5 Branch: refs/heads/3.1.x-fixes Commit: aafbcde58a0ef31e76bd4444b99592ef685456a7 Parents: da40221 Author: Colm O hEigeartaigh Authored: Tue Feb 2 15:33:22 2016 +0000 Committer: Colm O hEigeartaigh Committed: Thu Feb 4 14:44:07 2016 +0000 ---------------------------------------------------------------------- .../java/org/apache/cxf/sts/RealmParser.java | 6 ++-- .../cxf/sts/operation/AbstractOperation.java | 5 +-- .../cxf/sts/operation/TokenRenewOperation.java | 2 +- .../sts/operation/TokenValidateOperation.java | 2 +- .../apache/cxf/sts/request/RequestParser.java | 32 +++++++++----------- .../cxf/sts/operation/CustomRealmParser.java | 6 ++-- .../cxf/sts/request/RequestParserUnitTest.java | 10 ++---- .../cxf/systest/sts/realms/URLRealmParser.java | 6 ++-- .../cxf/systest/sts/common/UriRealmParser.java | 7 ++--- 9 files changed, 34 insertions(+), 42 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/aafbcde5/services/sts/sts-core/src/main/java/org/apache/cxf/sts/RealmParser.java ---------------------------------------------------------------------- diff --git a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/RealmParser.java b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/RealmParser.java index 75a3a4a..a597ea4 100644 --- a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/RealmParser.java +++ b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/RealmParser.java @@ -18,7 +18,7 @@ */ package org.apache.cxf.sts; -import javax.xml.ws.WebServiceContext; +import java.util.Map; import org.apache.cxf.ws.security.sts.provider.STSException; @@ -28,8 +28,8 @@ import org.apache.cxf.ws.security.sts.provider.STSException; public interface RealmParser { /** - * Return the realm of the current request given a WebServiceContext object + * Return the realm of the current request given a message context map */ - String parseRealm(WebServiceContext context) throws STSException; + String parseRealm(Map messageContext) throws STSException; } http://git-wip-us.apache.org/repos/asf/cxf/blob/aafbcde5/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/AbstractOperation.java ---------------------------------------------------------------------- diff --git a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/AbstractOperation.java b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/AbstractOperation.java index b6a827b..c88471e 100644 --- a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/AbstractOperation.java +++ b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/AbstractOperation.java @@ -181,7 +181,8 @@ public abstract class AbstractOperation { stsProperties.configureProperties(); RequestParser requestParser = new RequestParser(); - return requestParser.parseRequest(request, context, stsProperties, claimsManager.getClaimParsers()); + return requestParser.parseRequest(request, context.getMessageContext(), stsProperties, + claimsManager.getClaimParsers()); } /** @@ -407,7 +408,7 @@ public abstract class AbstractOperation { // Get the realm of the request if (stsProperties.getRealmParser() != null) { RealmParser realmParser = stsProperties.getRealmParser(); - String realm = realmParser.parseRealm(context); + String realm = realmParser.parseRealm(context.getMessageContext()); providerParameters.setRealm(realm); } http://git-wip-us.apache.org/repos/asf/cxf/blob/aafbcde5/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/TokenRenewOperation.java ---------------------------------------------------------------------- diff --git a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/TokenRenewOperation.java b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/TokenRenewOperation.java index 312631d..c0da0a8 100644 --- a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/TokenRenewOperation.java +++ b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/TokenRenewOperation.java @@ -105,7 +105,7 @@ public class TokenRenewOperation extends AbstractOperation implements RenewOpera String realm = null; if (stsProperties.getRealmParser() != null) { RealmParser realmParser = stsProperties.getRealmParser(); - realm = realmParser.parseRealm(context); + realm = realmParser.parseRealm(context.getMessageContext()); } renewerParameters.setRealm(realm); http://git-wip-us.apache.org/repos/asf/cxf/blob/aafbcde5/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/TokenValidateOperation.java ---------------------------------------------------------------------- diff --git a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/TokenValidateOperation.java b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/TokenValidateOperation.java index e84fe2e..49cfb74 100644 --- a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/TokenValidateOperation.java +++ b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/TokenValidateOperation.java @@ -101,7 +101,7 @@ public class TokenValidateOperation extends AbstractOperation implements Validat String realm = null; if (stsProperties.getRealmParser() != null) { RealmParser realmParser = stsProperties.getRealmParser(); - realm = realmParser.parseRealm(context); + realm = realmParser.parseRealm(context.getMessageContext()); } validatorParameters.setRealm(realm); http://git-wip-us.apache.org/repos/asf/cxf/blob/aafbcde5/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/RequestParser.java ---------------------------------------------------------------------- diff --git a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/RequestParser.java b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/RequestParser.java index ae1441e..d3e58d5 100644 --- a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/RequestParser.java +++ b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/RequestParser.java @@ -30,6 +30,7 @@ import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; @@ -40,8 +41,6 @@ import javax.xml.crypto.dsig.keyinfo.KeyInfo; import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory; import javax.xml.crypto.dsig.keyinfo.KeyValue; import javax.xml.crypto.dsig.keyinfo.X509Data; -import javax.xml.ws.WebServiceContext; -import javax.xml.ws.handler.MessageContext; import org.w3c.dom.Element; import org.w3c.dom.NodeList; @@ -97,7 +96,7 @@ public class RequestParser { private static final Logger LOG = LogUtils.getL7dLogger(RequestParser.class); public RequestRequirements parseRequest( - RequestSecurityTokenType request, WebServiceContext wsContext, STSPropertiesMBean stsProperties, + RequestSecurityTokenType request, Map messageContext, STSPropertiesMBean stsProperties, List claimsParsers ) throws STSException { LOG.fine("Parsing RequestSecurityToken"); @@ -114,9 +113,9 @@ public class RequestParser { } try { boolean found = - parseTokenRequirements(jaxbElement, tokenRequirements, wsContext, claimsParsers); + parseTokenRequirements(jaxbElement, tokenRequirements, messageContext, claimsParsers); if (!found) { - found = parseKeyRequirements(jaxbElement, keyRequirements, wsContext, stsProperties); + found = parseKeyRequirements(jaxbElement, keyRequirements, messageContext, stsProperties); } if (!found) { LOG.log( @@ -180,7 +179,7 @@ public class RequestParser { */ private static boolean parseKeyRequirements( JAXBElement jaxbElement, KeyRequirements keyRequirements, - WebServiceContext wsContext, STSPropertiesMBean stsProperties + Map messageContext, STSPropertiesMBean stsProperties ) { if (QNameConstants.AUTHENTICATION_TYPE.equals(jaxbElement.getName())) { String authenticationType = (String)jaxbElement.getValue(); @@ -208,7 +207,7 @@ public class RequestParser { keyRequirements.setKeywrapAlgorithm(keywrapAlgorithm); } else if (QNameConstants.USE_KEY.equals(jaxbElement.getName())) { UseKeyType useKey = (UseKeyType)jaxbElement.getValue(); - ReceivedKey receivedKey = parseUseKey(useKey, wsContext); + ReceivedKey receivedKey = parseUseKey(useKey, messageContext); keyRequirements.setReceivedKey(receivedKey); } else if (QNameConstants.ENTROPY.equals(jaxbElement.getName())) { EntropyType entropyType = (EntropyType)jaxbElement.getValue(); @@ -234,7 +233,7 @@ public class RequestParser { private static boolean parseTokenRequirements( JAXBElement jaxbElement, TokenRequirements tokenRequirements, - WebServiceContext wsContext, + Map messageContext, List claimsParsers ) { if (QNameConstants.TOKEN_TYPE.equals(jaxbElement.getName())) { @@ -262,7 +261,7 @@ public class RequestParser { ValidateTargetType validateTargetType = (ValidateTargetType)jaxbElement.getValue(); ReceivedToken validateTarget = new ReceivedToken(validateTargetType.getAny()); if (isTokenReferenced(validateTarget.getToken())) { - Element target = fetchTokenElementFromReference(validateTarget.getToken(), wsContext); + Element target = fetchTokenElementFromReference(validateTarget.getToken(), messageContext); validateTarget = new ReceivedToken(target); } tokenRequirements.setValidateTarget(validateTarget); @@ -270,7 +269,7 @@ public class RequestParser { CancelTargetType cancelTargetType = (CancelTargetType)jaxbElement.getValue(); ReceivedToken cancelTarget = new ReceivedToken(cancelTargetType.getAny()); if (isTokenReferenced(cancelTarget.getToken())) { - Element target = fetchTokenElementFromReference(cancelTarget.getToken(), wsContext); + Element target = fetchTokenElementFromReference(cancelTarget.getToken(), messageContext); cancelTarget = new ReceivedToken(target); } tokenRequirements.setCancelTarget(cancelTarget); @@ -278,7 +277,7 @@ public class RequestParser { RenewTargetType renewTargetType = (RenewTargetType)jaxbElement.getValue(); ReceivedToken renewTarget = new ReceivedToken(renewTargetType.getAny()); if (isTokenReferenced(renewTarget.getToken())) { - Element target = fetchTokenElementFromReference(renewTarget.getToken(), wsContext); + Element target = fetchTokenElementFromReference(renewTarget.getToken(), messageContext); renewTarget = new ReceivedToken(target); } tokenRequirements.setRenewTarget(renewTarget); @@ -310,13 +309,13 @@ public class RequestParser { /** * Parse the UseKey structure to get a ReceivedKey containing a cert/public-key/secret-key. * @param useKey The UseKey object - * @param wsContext The WebServiceContext object + * @param messageContext The message context object * @return the ReceivedKey that has been parsed * @throws STSException */ private static ReceivedKey parseUseKey( UseKeyType useKey, - WebServiceContext wsContext + Map messageContext ) throws STSException { byte[] x509 = null; if (useKey.getAny() instanceof JAXBElement) { @@ -343,7 +342,7 @@ public class RequestParser { || obj instanceof SecurityTokenReferenceType) { SecurityTokenReferenceType strType = SecurityTokenReferenceType.class.cast(useKeyJaxb.getValue()); - Element token = fetchTokenElementFromReference(strType, wsContext); + Element token = fetchTokenElementFromReference(strType, messageContext); try { x509 = Base64Utility.decode(token.getTextContent().trim()); LOG.fine("Found X509Certificate UseKey type via reference"); @@ -354,7 +353,7 @@ public class RequestParser { } } else if (useKey.getAny() instanceof Element) { if (isTokenReferenced(useKey.getAny())) { - Element token = fetchTokenElementFromReference(useKey.getAny(), wsContext); + Element token = fetchTokenElementFromReference(useKey.getAny(), messageContext); try { x509 = Base64Utility.decode(token.getTextContent().trim()); LOG.fine("Found X509Certificate UseKey type via reference"); @@ -685,7 +684,7 @@ public class RequestParser { * Method to fetch token from the SecurityTokenReference */ private static Element fetchTokenElementFromReference( - Object targetToken, WebServiceContext wsContext + Object targetToken, Map messageContext ) { // Get the reference URI String referenceURI = null; @@ -723,7 +722,6 @@ public class RequestParser { // Find processed token corresponding to the URI referenceURI = XMLUtils.getIDFromReference(referenceURI); - MessageContext messageContext = wsContext.getMessageContext(); final List handlerResults = CastUtils.cast((List) messageContext.get(WSHandlerConstants.RECV_RESULTS)); http://git-wip-us.apache.org/repos/asf/cxf/blob/aafbcde5/services/sts/sts-core/src/test/java/org/apache/cxf/sts/operation/CustomRealmParser.java ---------------------------------------------------------------------- diff --git a/services/sts/sts-core/src/test/java/org/apache/cxf/sts/operation/CustomRealmParser.java b/services/sts/sts-core/src/test/java/org/apache/cxf/sts/operation/CustomRealmParser.java index ff5b725..b1b121e 100644 --- a/services/sts/sts-core/src/test/java/org/apache/cxf/sts/operation/CustomRealmParser.java +++ b/services/sts/sts-core/src/test/java/org/apache/cxf/sts/operation/CustomRealmParser.java @@ -18,8 +18,7 @@ */ package org.apache.cxf.sts.operation; -import javax.xml.ws.WebServiceContext; -import javax.xml.ws.handler.MessageContext; +import java.util.Map; import org.apache.cxf.sts.RealmParser; import org.apache.cxf.ws.security.sts.provider.STSException; @@ -29,8 +28,7 @@ import org.apache.cxf.ws.security.sts.provider.STSException; */ public class CustomRealmParser implements RealmParser { - public String parseRealm(WebServiceContext context) throws STSException { - MessageContext messageContext = context.getMessageContext(); + public String parseRealm(Map messageContext) throws STSException { String endpoint = (String)messageContext.get("url"); if (endpoint.contains("ldap")) { return "A"; http://git-wip-us.apache.org/repos/asf/cxf/blob/aafbcde5/services/sts/sts-core/src/test/java/org/apache/cxf/sts/request/RequestParserUnitTest.java ---------------------------------------------------------------------- diff --git a/services/sts/sts-core/src/test/java/org/apache/cxf/sts/request/RequestParserUnitTest.java b/services/sts/sts-core/src/test/java/org/apache/cxf/sts/request/RequestParserUnitTest.java index 63035a5..cbb7273 100644 --- a/services/sts/sts-core/src/test/java/org/apache/cxf/sts/request/RequestParserUnitTest.java +++ b/services/sts/sts-core/src/test/java/org/apache/cxf/sts/request/RequestParserUnitTest.java @@ -33,7 +33,6 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.InputSource; -import org.apache.cxf.jaxws.context.WebServiceContextImpl; import org.apache.cxf.jaxws.context.WrappedMessageContext; import org.apache.cxf.message.MessageImpl; import org.apache.cxf.sts.common.PasswordCallbackHandler; @@ -133,7 +132,6 @@ public class RequestParserUnitTest extends org.junit.Assert { // Mock up message context MessageImpl msg = new MessageImpl(); WrappedMessageContext msgContext = new WrappedMessageContext(msg); - WebServiceContextImpl wsContext = new WebServiceContextImpl(msgContext); // Process the security header and store the results in the message context WSSecurityEngine securityEngine = new WSSecurityEngine(); @@ -146,7 +144,7 @@ public class RequestParserUnitTest extends org.junit.Assert { resultsList.add(results); msgContext.put(WSHandlerConstants.RECV_RESULTS, resultsList); - RequestRequirements requestRequirements = parser.parseRequest(request, wsContext, null, null); + RequestRequirements requestRequirements = parser.parseRequest(request, msgContext, null, null); SCTCanceller sctCanceller = new SCTCanceller(); assertTrue(sctCanceller.canHandleToken(requestRequirements.getTokenRequirements().getCancelTarget())); @@ -164,7 +162,6 @@ public class RequestParserUnitTest extends org.junit.Assert { // Mock up message context MessageImpl msg = new MessageImpl(); WrappedMessageContext msgContext = new WrappedMessageContext(msg); - WebServiceContextImpl wsContext = new WebServiceContextImpl(msgContext); // Process the security header and store the results in the message context WSSecurityEngine securityEngine = new WSSecurityEngine(); @@ -177,7 +174,7 @@ public class RequestParserUnitTest extends org.junit.Assert { resultsList.add(results); msgContext.put(WSHandlerConstants.RECV_RESULTS, resultsList); - RequestRequirements requestRequirements = parser.parseRequest(request, wsContext, null, null); + RequestRequirements requestRequirements = parser.parseRequest(request, msgContext, null, null); SCTValidator sctValidator = new SCTValidator(); assertTrue(sctValidator.canHandleToken(requestRequirements.getTokenRequirements().getValidateTarget())); @@ -195,7 +192,6 @@ public class RequestParserUnitTest extends org.junit.Assert { // Mock up message context MessageImpl msg = new MessageImpl(); WrappedMessageContext msgContext = new WrappedMessageContext(msg); - WebServiceContextImpl wsContext = new WebServiceContextImpl(msgContext); // Process the security header and store the results in the message context WSSecurityEngine securityEngine = new WSSecurityEngine(); @@ -209,7 +205,7 @@ public class RequestParserUnitTest extends org.junit.Assert { resultsList.add(results); msgContext.put(WSHandlerConstants.RECV_RESULTS, resultsList); - RequestRequirements requestRequirements = parser.parseRequest(request, wsContext, null, null); + RequestRequirements requestRequirements = parser.parseRequest(request, msgContext, null, null); assertNotNull(requestRequirements.getKeyRequirements().getReceivedKey().getX509Cert()); } http://git-wip-us.apache.org/repos/asf/cxf/blob/aafbcde5/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/realms/URLRealmParser.java ---------------------------------------------------------------------- diff --git a/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/realms/URLRealmParser.java b/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/realms/URLRealmParser.java index 3f40030..425ee4f 100644 --- a/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/realms/URLRealmParser.java +++ b/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/realms/URLRealmParser.java @@ -18,7 +18,7 @@ */ package org.apache.cxf.systest.sts.realms; -import javax.xml.ws.WebServiceContext; +import java.util.Map; import org.apache.cxf.sts.RealmParser; import org.apache.cxf.ws.security.sts.provider.STSException; @@ -29,8 +29,8 @@ import org.apache.cxf.ws.security.sts.provider.STSException; */ public class URLRealmParser implements RealmParser { - public String parseRealm(WebServiceContext context) throws STSException { - String url = (String)context.getMessageContext().get("org.apache.cxf.request.url"); + public String parseRealm(Map messageContext) throws STSException { + String url = (String)messageContext.get("org.apache.cxf.request.url"); if (url.contains("realmA")) { return "A"; } else if (url.contains("realmB")) { http://git-wip-us.apache.org/repos/asf/cxf/blob/aafbcde5/services/sts/systests/basic/src/test/java/org/apache/cxf/systest/sts/common/UriRealmParser.java ---------------------------------------------------------------------- diff --git a/services/sts/systests/basic/src/test/java/org/apache/cxf/systest/sts/common/UriRealmParser.java b/services/sts/systests/basic/src/test/java/org/apache/cxf/systest/sts/common/UriRealmParser.java index 7ce72d4..87f5d7d 100644 --- a/services/sts/systests/basic/src/test/java/org/apache/cxf/systest/sts/common/UriRealmParser.java +++ b/services/sts/systests/basic/src/test/java/org/apache/cxf/systest/sts/common/UriRealmParser.java @@ -18,22 +18,21 @@ */ package org.apache.cxf.systest.sts.common; +import java.util.Map; import java.util.StringTokenizer; -import javax.xml.ws.WebServiceContext; - import org.apache.cxf.sts.RealmParser; import org.apache.cxf.ws.security.sts.provider.STSException; public class UriRealmParser implements RealmParser { @Override - public String parseRealm(WebServiceContext context) throws STSException { + public String parseRealm(Map messageContext) throws STSException { String realm = null; try { - String url = (String)context.getMessageContext().get("org.apache.cxf.request.url"); + String url = (String)messageContext.get("org.apache.cxf.request.url"); StringTokenizer st = new StringTokenizer(url, "/");