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 2017/02/27 16:24:11 UTC
cxf git commit: Support for the dyn reg of the OIDC rp initoated
logout uris
Repository: cxf
Updated Branches:
refs/heads/master 156b166b0 -> f6b153c1c
Support for the dyn reg of the OIDC rp initoated logout uris
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/f6b153c1
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/f6b153c1
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/f6b153c1
Branch: refs/heads/master
Commit: f6b153c1c3d828ddd113cd446b4849d0c0b8d636
Parents: 156b166
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Mon Feb 27 16:23:54 2017 +0000
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Mon Feb 27 16:23:54 2017 +0000
----------------------------------------------------------------------
.../idp/OidcDynamicRegistrationService.java | 31 +++++++++++++++++---
1 file changed, 27 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/f6b153c1/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/OidcDynamicRegistrationService.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/OidcDynamicRegistrationService.java b/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/OidcDynamicRegistrationService.java
index cbd0c6c..39cf8b2 100644
--- a/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/OidcDynamicRegistrationService.java
+++ b/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/OidcDynamicRegistrationService.java
@@ -18,24 +18,47 @@
*/
package org.apache.cxf.rs.security.oidc.idp;
+import java.util.LinkedList;
+import java.util.List;
+
import org.apache.cxf.rs.security.oauth2.common.Client;
import org.apache.cxf.rs.security.oauth2.services.ClientRegistration;
import org.apache.cxf.rs.security.oauth2.services.ClientRegistrationResponse;
import org.apache.cxf.rs.security.oauth2.services.DynamicRegistrationService;
public class OidcDynamicRegistrationService extends DynamicRegistrationService {
+ private static final String RP_INITIATED_LOGOUT_URIS = "post_logout_redirect_uris";
private boolean protectIdTokenWithClientSecret;
@Override
protected Client createNewClient(ClientRegistration request) {
- //TODO: set OIDC specific properties as Client extra properties
- return super.createNewClient(request);
+ Client client = super.createNewClient(request);
+ List<String> logoutUris = request.getListStringProperty(RP_INITIATED_LOGOUT_URIS);
+ if (logoutUris != null) {
+ StringBuilder sb = new StringBuilder();
+ for (String uri : logoutUris) {
+ if (sb.length() > 0) {
+ sb.append(" ");
+ }
+ sb.append(uri);
+ }
+ client.getProperties().put(RP_INITIATED_LOGOUT_URIS, sb.toString());
+ }
+ return client;
}
@Override
protected ClientRegistrationResponse fromClientToRegistrationResponse(Client client) {
- //TODO: check OIDC specific properties in Client extra properties
- return super.fromClientToRegistrationResponse(client);
+ ClientRegistrationResponse resp = super.fromClientToRegistrationResponse(client);
+ String logoutUris = client.getProperties().get(RP_INITIATED_LOGOUT_URIS);
+ if (logoutUris != null) {
+ List<String> list = new LinkedList<String>();
+ for (String s : logoutUris.split(" ")) {
+ list.add(s);
+ }
+ resp.setProperty(RP_INITIATED_LOGOUT_URIS, list);
+ }
+ return resp;
}
@Override