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 2016/01/19 16:18:49 UTC
cxf-fediz git commit: Making sure completely custom OAuth and
ClientReg providers can be registered
Repository: cxf-fediz
Updated Branches:
refs/heads/master e4956f9ec -> 94dc9ec91
Making sure completely custom OAuth and ClientReg providers can be registered
Project: http://git-wip-us.apache.org/repos/asf/cxf-fediz/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf-fediz/commit/94dc9ec9
Tree: http://git-wip-us.apache.org/repos/asf/cxf-fediz/tree/94dc9ec9
Diff: http://git-wip-us.apache.org/repos/asf/cxf-fediz/diff/94dc9ec9
Branch: refs/heads/master
Commit: 94dc9ec91634436a03202a8946bbb595662eda82
Parents: e4956f9
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Tue Jan 19 15:18:31 2016 +0000
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Tue Jan 19 15:18:31 2016 +0000
----------------------------------------------------------------------
.../service/oidc/ClientRegistrationService.java | 50 +++++++++++++-------
.../main/webapp/WEB-INF/applicationContext.xml | 1 +
2 files changed, 35 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/94dc9ec9/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/ClientRegistrationService.java
----------------------------------------------------------------------
diff --git a/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/ClientRegistrationService.java b/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/ClientRegistrationService.java
index 66932eb..4d22ac0 100644
--- a/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/ClientRegistrationService.java
+++ b/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/ClientRegistrationService.java
@@ -43,6 +43,9 @@ import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.rs.security.oauth2.common.Client;
import org.apache.cxf.rs.security.oauth2.common.UserSubject;
+import org.apache.cxf.rs.security.oauth2.grants.code.AuthorizationCodeDataProvider;
+import org.apache.cxf.rs.security.oauth2.provider.ClientRegistrationProvider;
+import org.apache.cxf.rs.security.oauth2.provider.OAuthDataProvider;
import org.apache.cxf.rs.security.oauth2.utils.OAuthConstants;
import org.apache.cxf.rt.security.crypto.CryptoUtils;
@@ -50,7 +53,8 @@ import org.apache.cxf.rt.security.crypto.CryptoUtils;
public class ClientRegistrationService {
private Map<String, Collection<Client>> registrations = new ConcurrentHashMap<String, Collection<Client>>();
- private OAuthDataManager manager;
+ private OAuthDataProvider dataProvider;
+ private ClientRegistrationProvider clientProvider;
private Map<String, String> homeRealms = new LinkedHashMap<String, String>();
private boolean protectIdTokenWithClientSecret;
private Map<String, String> clientScopes;
@@ -94,7 +98,7 @@ public class ClientRegistrationService {
for (Iterator<Client> it = clients.iterator(); it.hasNext();) {
Client c = it.next();
if (c.getClientId().equals(id)) {
- manager.removeClient(id);
+ clientProvider.removeClient(id);
it.remove();
break;
}
@@ -110,7 +114,7 @@ public class ClientRegistrationService {
if (c.isConfidential()) {
c.setClientSecret(generateClientSecret());
}
- manager.setClient(c);
+ clientProvider.setClient(c);
return c;
}
@@ -124,8 +128,8 @@ public class ClientRegistrationService {
protected ClientTokens doGetClientIssuedTokens(Client c) {
return new ClientTokens(c,
- manager.getAccessTokens(c),
- manager.getRefreshTokens(c));
+ dataProvider.getAccessTokens(c),
+ dataProvider.getRefreshTokens(c));
}
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@@ -149,7 +153,7 @@ public class ClientRegistrationService {
String tokenId,
String tokenType) {
Client c = getRegisteredClient(clientId);
- manager.revokeToken(c, tokenId, tokenType);
+ dataProvider.revokeToken(c, tokenId, tokenType);
return doGetClientIssuedTokens(c);
}
@@ -157,8 +161,11 @@ public class ClientRegistrationService {
@Produces(MediaType.TEXT_HTML)
@Path("/{id}/codes")
public ClientCodeGrants getClientCodeGrants(@PathParam("id") String id) {
- Client c = getRegisteredClient(id);
- return new ClientCodeGrants(c, manager.getCodeGrants(c));
+ if (dataProvider instanceof AuthorizationCodeDataProvider) {
+ Client c = getRegisteredClient(id);
+ return new ClientCodeGrants(c, ((AuthorizationCodeDataProvider)dataProvider).getCodeGrants(c));
+ }
+ return null;
}
@POST
@@ -167,8 +174,11 @@ public class ClientRegistrationService {
@Path("/{id}/codes/{code}/revoke")
public ClientCodeGrants revokeClientCodeGrant(@PathParam("id") String id,
@PathParam("code") String code) {
- manager.removeCodeGrant(code);
- return getClientCodeGrants(id);
+ if (dataProvider instanceof AuthorizationCodeDataProvider) {
+ ((AuthorizationCodeDataProvider)dataProvider).removeCodeGrant(code);
+ return getClientCodeGrants(id);
+ }
+ return null;
}
@POST
@@ -217,7 +227,7 @@ public class ClientRegistrationService {
}
protected Collection<Client> registerNewClient(Client newClient) {
- manager.setClient(newClient);
+ clientProvider.setClient(newClient);
Collection<Client> clientRegistrations = getClientRegistrations();
clientRegistrations.add(newClient);
return clientRegistrations;
@@ -244,16 +254,12 @@ public class ClientRegistrationService {
return sc.getUserPrincipal().getName();
}
- public void setDataProvider(OAuthDataManager m) {
- this.manager = m;
- }
-
public void setHomeRealms(Map<String, String> homeRealms) {
this.homeRealms = homeRealms;
}
public void init() {
- for (Client c : manager.getClients(null)) {
+ for (Client c : clientProvider.getClients(null)) {
String userName = c.getResourceOwnerSubject().getLogin();
getClientRegistrations(userName).add(c);
}
@@ -266,4 +272,16 @@ public class ClientRegistrationService {
public void setClientScopes(Map<String, String> clientScopes) {
this.clientScopes = clientScopes;
}
+
+ public OAuthDataProvider getDataProvider() {
+ return dataProvider;
+ }
+
+ public void setDataProvider(OAuthDataProvider dataProvider) {
+ this.dataProvider = dataProvider;
+ }
+
+ public void setClientProvider(ClientRegistrationProvider clientProvider) {
+ this.clientProvider = clientProvider;
+ }
}
http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/94dc9ec9/services/oidc/src/main/webapp/WEB-INF/applicationContext.xml
----------------------------------------------------------------------
diff --git a/services/oidc/src/main/webapp/WEB-INF/applicationContext.xml b/services/oidc/src/main/webapp/WEB-INF/applicationContext.xml
index 76a0730..ed0976d 100644
--- a/services/oidc/src/main/webapp/WEB-INF/applicationContext.xml
+++ b/services/oidc/src/main/webapp/WEB-INF/applicationContext.xml
@@ -94,6 +94,7 @@
<bean id="clientRegService" init-method="init" class="org.apache.cxf.fediz.service.oidc.ClientRegistrationService">
<property name="dataProvider" ref="oauthProvider"/>
+ <property name="clientProvider" ref="oauthProvider"/>
<!--
<property name="clientScopes" ref="supportedScopes"/>
-->