Repository: cxf
Updated Branches:
  refs/heads/3.1.x-fixes 3c788423d -> 194694aa3


Updating OidcConfigurationService to report an end_session_endpoint address


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/194694aa
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/194694aa
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/194694aa

Branch: refs/heads/3.1.x-fixes
Commit: 194694aa38500a6b0042f97e1cafd742126bf527
Parents: 3c78842
Author: Sergey Beryozkin <[email protected]>
Authored: Mon Feb 27 18:00:37 2017 +0000
Committer: Sergey Beryozkin <[email protected]>
Committed: Mon Feb 27 18:04:24 2017 +0000

----------------------------------------------------------------------
 .../oidc/idp/OidcConfigurationService.java      | 31 ++++++++++++++++++--
 1 file changed, 29 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/194694aa/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/OidcConfigurationService.java
----------------------------------------------------------------------
diff --git 
a/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/OidcConfigurationService.java
 
b/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/OidcConfigurationService.java
index 7e7c8ce..17e5a6a 100644
--- 
a/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/OidcConfigurationService.java
+++ 
b/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/OidcConfigurationService.java
@@ -33,7 +33,11 @@ public class OidcConfigurationService extends 
AuthorizationMetadataService {
     // Recommended - but optional
     private boolean userInfoEndpointNotAvailable;
     private String userInfoEndpointAddress;
-        
+    
+    // Optional RP initiated logout
+    private boolean endSessionEndpointNotAvailable;
+    private String endSessionEndpointAddress;
+
     @Override
     protected void prepareConfigurationData(Map<String, Object> cfg, String 
baseUri) {
         super.prepareConfigurationData(cfg, baseUri);
@@ -49,6 +53,13 @@ public class OidcConfigurationService extends 
AuthorizationMetadataService {
             cfg.put("id_token_signing_alg_values_supported", 
                     
Collections.singletonList(sigProps.get(JoseConstants.RSSEC_SIGNATURE_ALGORITHM)));
    
         }
+        
+        // RP Initiated Logout Endpoint
+        if (!isEndSessionEndpointNotAvailable()) {
+            String theEndSessionEndpointAddress =
+                calculateEndpointAddress(endSessionEndpointAddress, baseUri, 
"/idp/logout");
+            cfg.put("end_session_endpoint", theEndSessionEndpointAddress);
+        }
     }
 
     public boolean isUserInfoEndpointNotAvailable() {
@@ -58,5 +69,21 @@ public class OidcConfigurationService extends 
AuthorizationMetadataService {
     public void setUserInfoEndpointNotAvailable(boolean 
userInfoEndpointNotAvailable) {
         this.userInfoEndpointNotAvailable = userInfoEndpointNotAvailable;
     }
-    
+
+    public boolean isEndSessionEndpointNotAvailable() {
+        return endSessionEndpointNotAvailable;
+    }
+
+    public void setEndSessionEndpointNotAvailable(boolean 
endSessionEndpointNotAvailable) {
+        this.endSessionEndpointNotAvailable = endSessionEndpointNotAvailable;
+    }
+
+    public String getEndSessionEndpointAddress() {
+        return endSessionEndpointAddress;
+    }
+
+    public void setEndSessionEndpointAddress(String endSessionEndpointAddress) 
{
+        this.endSessionEndpointAddress = endSessionEndpointAddress;
+    }
+
 }

Reply via email to