[java-identity-provider] 01/03: IDP-693 ValidUntilFilter changes
Rod Widdowson
rdw at steadingsoftware.com
Fri Mar 1 09:28:29 EST 2019
This is an automated email from the git hooks/post-receive script.
rdw 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=9a0977778e395b9b08d32feffe17b048ac6c10e5
commit 9a0977778e395b9b08d32feffe17b048ac6c10e5
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue Feb 26 15:03:28 2019 +0000
IDP-693 ValidUntilFilter changes
https://issues.shibboleth.net/jira/browse/IDP-693
- value is a Duration (or milliseconds if you must)
- default value is 14 days.
---
.../filter/impl/RequiredValidUntilFactoryBean.java | 79 ----------------------
.../filter/impl/RequiredValidUntilParser.java | 19 +++---
.../filter/RequiredValidUntilParserTest.java | 4 +-
.../main/resources/schema/shibboleth-metadata.xsd | 4 +-
4 files changed, 13 insertions(+), 93 deletions(-)
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/RequiredValidUntilFactoryBean.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/RequiredValidUntilFactoryBean.java
deleted file mode 100644
index 4b573c0..0000000
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/RequiredValidUntilFactoryBean.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements. See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.shibboleth.idp.profile.spring.relyingparty.metadata.filter.impl;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
-import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
-
-import org.opensaml.saml.metadata.resolver.filter.impl.RequiredValidUntilFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.config.AbstractFactoryBean;
-
-/**
- * Factory Bean to collect and specifically process (because of case IDP-646) parameters to a
- * {@link RequiredValidUntilFilter}.
- */
-public class RequiredValidUntilFactoryBean extends AbstractFactoryBean<RequiredValidUntilFilter> {
-
- /** Where the (property replaced) value of maxValidityInterval goes. */
- @Nullable private String maxValidityIntervalDuration;
-
- /** Logger. */
- @Nonnull private final Logger log = LoggerFactory.getLogger(RequiredValidUntilFactoryBean.class);
-
- /**
- * Setter for {@link #maxValidityIntervalDuration}.
- *
- * @param s what to set.
- * @deprecated use {@link RequiredValidUntilFilter#setMaxValidityInterval(long)}.
- */
- @Deprecated public void setMaxValidityInterval(final String s) {
- maxValidityIntervalDuration = s;
- }
-
-
- /** {@inheritDoc} */
- @Override public Class<RequiredValidUntilFilter> getObjectType() {
- return RequiredValidUntilFilter.class;
- }
-
- /** {@inheritDoc} */
- @Override protected RequiredValidUntilFilter createInstance() throws Exception {
- final RequiredValidUntilFilter value = new RequiredValidUntilFilter();
-
- if (null != maxValidityIntervalDuration) {
- if (maxValidityIntervalDuration.startsWith("P")) {
- value.setMaxValidityInterval(DOMTypeSupport.durationToLong(maxValidityIntervalDuration));
- } else if (maxValidityIntervalDuration.startsWith("-P")) {
- throw new IllegalArgumentException("Negative durations are not supported");
- } else {
- // Treat as a Long and seconds.
- value.setMaxValidityInterval(1000 * Long.valueOf(maxValidityIntervalDuration));
- DeprecationSupport.warn(ObjectType.ATTRIBUTE, "maxValidityIntervalDuration (when numeric)",
- "RequiredValidUntil MetadataFilter", "duration notation");
- }
- }
- return value;
- }
-
-}
\ No newline at end of file
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/RequiredValidUntilParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/RequiredValidUntilParser.java
index a544cba..46ff465 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/RequiredValidUntilParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/RequiredValidUntilParser.java
@@ -20,9 +20,7 @@ package net.shibboleth.idp.profile.spring.relyingparty.metadata.filter.impl;
import javax.annotation.Nonnull;
import javax.xml.namespace.QName;
-import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-
+import org.opensaml.saml.metadata.resolver.filter.impl.RequiredValidUntilFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
@@ -30,6 +28,9 @@ import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
+import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+
/**
* Parser for a <RequiredValidUntil> filter.
*/
@@ -45,18 +46,18 @@ public class RequiredValidUntilParser extends AbstractSingleBeanDefinitionParser
/** {@inheritDoc} */
@Override protected Class<?> getBeanClass(final Element element) {
// IDP-693 maxValidityInterval is a duration or a value in seconds - so we need a factory
- return RequiredValidUntilFactoryBean.class;
+ return RequiredValidUntilFilter.class;
}
/** {@inheritDoc} */
@Override protected void doParse(final Element element, final ParserContext parserContext,
final BeanDefinitionBuilder builder) {
- if (element.hasAttributeNS(null, "maxValidityInterval")) {
- builder.addPropertyValue("maxValidityInterval",
- StringSupport.trimOrNull(element.getAttributeNS(null, "maxValidityInterval")));
- } else {
- log.warn("Metadata filter " + TYPE_NAME.getLocalPart() + " without maxValidityInterval is a no-op.");
+
+ String maxValidity=StringSupport.trimOrNull(element.getAttributeNS(null, "maxValidityInterval"));
+ if (null == maxValidity) {
+ maxValidity = "P14D";
}
+ builder.addPropertyValue("maxValidityInterval",maxValidity);
}
/** {@inheritDoc} */
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/RequiredValidUntilParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/RequiredValidUntilParserTest.java
index f7c1730..36875ad 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/RequiredValidUntilParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/RequiredValidUntilParserTest.java
@@ -35,7 +35,7 @@ public class RequiredValidUntilParserTest extends AbstractMetadataParserTest {
MetadataResolver resolver = getBean(MetadataResolver.class, "filter/requiredValidUntil.xml");
final RequiredValidUntilFilter filter = (RequiredValidUntilFilter) resolver.getMetadataFilter();
- Assert.assertEquals(filter.getMaxValidityInterval(), 0);
+ Assert.assertEquals(filter.getMaxValidityInterval(), 14*3600*24*1000);
}
@Test public void param() throws IOException {
@@ -49,6 +49,6 @@ public class RequiredValidUntilParserTest extends AbstractMetadataParserTest {
MetadataResolver resolver = getBean(MetadataResolver.class, "filter/requiredValidUntilParamNonDuration.xml");
final RequiredValidUntilFilter filter = (RequiredValidUntilFilter) resolver.getMetadataFilter();
- Assert.assertEquals(filter.getMaxValidityInterval(), 2*1000);
+ Assert.assertEquals(filter.getMaxValidityInterval(), 2);
}
}
diff --git a/idp-schema/src/main/resources/schema/shibboleth-metadata.xsd b/idp-schema/src/main/resources/schema/shibboleth-metadata.xsd
index 2a9d61a..fe5b9b0 100644
--- a/idp-schema/src/main/resources/schema/shibboleth-metadata.xsd
+++ b/idp-schema/src/main/resources/schema/shibboleth-metadata.xsd
@@ -1011,12 +1011,10 @@
<attribute name="maxValidityInterval" type="string">
<annotation>
<documentation>
- This is deprecated in V3.4
-
The maximum amount of time, from now, which the validUntil attribute may be set.
This provides an upper limit to the lifetime of any metadata.
- Interval is expressed in ISO8601 duration notation (but had previously ben specified as seconds)
+ Interval is expressed in ISO8601 duration notation. Default is P14D (14 days)
</documentation>
</annotation>
</attribute>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list