You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2013/06/19 14:50:32 UTC
svn commit: r1494592 - in /cxf/branches/2.7.x-fixes: ./
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/
rt/frontend/jaxr...
Author: sergeyb
Date: Wed Jun 19 12:50:31 2013
New Revision: 1494592
URL: http://svn.apache.org/r1494592
Log:
Merged revisions 1494587-1494588 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1494587 | sergeyb | 2013-06-19 13:31:37 +0100 (Wed, 19 Jun 2013) | 1 line
Not encoding comma in queries, trying to encode non-encoded URLs when constructing WebClients
........
r1494588 | sergeyb | 2013-06-19 13:33:31 +0100 (Wed, 19 Jun 2013) | 1 line
Minor update to get it simpler to register a single custom grant handler
........
Modified:
cxf/branches/2.7.x-fixes/ (props changed)
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java
cxf/branches/2.7.x-fixes/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/services/AccessTokenService.java
Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
Merged /cxf/trunk:r1494587-1494588
Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java?rev=1494592&r1=1494591&r2=1494592&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java Wed Jun 19 12:50:31 2013
@@ -99,8 +99,8 @@ public abstract class AbstractClient imp
protected static final String REQUEST_CONTEXT = "RequestContext";
protected static final String RESPONSE_CONTEXT = "ResponseContext";
protected static final String KEEP_CONDUIT_ALIVE = "KeepConduitAlive";
-
- private static final String HTTP_SCHEME = "http";
+ protected static final String HTTP_SCHEME = "http";
+
private static final String PROXY_PROPERTY = "jaxrs.proxy";
private static final String HEADER_SPLIT_PROPERTY =
"org.apache.cxf.http.header.split";
Modified: cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java?rev=1494592&r1=1494591&r2=1494592&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java Wed Jun 19 12:50:31 2013
@@ -55,6 +55,7 @@ import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.jaxrs.ext.form.Form;
import org.apache.cxf.jaxrs.impl.ResponseImpl;
+import org.apache.cxf.jaxrs.impl.UriBuilderImpl;
import org.apache.cxf.jaxrs.model.ParameterType;
import org.apache.cxf.jaxrs.model.URITemplate;
import org.apache.cxf.jaxrs.provider.ProviderFactory;
@@ -79,7 +80,7 @@ public class WebClient extends AbstractC
private static final String RESPONSE_TYPE = "response.type";
protected WebClient(String baseAddress) {
- this(URI.create(baseAddress));
+ this(convertStringToURI(baseAddress));
}
protected WebClient(URI baseURI) {
@@ -1179,6 +1180,20 @@ public class WebClient extends AbstractC
return clientState;
}
+ static URI convertStringToURI(String baseAddress) {
+ try {
+ return URI.create(baseAddress);
+ } catch (RuntimeException ex) {
+ // no need to check "https" scheme or indeed ':'
+ // as the relative address will not work as the base address
+ if (baseAddress.startsWith(HTTP_SCHEME)) {
+ return new UriBuilderImpl().uriAsTemplate(baseAddress).build();
+ } else {
+ throw ex;
+ }
+ }
+ }
+
// Async related code, consider pushing most of it to AbstractClient
public AsyncInvoker async() {
return new AsyncInvokerImpl();
Modified: cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java?rev=1494592&r1=1494591&r2=1494592&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java Wed Jun 19 12:50:31 2013
@@ -844,6 +844,31 @@ public class UriBuilderImpl extends UriB
}
}
+ public UriBuilder uriAsTemplate(String uri) {
+ // This can be a start of replacing URI class Parser completely
+ // but it can be too complicated, the following code is needed for now
+ // to deal with URIs containing template variables.
+ int index = uri.indexOf(":");
+ if (index != -1) {
+ this.scheme = uri.substring(0, index);
+ uri = uri.substring(index + 1);
+ if (uri.indexOf("//") == 0) {
+ uri = uri.substring(2);
+ index = uri.indexOf("/");
+ if (index != -1) {
+ String[] schemePair = uri.substring(0, index).split(":");
+ this.host = schemePair[0];
+ this.port = schemePair.length == 2 ? Integer.valueOf(schemePair[1]) : -1;
+
+ }
+ uri = uri.substring(index);
+ }
+
+ }
+ setPathAndMatrix(uri);
+ return this;
+ }
+
//the clarified rules for encoding values of uri templates are:
// - encode each value contextually based on the URI component containing the template
// - in path templates, by default, encode also slashes (i.e. treat all path templates as
Modified: cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java?rev=1494592&r1=1494591&r2=1494592&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java Wed Jun 19 12:50:31 2013
@@ -73,7 +73,7 @@ public final class HttpUtils {
// there are more of such characters, ex, '*' but '*' is not affected by UrlEncode
private static final String PATH_RESERVED_CHARACTERS = "=@/:!$&\'(),;~";
- private static final String QUERY_RESERVED_CHARACTERS = "?/";
+ private static final String QUERY_RESERVED_CHARACTERS = "?/,";
private HttpUtils() {
}
Modified: cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java?rev=1494592&r1=1494591&r2=1494592&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java Wed Jun 19 12:50:31 2013
@@ -45,6 +45,11 @@ public class HttpUtilsTest extends Asser
}
@Test
+ public void testCommaInQuery() {
+ assertEquals("a+,b", HttpUtils.queryEncode("a ,b"));
+ }
+
+ @Test
public void testIsDateHeader() {
assertFalse(HttpUtils.isDateRelatedHeader(HttpHeaders.ETAG));
assertTrue(HttpUtils.isDateRelatedHeader(HttpHeaders.EXPIRES));
Modified: cxf/branches/2.7.x-fixes/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/services/AccessTokenService.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/services/AccessTokenService.java?rev=1494592&r1=1494591&r2=1494592&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/services/AccessTokenService.java (original)
+++ cxf/branches/2.7.x-fixes/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/services/AccessTokenService.java Wed Jun 19 12:50:31 2013
@@ -20,7 +20,7 @@
package org.apache.cxf.rs.security.oauth2.services;
import java.security.Principal;
-import java.util.Collections;
+import java.util.LinkedList;
import java.util.List;
import javax.ws.rs.Consumes;
@@ -51,7 +51,7 @@ import org.apache.cxf.rs.security.oauth2
*/
@Path("/token")
public class AccessTokenService extends AbstractOAuthService {
- private List<AccessTokenGrantHandler> grantHandlers = Collections.emptyList();
+ private List<AccessTokenGrantHandler> grantHandlers = new LinkedList<AccessTokenGrantHandler>();
private boolean writeCustomErrors;
private boolean canSupportPublicClients;
@@ -68,6 +68,14 @@ public class AccessTokenService extends
}
/**
+ * Sets a grant handler
+ * @param handler the grant handler
+ */
+ public void setGrantHandler(AccessTokenGrantHandler handler) {
+ grantHandlers.add(handler);
+ }
+
+ /**
* Processes an access token request
* @param params the form parameters representing the access token grant
* @return Access Token or the error