You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by jb...@apache.org on 2015/12/10 14:50:52 UTC
cxf-fediz git commit: Change path pattern of Client Registration
Repository: cxf-fediz
Updated Branches:
refs/heads/master 8ac43f306 -> 664d577dc
Change path pattern of Client Registration
Project: http://git-wip-us.apache.org/repos/asf/cxf-fediz/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf-fediz/commit/664d577d
Tree: http://git-wip-us.apache.org/repos/asf/cxf-fediz/tree/664d577d
Diff: http://git-wip-us.apache.org/repos/asf/cxf-fediz/diff/664d577d
Branch: refs/heads/master
Commit: 664d577dc8cd7ad1700e78b42343bf6fc4b64810
Parents: 8ac43f3
Author: Jan Bernhardt <jb...@talend.com>
Authored: Thu Dec 10 13:57:12 2015 +0100
Committer: Jan Bernhardt <jb...@talend.com>
Committed: Thu Dec 10 14:50:33 2015 +0100
----------------------------------------------------------------------
.../service/oidc/ClientRegistrationService.java | 61 ++++++++++----------
.../main/webapp/WEB-INF/applicationContext.xml | 4 +-
.../webapp/WEB-INF/views/registerClient.jsp | 4 +-
.../webapp/WEB-INF/views/registeredClients.jsp | 2 +-
services/oidc/src/main/webapp/WEB-INF/web.xml | 4 +-
5 files changed, 38 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/664d577d/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 ec9cc73..7fb0f35 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
@@ -44,44 +44,42 @@ import org.apache.cxf.rt.security.crypto.CryptoUtils;
@Path("/")
public class ClientRegistrationService {
-
- private Map<String, Collection<Client>> registrations =
- new ConcurrentHashMap<String, Collection<Client>>();
+
+ private Map<String, Collection<Client>> registrations = new ConcurrentHashMap<String, Collection<Client>>();
private OAuthDataManager manager;
private Map<String, String> homeRealms = new LinkedHashMap<String, String>();
private boolean protectIdTokenWithClientSecret;
-
+
@Context
private SecurityContext sc;
-
-
+
@GET
@Produces(MediaType.TEXT_HTML)
- @Path("/")
+ @Path("/register")
public RegisterClient registerStart() {
return new RegisterClient(homeRealms);
}
-
+
@GET
@Produces(MediaType.TEXT_HTML)
- @Path("/register")
- public Collection<Client> registerForm() {
+ @Path("/")
+ public Collection<Client> getClients() {
return getClientRegistrations();
}
-
+
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.TEXT_HTML)
- @Path("/register")
+ @Path("/")
public Collection<Client> registerForm(@FormParam("appName") String appName,
- @FormParam("appDescription") String appDesc,
- @FormParam("appType") String appType,
- @FormParam("redirectURI") String redirectURI,
- @FormParam("homeRealm") String homeRealm) {
+ @FormParam("appDescription") String appDesc, @FormParam("appType") String appType,
+ @FormParam("redirectURI") String redirectURI, @FormParam("homeRealm") String homeRealm) {
String clientId = generateClientId();
boolean isConfidential = "confidential".equals(appType);
- String clientSecret = isConfidential ? generateClientSecret() : null;
-
+ String clientSecret = isConfidential
+ ? generateClientSecret()
+ : null;
+
FedizClient newClient = new FedizClient(clientId, clientSecret, isConfidential, appName);
newClient.setHomeRealm(homeRealm);
newClient.setApplicationDescription(appDesc);
@@ -91,33 +89,34 @@ public class ClientRegistrationService {
String userName = sc.getUserPrincipal().getName();
UserSubject userSubject = new UserSubject(userName);
newClient.setResourceOwnerSubject(userSubject);
-
+
return registerNewClient(newClient);
}
-
+
protected String generateClientId() {
return Base64UrlUtility.encode(CryptoUtils.generateSecureRandomBytes(10));
}
-
+
protected String generateClientSecret() {
// TODO: may need to be 384/8 or 512/8 if not a default HS256 but HS384 or HS512
- int keySizeOctets = protectIdTokenWithClientSecret ? 32 : 16;
+ int keySizeOctets = protectIdTokenWithClientSecret
+ ? 32
+ : 16;
return Base64UrlUtility.encode(CryptoUtils.generateSecureRandomBytes(keySizeOctets));
}
-
+
protected Collection<Client> registerNewClient(Client newClient) {
manager.setClient(newClient);
Collection<Client> clientRegistrations = getClientRegistrations();
clientRegistrations.add(newClient);
return clientRegistrations;
-
}
protected Collection<Client> getClientRegistrations() {
String userName = getUserName();
return getClientRegistrations(userName);
}
-
+
protected Collection<Client> getClientRegistrations(String userName) {
Collection<Client> userClientRegs = registrations.get(userName);
if (userClientRegs == null) {
@@ -126,11 +125,14 @@ public class ClientRegistrationService {
}
return userClientRegs;
}
-
+
private String getUserName() {
+ if (sc == null || sc.getUserPrincipal() == null) {
+ return null;
+ }
return sc.getUserPrincipal().getName();
}
-
+
public void setDataProvider(OAuthDataManager m) {
this.manager = m;
}
@@ -138,16 +140,15 @@ public class ClientRegistrationService {
public void setHomeRealms(Map<String, String> homeRealms) {
this.homeRealms = homeRealms;
}
-
+
public void init() {
for (Client c : manager.getClients()) {
String userName = c.getResourceOwnerSubject().getLogin();
getClientRegistrations(userName).add(c);
}
}
-
+
public void setProtectIdTokenWithClientSecret(boolean protectIdTokenWithClientSecret) {
this.protectIdTokenWithClientSecret = protectIdTokenWithClientSecret;
}
}
-
http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/664d577d/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 9c9e5c9..85f5e41 100644
--- a/services/oidc/src/main/webapp/WEB-INF/applicationContext.xml
+++ b/services/oidc/src/main/webapp/WEB-INF/applicationContext.xml
@@ -98,7 +98,7 @@
</map>
</property>
</bean>
- <jaxrs:server address="/client">
+ <jaxrs:server address="/clients">
<jaxrs:serviceBeans>
<ref bean="clientRegService"/>
</jaxrs:serviceBeans>
@@ -114,7 +114,7 @@
<property name="dispatcherName" value="jsp"/>
<property name="resourcePaths">
<map>
- <entry key="/client/register" value="/WEB-INF/views/registeredClients.jsp"/>
+ <entry key="/clients" value="/WEB-INF/views/registeredClients.jsp"/>
</map>
</property>
</bean>
http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/664d577d/services/oidc/src/main/webapp/WEB-INF/views/registerClient.jsp
----------------------------------------------------------------------
diff --git a/services/oidc/src/main/webapp/WEB-INF/views/registerClient.jsp b/services/oidc/src/main/webapp/WEB-INF/views/registerClient.jsp
index a414dd9..99e8ff8 100644
--- a/services/oidc/src/main/webapp/WEB-INF/views/registerClient.jsp
+++ b/services/oidc/src/main/webapp/WEB-INF/views/registerClient.jsp
@@ -24,7 +24,7 @@
<br/>
<div class="padded">
- <form action="/fediz-oidc/client/register"
+ <form action="/fediz-oidc/clients"
method="POST">
<table>
<tr>
@@ -112,7 +112,7 @@
<br/>
<big><big>
<p>
-Back to your account <a href="<%= basePath %>"> page</a>
+Return to <a href="<%= basePath %>clients">registered Clients</a>
</p>
</big></big>
</div>
http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/664d577d/services/oidc/src/main/webapp/WEB-INF/views/registeredClients.jsp
----------------------------------------------------------------------
diff --git a/services/oidc/src/main/webapp/WEB-INF/views/registeredClients.jsp b/services/oidc/src/main/webapp/WEB-INF/views/registeredClients.jsp
index 5657e56..ce8ed9f 100644
--- a/services/oidc/src/main/webapp/WEB-INF/views/registeredClients.jsp
+++ b/services/oidc/src/main/webapp/WEB-INF/views/registeredClients.jsp
@@ -75,7 +75,7 @@
<br/>
<br/>
<p>
-Back to <a href="<%= basePath %>client">Client Registration page</a>
+<a href="<%= basePath + "clients/register" %>">Register a new client</a>
</p>
</div>
</body>
http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/664d577d/services/oidc/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/services/oidc/src/main/webapp/WEB-INF/web.xml b/services/oidc/src/main/webapp/WEB-INF/web.xml
index 1cca8e0..2c313a7 100644
--- a/services/oidc/src/main/webapp/WEB-INF/web.xml
+++ b/services/oidc/src/main/webapp/WEB-INF/web.xml
@@ -36,7 +36,7 @@
</filter-mapping>
<filter-mapping>
<filter-name>FederationFilter</filter-name>
- <url-pattern>/client/*</url-pattern>
+ <url-pattern>/clients/*</url-pattern>
</filter-mapping>
<context-param>
@@ -72,7 +72,7 @@
<security-constraint>
<web-resource-collection>
<web-resource-name>Client Registration Protected Area</web-resource-name>
- <url-pattern>/client/*</url-pattern>
+ <url-pattern>/clients/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>