[java-identity-provider] branch master updated: OSJ-292 - Mishandling of ProxyRestriction content
Scott Cantor
cantor.2 at osu.edu
Wed Nov 20 19:49:41 EST 2019
This is an automated email from the git hooks/post-receive script.
scantor 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=943590b97ed4e88665058bdb0b286e84e23e8421
The following commit(s) were added to refs/heads/master by this push:
new 943590b OSJ-292 - Mishandling of ProxyRestriction content
943590b is described below
commit 943590b97ed4e88665058bdb0b286e84e23e8421
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed Nov 20 19:49:38 2019 -0500
OSJ-292 - Mishandling of ProxyRestriction content
https://issues.shibboleth.net/jira/browse/OSJ-292
Fix related bug, converting proxy count config to @Nullable Integer.
---
.../system/conf/relying-party-mddriven.xml | 7 +-----
.../config/navigate/ProxyCountLookupFunction.java | 4 ++--
.../config/AbstractSAML2ProfileConfiguration.java | 26 +++++++++++-----------
.../config/BrowserSSOProfileConfiguration.java | 3 ++-
.../profile/config/SAML2ProfileConfiguration.java | 2 +-
.../AbstractSAML2ProfileConfigurationTest.java | 9 ++++----
6 files changed, 23 insertions(+), 28 deletions(-)
diff --git a/idp-conf/src/main/resources/system/conf/relying-party-mddriven.xml b/idp-conf/src/main/resources/system/conf/relying-party-mddriven.xml
index c28d587..bb06b8e 100644
--- a/idp-conf/src/main/resources/system/conf/relying-party-mddriven.xml
+++ b/idp-conf/src/main/resources/system/conf/relying-party-mddriven.xml
@@ -197,12 +197,7 @@
</bean>
</property>
<property name="proxyCountLookupStrategy">
- <bean parent="shibboleth.MDDrivenLongProperty" p:propertyName="proxyCount">
- <property name="defaultValue">
- <util:constant
- static-field="net.shibboleth.idp.saml.saml2.profile.config.AbstractSAML2ProfileConfiguration.DEFAULT_PROXY_COUNT" />
- </property>
- </bean>
+ <bean parent="shibboleth.MDDrivenIntProperty" p:propertyName="proxyCount" />
</property>
<property name="proxyAudiencesLookupStrategy">
<bean parent="shibboleth.MDDrivenSetProperty" p:propertyName="proxyAudiences" />
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/ProxyCountLookupFunction.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/ProxyCountLookupFunction.java
index 248d922..4091e68 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/ProxyCountLookupFunction.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/ProxyCountLookupFunction.java
@@ -34,10 +34,10 @@ import org.opensaml.profile.context.ProfileRequestContext;
*
* <p>If a specific setting is unavailable, a null is returned.</p>
*/
-public class ProxyCountLookupFunction extends AbstractRelyingPartyLookupFunction<Long> {
+public class ProxyCountLookupFunction extends AbstractRelyingPartyLookupFunction<Integer> {
/** {@inheritDoc} */
- @Nullable public Long apply(@Nullable final ProfileRequestContext input) {
+ @Nullable public Integer apply(@Nullable final ProfileRequestContext input) {
final RelyingPartyContext rpc = getRelyingPartyContextLookupStrategy().apply(input);
if (rpc != null) {
final ProfileConfiguration pc = rpc.getProfileConfig();
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfiguration.java
index eb2a955..16cc380 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfiguration.java
@@ -44,9 +44,6 @@ import com.google.common.base.Predicates;
/** Base class for SAML 2 profile configurations. */
public abstract class AbstractSAML2ProfileConfiguration extends AbstractSAMLProfileConfiguration implements
SAML2ProfileConfiguration {
-
- /** Default proxy count. */
- @Nonnull public static final Long DEFAULT_PROXY_COUNT = 0L;
/** Whether to ignore signatures in requests. */
@Nonnull private Predicate<ProfileRequestContext> ignoreRequestSignaturesPredicate;
@@ -64,7 +61,7 @@ public abstract class AbstractSAML2ProfileConfiguration extends AbstractSAMLProf
@Nonnull private Predicate<ProfileRequestContext> encryptAttributesPredicate;
/** Lookup function to supply proxyCount property. */
- @Nonnull private Function<ProfileRequestContext,Long> proxyCountLookupStrategy;
+ @Nonnull private Function<ProfileRequestContext,Integer> proxyCountLookupStrategy;
/** Lookup function to supply proxy audiences. */
@Nonnull private Function<ProfileRequestContext,Collection<String>> proxyAudiencesLookupStrategy;
@@ -82,15 +79,16 @@ public abstract class AbstractSAML2ProfileConfiguration extends AbstractSAMLProf
encryptAssertionsPredicate = Predicates.alwaysFalse();
encryptNameIDsPredicate = Predicates.alwaysFalse();
encryptAttributesPredicate = Predicates.alwaysFalse();
- proxyCountLookupStrategy = FunctionSupport.constant(DEFAULT_PROXY_COUNT);
+ proxyCountLookupStrategy = FunctionSupport.constant(null);
proxyAudiencesLookupStrategy = FunctionSupport.constant(null);
}
/** {@inheritDoc} */
- public long getProxyCount(@Nullable final ProfileRequestContext profileRequestContext) {
- final Long count = proxyCountLookupStrategy.apply(profileRequestContext);
- Constraint.isNotNull(count, "Proxy count cannot be null");
- Constraint.isGreaterThanOrEqual(0, count, "Proxy count must be greater than or equal to 0");
+ @Nullable public Integer getProxyCount(@Nullable final ProfileRequestContext profileRequestContext) {
+ final Integer count = proxyCountLookupStrategy.apply(profileRequestContext);
+ if (count != null) {
+ Constraint.isGreaterThanOrEqual(0, count, "Proxy count must be greater than or equal to 0");
+ }
return count;
}
@@ -99,9 +97,11 @@ public abstract class AbstractSAML2ProfileConfiguration extends AbstractSAMLProf
*
* @param count maximum number of times an assertion may be proxied
*/
- public void setProxyCount(@NonNegative final long count) {
- proxyCountLookupStrategy = FunctionSupport.constant(
- Constraint.isGreaterThanOrEqual(0, count, "Proxy count must be greater than or equal to 0"));
+ public void setProxyCount(@Nullable @NonNegative final Integer count) {
+ if (count != null) {
+ Constraint.isGreaterThanOrEqual(0, count, "Proxy count must be greater than or equal to 0");
+ }
+ proxyCountLookupStrategy = FunctionSupport.constant(count);
}
/**
@@ -111,7 +111,7 @@ public abstract class AbstractSAML2ProfileConfiguration extends AbstractSAMLProf
*
* @since 3.3.0
*/
- public void setProxyCountLookupStrategy(@Nonnull final Function<ProfileRequestContext,Long> strategy) {
+ public void setProxyCountLookupStrategy(@Nonnull final Function<ProfileRequestContext,Integer> strategy) {
proxyCountLookupStrategy = Constraint.isNotNull(strategy, "Lookup strategy cannot be null");
}
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/BrowserSSOProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/BrowserSSOProfileConfiguration.java
index f9d7824..5f2f49d 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/BrowserSSOProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/BrowserSSOProfileConfiguration.java
@@ -529,7 +529,8 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML2ArtifactAwarePr
*
* @since 4.0.0
*/
- public void setAuthnContextTranslationStrategy(@Nullable final Function<AuthnContext,Collection<Principal>> strategy) {
+ public void setAuthnContextTranslationStrategy(
+ @Nullable final Function<AuthnContext,Collection<Principal>> strategy) {
authnContextTranslationStrategyLookupStrategy = FunctionSupport.constant(strategy);
}
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/SAML2ProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/SAML2ProfileConfiguration.java
index 122fd81..fed1d7f 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/SAML2ProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/SAML2ProfileConfiguration.java
@@ -41,7 +41,7 @@ public interface SAML2ProfileConfiguration {
*
* @return maximum number of times an assertion may be proxied
*/
- @NonNegative long getProxyCount(@Nullable final ProfileRequestContext profileRequestContext);
+ @NonNegative @Nullable Integer getProxyCount(@Nullable final ProfileRequestContext profileRequestContext);
/**
* Gets the unmodifiable collection of audiences for a proxied assertion.
diff --git a/idp-saml-api/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfigurationTest.java b/idp-saml-api/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfigurationTest.java
index 61ec6ca..cd431a4 100644
--- a/idp-saml-api/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfigurationTest.java
+++ b/idp-saml-api/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfigurationTest.java
@@ -17,7 +17,6 @@
package net.shibboleth.idp.saml.saml2.profile.config;
-import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
@@ -94,17 +93,17 @@ public class AbstractSAML2ProfileConfigurationTest {
@Test public void testProxyCount() {
final MockSAML2ProfileConfiguration config = new MockSAML2ProfileConfiguration();
- Assert.assertEquals(config.getProxyCount(null), 0);
+ Assert.assertNull(config.getProxyCount(null));
config.setProxyCount(1);
- Assert.assertEquals(config.getProxyCount(null), 1);
+ Assert.assertEquals(config.getProxyCount(null), Integer.valueOf(1));
}
@Test public void testIndirectProxyCount() {
final MockSAML2ProfileConfiguration config = new MockSAML2ProfileConfiguration();
- config.setProxyCountLookupStrategy(FunctionSupport.constant(1L));
- Assert.assertEquals(config.getProxyCount(null), 1);
+ config.setProxyCountLookupStrategy(FunctionSupport.constant(1));
+ Assert.assertEquals(config.getProxyCount(null), Integer.valueOf(1));
}
@Test public void testProxyAudiences() {
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list