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 2014/06/04 15:21:14 UTC
git commit: [CXF-5764] Checking ClientIdProvider too if Principal is
null
Repository: cxf
Updated Branches:
refs/heads/master 8c138e035 -> 7012de652
[CXF-5764] Checking ClientIdProvider too if Principal is null
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/7012de65
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/7012de65
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/7012de65
Branch: refs/heads/master
Commit: 7012de652898cd3a7ac9b2858bc6265a6e1054e0
Parents: 8c138e0
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Wed Jun 4 14:20:57 2014 +0100
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Wed Jun 4 14:20:57 2014 +0100
----------------------------------------------------------------------
.../oauth2/services/AbstractTokenService.java | 33 ++++++++++++--------
1 file changed, 20 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/7012de65/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/services/AbstractTokenService.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/services/AbstractTokenService.java b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/services/AbstractTokenService.java
index ad3cdda..7b50586 100644
--- a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/services/AbstractTokenService.java
+++ b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/services/AbstractTokenService.java
@@ -55,24 +55,20 @@ public class AbstractTokenService extends AbstractOAuthService {
Client client = null;
SecurityContext sc = getMessageContext().getSecurityContext();
Principal principal = sc.getUserPrincipal();
- String clientIdParameter = params.getFirst(OAuthConstants.CLIENT_ID);
- if (principal == null && clientIdParameter != null) {
- // Both client_id and client_secret are expected in the form payload
- client = getAndValidateClientFromIdAndSecret(clientIdParameter,
- params.getFirst(OAuthConstants.CLIENT_SECRET));
- } else if (principal != null) {
+ if (principal == null) {
+ String clientId = retrieveClientId(params);
+ if (clientId != null) {
+ client = getAndValidateClientFromIdAndSecret(clientId,
+ params.getFirst(OAuthConstants.CLIENT_SECRET));
+ }
+ } else {
// Client has already been authenticated
if (principal.getName() != null) {
client = getClient(principal.getName());
} else {
- String clientId = clientIdParameter != null ? clientIdParameter
- : (String)getMessageContext().get(OAuthConstants.CLIENT_ID);
- if (StringUtils.isEmpty(clientId) && clientIdProvider != null) {
- // Check Custom ClientIdProvider
- clientId = clientIdProvider.getClientId(getMessageContext());
- }
- if (!StringUtils.isEmpty(clientId)) {
+ String clientId = retrieveClientId(params);
+ if (clientId != null) {
client = getClient(clientId);
}
}
@@ -98,6 +94,17 @@ public class AbstractTokenService extends AbstractOAuthService {
return client;
}
+ protected String retrieveClientId(MultivaluedMap<String, String> params) {
+ String clientId = params.getFirst(OAuthConstants.CLIENT_ID);
+ if (clientId == null) {
+ clientId = (String)getMessageContext().get(OAuthConstants.CLIENT_ID);
+ }
+ if (clientId == null && clientIdProvider != null) {
+ clientId = clientIdProvider.getClientId(getMessageContext());
+ }
+ return clientId;
+ }
+
// Get the Client and check the id and secret
protected Client getAndValidateClientFromIdAndSecret(String clientId, String clientSecret) {
Client client = getClient(clientId);