[java-identity-provider] branch master updated: IDP-1354 Fix CAS proxy ServiceContext lookup.

Marvin S. Addison marvin.addison at gmail.com
Tue Oct 30 10:06:53 EDT 2018


This is an automated email from the git hooks/post-receive script.

serac pushed a commit to branch master
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=15950464df25c4cbe2a7049bff11ab3ce764edb4

The following commit(s) were added to refs/heads/master by this push:
       new  1595046   IDP-1354 Fix CAS proxy ServiceContext lookup.
1595046 is described below

commit 15950464df25c4cbe2a7049bff11ab3ce764edb4
Author: Marvin S. Addison <serac at vt.edu>
AuthorDate: Tue Oct 30 10:06:14 2018 -0400

    IDP-1354 Fix CAS proxy ServiceContext lookup.
    
    See https://issues.shibboleth.net/jira/browse/IDP-1354.
---
 .../shibboleth/idp/cas/proxy/impl/HttpClientProxyValidator.java    | 7 +++++--
 .../idp/cas/proxy/impl/HttpClientProxyValidatorTest.java           | 5 ++++-
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidator.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidator.java
index 32a733c..4e95191 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidator.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidator.java
@@ -32,7 +32,9 @@ import javax.net.ssl.SSLException;
 import javax.security.auth.login.FailedLoginException;
 
 import com.google.common.base.Function;
+import com.google.common.base.Functions;
 import net.shibboleth.idp.cas.config.impl.AbstractProtocolConfiguration;
+import net.shibboleth.idp.cas.protocol.ProtocolContext;
 import net.shibboleth.idp.cas.proxy.ProxyValidator;
 import net.shibboleth.idp.cas.service.Service;
 import net.shibboleth.idp.cas.service.ServiceContext;
@@ -98,8 +100,9 @@ public class HttpClientProxyValidator implements ProxyValidator {
     private final TrustEngine<? super X509Credential> trustEngine;
 
     /** Looks up a ServiceContext from the profile request context. */
-    private final Function<ProfileRequestContext, ServiceContext> serviceCtxLookupFunction =
-            new ChildContextLookup<>(ServiceContext.class);
+    private final Function<ProfileRequestContext, ServiceContext> serviceCtxLookupFunction = Functions.compose(
+            new ChildContextLookup<ProtocolContext, ServiceContext>(ServiceContext.class),
+            new ChildContextLookup<ProfileRequestContext, ProtocolContext>(ProtocolContext.class));
 
     /** List of HTTP response codes permitted for successful proxy callback. */
     @NotEmpty
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidatorTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidatorTest.java
index 09b6a36..77cc07d 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidatorTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidatorTest.java
@@ -27,6 +27,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import net.shibboleth.idp.cas.flow.impl.AbstractFlowActionTest;
+import net.shibboleth.idp.cas.protocol.ProtocolContext;
 import net.shibboleth.idp.cas.service.Service;
 import net.shibboleth.idp.cas.service.ServiceContext;
 import net.shibboleth.idp.spring.IdPPropertiesApplicationContextInitializer;
@@ -172,7 +173,9 @@ public class HttpClientProxyValidatorTest extends AbstractFlowActionTest {
 
     private ProfileRequestContext buildProfileRequestContext(final String serviceUrl) {
         final ProfileRequestContext prc = new ProfileRequestContext();
-        prc.addSubcontext(new ServiceContext(new Service(serviceUrl, "unknown", true, false)));
+        final ProtocolContext protoCtx = new ProtocolContext();
+        prc.addSubcontext(protoCtx);
+        protoCtx.addSubcontext(new ServiceContext(new Service(serviceUrl, "unknown", true, false)));
         return prc;
     }
 }

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list