[java-identity-provider] branch master updated: Fix files incorrectly checked in as DOS format.

Scott Cantor cantor.2 at osu.edu
Mon May 1 21:07:37 EDT 2017


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=4c69a91c2b8f555bfb3c59d39b015577bec0b63a

The following commit(s) were added to refs/heads/master by this push:
       new  4c69a91   Fix files incorrectly checked in as DOS format.
4c69a91 is described below

commit 4c69a91c2b8f555bfb3c59d39b015577bec0b63a
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon May 1 21:07:30 2017 -0400

    Fix files incorrectly checked in as DOS format.
---
 .../ResolverAttributeDefinitionDependency.java     |  70 +++----
 .../resolver/ResolverDataConnectorDependency.java  | 164 ++++++++--------
 .../impl/InputAttributeDefinitionParser.java       |  80 ++++----
 .../spring/impl/InputDataConnectorParser.java      | 142 +++++++-------
 .../resolver/spring/DependencyTypesTest.java       | 146 +++++++-------
 .../main/resources/conf/admin/general-admin.xml    | 106 +++++-----
 .../main/resources/conf/authn/mfa-authn-config.xml | 198 +++++++++----------
 .../resources/system/conf/general-admin-system.xml | 214 ++++++++++-----------
 .../resources/system/flows/admin/storage-beans.xml |  84 ++++----
 .../resources/system/flows/admin/storage-flow.xml  |  88 ++++-----
 idp-core/src/main/resources/logback.xml            |  28 +--
 .../resources/net/shibboleth/idp/installer/ant.xml |  12 +-
 .../idp/installer/metadata-generator.xml           |  36 ++--
 .../SingleLogoutProfileConfigurationTest.java      | 120 ++++++------
 14 files changed, 744 insertions(+), 744 deletions(-)

diff --git a/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolverAttributeDefinitionDependency.java b/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolverAttributeDefinitionDependency.java
index 6705b7d..a875b41 100644
--- a/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolverAttributeDefinitionDependency.java
+++ b/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolverAttributeDefinitionDependency.java
@@ -1,35 +1,35 @@
-/*
- * 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.attribute.resolver;
-
-/**
- * A Dependency that references to an Attribute Definition.
- */
-public final class ResolverAttributeDefinitionDependency extends ResolverPluginDependency {
-
-    /**
-     * Constructor.
-     *
-     * @param pluginId
-     */
-    public ResolverAttributeDefinitionDependency(final String pluginId) {
-        super(pluginId);
-        // TODO Auto-generated constructor stub
-    }
-
-}
+/*
+ * 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.attribute.resolver;
+
+/**
+ * A Dependency that references to an Attribute Definition.
+ */
+public final class ResolverAttributeDefinitionDependency extends ResolverPluginDependency {
+
+    /**
+     * Constructor.
+     *
+     * @param pluginId
+     */
+    public ResolverAttributeDefinitionDependency(final String pluginId) {
+        super(pluginId);
+        // TODO Auto-generated constructor stub
+    }
+
+}
diff --git a/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolverDataConnectorDependency.java b/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolverDataConnectorDependency.java
index 4dfd40e..c24253f 100644
--- a/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolverDataConnectorDependency.java
+++ b/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolverDataConnectorDependency.java
@@ -1,82 +1,82 @@
-/*
- * 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.attribute.resolver;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.annotation.Nullable;
-
-/**
- *
- */
-public final class ResolverDataConnectorDependency extends ResolverPluginDependency {
-
-    private boolean allAttributes = false;
-    
-    private Set<String> attributeNames = Collections.EMPTY_SET;
-    
-    /**
-     * Constructor.
-     *
-     * @param pluginId
-     */
-    public ResolverDataConnectorDependency(final String pluginId) {
-        super(pluginId);
-    }
-
-    /**
-     * @return Returns the allAttributes.
-     */
-    public boolean isAllAttributes() {
-        return allAttributes;
-    }
-
-    /**
-     * @param all The allAttributes to set.
-     */
-    public void setAllAttributes(final boolean all) {
-        allAttributes = all;
-    }
-
-    /**
-     * @return Returns the attributeNames.
-     */
-    public Collection<String> getAttributeNames() {
-        return attributeNames;
-    }
-
-    /**
-     * @param names The attributeNames to set.
-     */
-    public void setAttributeNames(final Collection<String> names) {
-        attributeNames = new HashSet(names);
-    }
-   
-    /**
-     * {@inheritDoc}
-     * @deprecated("Used SetAttributeNames instead")
-     */
-    @Override @Deprecated public void setDependencyAttributeId(@Nullable final String attributeId) {
-        super.setDependencyAttributeId(attributeId);
-    }
-
-
-}
+/*
+ * 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.attribute.resolver;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.annotation.Nullable;
+
+/**
+ *
+ */
+public final class ResolverDataConnectorDependency extends ResolverPluginDependency {
+
+    private boolean allAttributes = false;
+    
+    private Set<String> attributeNames = Collections.EMPTY_SET;
+    
+    /**
+     * Constructor.
+     *
+     * @param pluginId
+     */
+    public ResolverDataConnectorDependency(final String pluginId) {
+        super(pluginId);
+    }
+
+    /**
+     * @return Returns the allAttributes.
+     */
+    public boolean isAllAttributes() {
+        return allAttributes;
+    }
+
+    /**
+     * @param all The allAttributes to set.
+     */
+    public void setAllAttributes(final boolean all) {
+        allAttributes = all;
+    }
+
+    /**
+     * @return Returns the attributeNames.
+     */
+    public Collection<String> getAttributeNames() {
+        return attributeNames;
+    }
+
+    /**
+     * @param names The attributeNames to set.
+     */
+    public void setAttributeNames(final Collection<String> names) {
+        attributeNames = new HashSet(names);
+    }
+   
+    /**
+     * {@inheritDoc}
+     * @deprecated("Used SetAttributeNames instead")
+     */
+    @Override @Deprecated public void setDependencyAttributeId(@Nullable final String attributeId) {
+        super.setDependencyAttributeId(attributeId);
+    }
+
+
+}
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputAttributeDefinitionParser.java
index 1d1642f..24b1e1d 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputAttributeDefinitionParser.java
@@ -1,41 +1,41 @@
-/*
- * 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.attribute.resolver.spring.impl;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import javax.xml.namespace.QName;
-
-import net.shibboleth.idp.attribute.resolver.ResolverAttributeDefinitionDependency;
-import net.shibboleth.idp.attribute.resolver.ResolverPluginDependency;
-import net.shibboleth.idp.attribute.resolver.spring.ResolverPluginDependencyParser;
-
-import org.w3c.dom.Element;
-
-/** Bean definition parser for a {@link ResolverPluginDependency}. */
-public class InputAttributeDefinitionParser extends ResolverPluginDependencyParser {
-
-    /** Element name. */
-    @Nonnull public static final QName ELEMENT_NAME =
-            new QName(AttributeResolverNamespaceHandler.NAMESPACE, "InputAttributeDefinition");
-
-    /** {@inheritDoc} */
-    @Override protected Class<ResolverAttributeDefinitionDependency> getBeanClass(@Nullable final Element element) {
-        return ResolverAttributeDefinitionDependency.class;
-    }
+/*
+ * 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.attribute.resolver.spring.impl;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import javax.xml.namespace.QName;
+
+import net.shibboleth.idp.attribute.resolver.ResolverAttributeDefinitionDependency;
+import net.shibboleth.idp.attribute.resolver.ResolverPluginDependency;
+import net.shibboleth.idp.attribute.resolver.spring.ResolverPluginDependencyParser;
+
+import org.w3c.dom.Element;
+
+/** Bean definition parser for a {@link ResolverPluginDependency}. */
+public class InputAttributeDefinitionParser extends ResolverPluginDependencyParser {
+
+    /** Element name. */
+    @Nonnull public static final QName ELEMENT_NAME =
+            new QName(AttributeResolverNamespaceHandler.NAMESPACE, "InputAttributeDefinition");
+
+    /** {@inheritDoc} */
+    @Override protected Class<ResolverAttributeDefinitionDependency> getBeanClass(@Nullable final Element element) {
+        return ResolverAttributeDefinitionDependency.class;
+    }
 }
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputDataConnectorParser.java
index d75594b..ff95168 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputDataConnectorParser.java
@@ -1,72 +1,72 @@
-/*
- * 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.attribute.resolver.spring.impl;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import javax.xml.namespace.QName;
-
-import net.shibboleth.idp.attribute.resolver.ResolverDataConnectorDependency;
-import net.shibboleth.idp.attribute.resolver.ResolverPluginDependency;
-import net.shibboleth.idp.attribute.resolver.spring.ResolverPluginDependencyParser;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.BeanCreationException;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/** Bean definition parser for a {@link ResolverPluginDependency}. */
-public class InputDataConnectorParser extends ResolverPluginDependencyParser {
-
-    /** Element name. */
-    @Nonnull public static final QName ELEMENT_NAME =
-            new QName(AttributeResolverNamespaceHandler.NAMESPACE, "InputDataConnector");
-
-    /** Class logger. */
-    @Nonnull private final Logger log = LoggerFactory.getLogger(InputDataConnectorParser.class);
-
-    /** {@inheritDoc} */
-    @Override protected Class<ResolverDataConnectorDependency> getBeanClass(@Nullable final Element element) {
-        return ResolverDataConnectorDependency.class;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
-            @Nonnull final BeanDefinitionBuilder builder) {
-        super.doParse(config, parserContext, builder);
-        
-        final String attributes = StringSupport.trimOrNull(config.getAttributeNS(null, "attributeNames"));
-        final String allAttributes = StringSupport.trimOrNull(config.getAttributeNS(null, "allAttributes"));
-        if (attributes != null) {
-            if (allAttributes != null) {
-                log.error("attributeNames and allAttributes are mutually exclusive");
-                throw new BeanCreationException(ELEMENT_NAME.getLocalPart() + ": attributeNames and allAttributes are mutually exclusive");
-            }
-            builder.addPropertyValue("attributeNames", attributes);
-        } else if (allAttributes != null) {
-            builder.addPropertyValue("allAttributes", allAttributes);
-        } else {
-            log.error("One of attributeNames or allAttributes must be specified");
-            throw new BeanCreationException(ELEMENT_NAME.getLocalPart() + ": One of attributeNames or allAttributes must be specified");
-        }
-    }
-    
+/*
+ * 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.attribute.resolver.spring.impl;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import javax.xml.namespace.QName;
+
+import net.shibboleth.idp.attribute.resolver.ResolverDataConnectorDependency;
+import net.shibboleth.idp.attribute.resolver.ResolverPluginDependency;
+import net.shibboleth.idp.attribute.resolver.spring.ResolverPluginDependencyParser;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.BeanCreationException;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.ParserContext;
+import org.w3c.dom.Element;
+
+/** Bean definition parser for a {@link ResolverPluginDependency}. */
+public class InputDataConnectorParser extends ResolverPluginDependencyParser {
+
+    /** Element name. */
+    @Nonnull public static final QName ELEMENT_NAME =
+            new QName(AttributeResolverNamespaceHandler.NAMESPACE, "InputDataConnector");
+
+    /** Class logger. */
+    @Nonnull private final Logger log = LoggerFactory.getLogger(InputDataConnectorParser.class);
+
+    /** {@inheritDoc} */
+    @Override protected Class<ResolverDataConnectorDependency> getBeanClass(@Nullable final Element element) {
+        return ResolverDataConnectorDependency.class;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
+            @Nonnull final BeanDefinitionBuilder builder) {
+        super.doParse(config, parserContext, builder);
+        
+        final String attributes = StringSupport.trimOrNull(config.getAttributeNS(null, "attributeNames"));
+        final String allAttributes = StringSupport.trimOrNull(config.getAttributeNS(null, "allAttributes"));
+        if (attributes != null) {
+            if (allAttributes != null) {
+                log.error("attributeNames and allAttributes are mutually exclusive");
+                throw new BeanCreationException(ELEMENT_NAME.getLocalPart() + ": attributeNames and allAttributes are mutually exclusive");
+            }
+            builder.addPropertyValue("attributeNames", attributes);
+        } else if (allAttributes != null) {
+            builder.addPropertyValue("allAttributes", allAttributes);
+        } else {
+            log.error("One of attributeNames or allAttributes must be specified");
+            throw new BeanCreationException(ELEMENT_NAME.getLocalPart() + ": One of attributeNames or allAttributes must be specified");
+        }
+    }
+    
 }
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/DependencyTypesTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/DependencyTypesTest.java
index dde2170..c76eecc 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/DependencyTypesTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/DependencyTypesTest.java
@@ -1,73 +1,73 @@
-/*
- * 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.attribute.resolver.spring;
-
-import net.shibboleth.idp.attribute.resolver.AttributeDefinition;
-import net.shibboleth.idp.attribute.resolver.ResolverAttributeDefinitionDependency;
-import net.shibboleth.idp.attribute.resolver.ResolverDataConnectorDependency;
-
-import org.springframework.beans.factory.BeanDefinitionStoreException;
-import org.springframework.context.support.GenericApplicationContext;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- *
- */
-public class DependencyTypesTest extends BaseAttributeDefinitionParserTest {
-
-    @Test public void springList() {
-        final ResolverDataConnectorDependency re = getBean(BEAN_FILE_PATH + "inputDataConnector1.xml", ResolverDataConnectorDependency.class, new GenericApplicationContext());
-        
-        Assert.assertEquals(re.getDependencyPluginId(), "DC1");
-        Assert.assertFalse(re.isAllAttributes());
-        Assert.assertEquals(re.getAttributeNames().size(), 3);
-        Assert.assertTrue(re.getAttributeNames().contains("1"));
-        Assert.assertTrue(re.getAttributeNames().contains("2"));
-        Assert.assertTrue(re.getAttributeNames().contains("3"));
-    }
-    
-    @Test public void allAttributeDataConnector() {
-        final ResolverDataConnectorDependency re = getBean(BEAN_FILE_PATH + "inputDataConnector2.xml", ResolverDataConnectorDependency.class, new GenericApplicationContext());
-        
-        Assert.assertEquals(re.getDependencyPluginId(), "DC2");
-        Assert.assertTrue(re.isAllAttributes());
-        Assert.assertTrue(re.getAttributeNames().isEmpty());
-    }
-    
-    @Test(expectedExceptions={BeanDefinitionStoreException.class,}) public void bothAttributeDataConnector() {
-        getBean(BEAN_FILE_PATH + "inputDataConnector3.xml", ResolverDataConnectorDependency.class, new GenericApplicationContext());
-    }
-
-    @Test(expectedExceptions={BeanDefinitionStoreException.class,}) public void neitherAttributeDataConnector() {
-        getBean(BEAN_FILE_PATH + "inputDataConnector4.xml", ResolverDataConnectorDependency.class, new GenericApplicationContext());
-    }
-    
-    @Test public void attributeInput() {
-        final ResolverAttributeDefinitionDependency re = getBean(BEAN_FILE_PATH + "inputAttributeDefinition1.xml", ResolverAttributeDefinitionDependency.class, new GenericApplicationContext());
-        
-        Assert.assertEquals(re.getDependencyPluginId(), "AD1");
-    }
-    
-    @Test(dependsOnMethods={"attributeInput", "allAttributeDataConnector"}) public void simple() {
-        final AttributeDefinition attr =  getBean(BEAN_FILE_PATH + "simpleDependencies.xml", AttributeDefinition.class, new GenericApplicationContext());
-        
-        Assert.assertEquals(attr.getDependencies().size(), 3);
-    }
-
-}
+/*
+ * 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.attribute.resolver.spring;
+
+import net.shibboleth.idp.attribute.resolver.AttributeDefinition;
+import net.shibboleth.idp.attribute.resolver.ResolverAttributeDefinitionDependency;
+import net.shibboleth.idp.attribute.resolver.ResolverDataConnectorDependency;
+
+import org.springframework.beans.factory.BeanDefinitionStoreException;
+import org.springframework.context.support.GenericApplicationContext;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ *
+ */
+public class DependencyTypesTest extends BaseAttributeDefinitionParserTest {
+
+    @Test public void springList() {
+        final ResolverDataConnectorDependency re = getBean(BEAN_FILE_PATH + "inputDataConnector1.xml", ResolverDataConnectorDependency.class, new GenericApplicationContext());
+        
+        Assert.assertEquals(re.getDependencyPluginId(), "DC1");
+        Assert.assertFalse(re.isAllAttributes());
+        Assert.assertEquals(re.getAttributeNames().size(), 3);
+        Assert.assertTrue(re.getAttributeNames().contains("1"));
+        Assert.assertTrue(re.getAttributeNames().contains("2"));
+        Assert.assertTrue(re.getAttributeNames().contains("3"));
+    }
+    
+    @Test public void allAttributeDataConnector() {
+        final ResolverDataConnectorDependency re = getBean(BEAN_FILE_PATH + "inputDataConnector2.xml", ResolverDataConnectorDependency.class, new GenericApplicationContext());
+        
+        Assert.assertEquals(re.getDependencyPluginId(), "DC2");
+        Assert.assertTrue(re.isAllAttributes());
+        Assert.assertTrue(re.getAttributeNames().isEmpty());
+    }
+    
+    @Test(expectedExceptions={BeanDefinitionStoreException.class,}) public void bothAttributeDataConnector() {
+        getBean(BEAN_FILE_PATH + "inputDataConnector3.xml", ResolverDataConnectorDependency.class, new GenericApplicationContext());
+    }
+
+    @Test(expectedExceptions={BeanDefinitionStoreException.class,}) public void neitherAttributeDataConnector() {
+        getBean(BEAN_FILE_PATH + "inputDataConnector4.xml", ResolverDataConnectorDependency.class, new GenericApplicationContext());
+    }
+    
+    @Test public void attributeInput() {
+        final ResolverAttributeDefinitionDependency re = getBean(BEAN_FILE_PATH + "inputAttributeDefinition1.xml", ResolverAttributeDefinitionDependency.class, new GenericApplicationContext());
+        
+        Assert.assertEquals(re.getDependencyPluginId(), "AD1");
+    }
+    
+    @Test(dependsOnMethods={"attributeInput", "allAttributeDataConnector"}) public void simple() {
+        final AttributeDefinition attr =  getBean(BEAN_FILE_PATH + "simpleDependencies.xml", AttributeDefinition.class, new GenericApplicationContext());
+        
+        Assert.assertEquals(attr.getDependencies().size(), 3);
+    }
+
+}
diff --git a/idp-conf/src/main/resources/conf/admin/general-admin.xml b/idp-conf/src/main/resources/conf/admin/general-admin.xml
index 6e9fc19..9b3b180 100644
--- a/idp-conf/src/main/resources/conf/admin/general-admin.xml
+++ b/idp-conf/src/main/resources/conf/admin/general-admin.xml
@@ -1,53 +1,53 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-    xmlns:context="http://www.springframework.org/schema/context"
-    xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p"
-    xmlns:c="http://www.springframework.org/schema/c" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
-                        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
-
-    default-init-method="initialize"
-    default-destroy-method="destroy">
-
-    <util:list id="shibboleth.AvailableAdminFlows">
-    
-        <!-- Status Page -->
-        <bean parent="shibboleth.AdminFlow"
-            c:id="http://shibboleth.net/ns/profiles/status"
-            p:loggingId="%{idp.service.logging.status:Status}"
-            p:policyName="%{idp.status.accessPolicy:AccessByIPAddress}" />
-
-        <!-- Service Reload -->
-        <bean parent="shibboleth.AdminFlow"
-            c:id="http://shibboleth.net/ns/profiles/reload-service-configuration"
-            p:loggingId="%{idp.service.logging.serviceReload:Reload}"
-            p:policyName="%{idp.reload.accessPolicy:AccessByIPAddress}" />
-
-        <!-- MetadataResolver Reload -->
-        <bean parent="shibboleth.AdminFlow"
-            c:id="http://shibboleth.net/ns/profiles/reload-metadata"
-            p:loggingId="%{idp.service.logging.serviceReload:Reload}"
-            p:policyName="%{idp.reload.accessPolicy:AccessByIPAddress}" />
-
-        <!-- AttributeResolver Debugging -->
-        <bean parent="shibboleth.AdminFlow"
-            c:id="http://shibboleth.net/ns/profiles/resolvertest"
-            p:loggingId="%{idp.service.logging.resolvertest:ResolverTest}"
-            p:policyName="%{idp.resolvertest.accessPolicy:AccessByIPAddress}" />
-
-        <!-- REST StorageService Access -->
-        <bean parent="shibboleth.AdminFlow"
-            c:id="http://shibboleth.net/ns/profiles/storage"
-            p:loggingId="Storage"
-            p:policyName="AccessByIPAddress" />
-    
-        <!-- REST Interface to Metrics -->
-        <bean parent="shibboleth.AdminFlow"
-            c:id="http://shibboleth.net/ns/profiles/metrics"
-            p:loggingId="Metrics"
-            p:policyNameLookupStrategy-ref="shibboleth.metrics.AccessPolicyStrategy" />
-    
-    </util:list>
-
-</beans>
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+    xmlns:context="http://www.springframework.org/schema/context"
+    xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p"
+    xmlns:c="http://www.springframework.org/schema/c" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+                        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
+
+    default-init-method="initialize"
+    default-destroy-method="destroy">
+
+    <util:list id="shibboleth.AvailableAdminFlows">
+    
+        <!-- Status Page -->
+        <bean parent="shibboleth.AdminFlow"
+            c:id="http://shibboleth.net/ns/profiles/status"
+            p:loggingId="%{idp.service.logging.status:Status}"
+            p:policyName="%{idp.status.accessPolicy:AccessByIPAddress}" />
+
+        <!-- Service Reload -->
+        <bean parent="shibboleth.AdminFlow"
+            c:id="http://shibboleth.net/ns/profiles/reload-service-configuration"
+            p:loggingId="%{idp.service.logging.serviceReload:Reload}"
+            p:policyName="%{idp.reload.accessPolicy:AccessByIPAddress}" />
+
+        <!-- MetadataResolver Reload -->
+        <bean parent="shibboleth.AdminFlow"
+            c:id="http://shibboleth.net/ns/profiles/reload-metadata"
+            p:loggingId="%{idp.service.logging.serviceReload:Reload}"
+            p:policyName="%{idp.reload.accessPolicy:AccessByIPAddress}" />
+
+        <!-- AttributeResolver Debugging -->
+        <bean parent="shibboleth.AdminFlow"
+            c:id="http://shibboleth.net/ns/profiles/resolvertest"
+            p:loggingId="%{idp.service.logging.resolvertest:ResolverTest}"
+            p:policyName="%{idp.resolvertest.accessPolicy:AccessByIPAddress}" />
+
+        <!-- REST StorageService Access -->
+        <bean parent="shibboleth.AdminFlow"
+            c:id="http://shibboleth.net/ns/profiles/storage"
+            p:loggingId="Storage"
+            p:policyName="AccessByIPAddress" />
+    
+        <!-- REST Interface to Metrics -->
+        <bean parent="shibboleth.AdminFlow"
+            c:id="http://shibboleth.net/ns/profiles/metrics"
+            p:loggingId="Metrics"
+            p:policyNameLookupStrategy-ref="shibboleth.metrics.AccessPolicyStrategy" />
+    
+    </util:list>
+
+</beans>
diff --git a/idp-conf/src/main/resources/conf/authn/mfa-authn-config.xml b/idp-conf/src/main/resources/conf/authn/mfa-authn-config.xml
index 6c6a306..ef3b80e 100644
--- a/idp-conf/src/main/resources/conf/authn/mfa-authn-config.xml
+++ b/idp-conf/src/main/resources/conf/authn/mfa-authn-config.xml
@@ -1,99 +1,99 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:context="http://www.springframework.org/schema/context"
-       xmlns:util="http://www.springframework.org/schema/util"
-       xmlns:p="http://www.springframework.org/schema/p"
-       xmlns:c="http://www.springframework.org/schema/c"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
-                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
-                           
-       default-init-method="initialize"
-       default-destroy-method="destroy">
-
-    <!--
-    This is a map of transition rules that guide the behavior of the MFA flow
-    and controls how factors are sequenced, skipped, etc. The key of each entry
-    is the name of the step/flow out of which control is passing. The starting
-    rule has an empty key.
-    
-    Each entry is a bean inherited from "shibboleth.authn.MFA.Transition". Per
-    the Javadoc for net.shibboleth.idp.authn.MultiFactorAuthenticationTransition:
-            
-        p:nextFlow (String)
-            - A flow to run if the previous step signaled a "proceed" event, for simple
-                transitions.
-                
-        p:nextFlowStrategy (Function<ProfileRequestContext,String>)
-            - A function to run if the previous step signaled a "proceed" event, for dynamic
-                transitions. Returning null ends the MFA process.
-            
-        p:nextFlowStrategyMap (Map<String,Object> where Object is String or Function<ProfileRequestContext,String>)
-            - Fully dynamic way of expressing control paths. Map is keyed by a previously
-                signaled event and the value is a flow to run or a function to
-                return the flow to run. Returning null ends the MFA process.
-                
-    When no rule is provided, there's an implicit "null" that ends the MFA flow
-    with whatever event was last signaled. If the "proceed" event from a step is
-    the final event, then the MFA process attempts to complete itself successfully.
-    -->
-    <util:map id="shibboleth.authn.MFA.TransitionMap">
-        <!-- First rule runs the IPAddress login flow. -->
-        <entry key="">
-            <bean parent="shibboleth.authn.MFA.Transition" p:nextFlow="authn/IPAddress" />
-        </entry>
-        
-        <!--
-        Second rule runs a function if IPAddress succeeds, to determine whether an additional
-        factor is required.
-        -->
-        <entry key="authn/IPAddress">
-            <bean parent="shibboleth.authn.MFA.Transition" p:nextFlowStrategy-ref="checkSecondFactor" />
-        </entry>
-        
-        <!-- An implicit final rule will return whatever the final flow returns. -->
-    </util:map>
-
-    <!-- Example script to see if second factor is required. -->
-    <bean id="checkSecondFactor" parent="shibboleth.ContextFunctions.Scripted" factory-method="inlineScript"
-        p:customObject-ref="shibboleth.AttributeResolverService">
-        <constructor-arg>
-            <value>
-            <![CDATA[
-                nextFlow = "authn/Password";
-
-                // Go straight to second factor if we have to, or set up for an attribute lookup first.
-                authCtx = input.getSubcontext("net.shibboleth.idp.authn.context.AuthenticationContext");
-                mfaCtx = authCtx.getSubcontext("net.shibboleth.idp.authn.context.MultiFactorAuthenticationContext");
-                if (mfaCtx.isAcceptable()) {
-                    // Attribute check is required to decide if first factor alone is enough.
-                    resCtx = input.getSubcontext(
-                        "net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext", true);
-
-                    // Look up the username using a standard function.
-                    usernameLookupStrategyClass
-                        = Java.type("net.shibboleth.idp.session.context.navigate.CanonicalUsernameLookupStrategy");
-                    usernameLookupStrategy = new usernameLookupStrategyClass();
-                    resCtx.setPrincipal(usernameLookupStrategy.apply(input));
-                        
-                    resCtx.getRequestedIdPAttributeNames().add("allowedLoginMethods");
-                    resCtx.resolveAttributes(custom);
-                    
-                    // Check for an attribute that authorizes use of first factor.
-                    attribute = resCtx.getResolvedIdPAttributes().get("allowedLoginMethods");
-                    valueType =  Java.type("net.shibboleth.idp.attribute.StringAttributeValue");
-                    if (attribute != null && attribute.getValues().contains(new valueType("IPAddress"))) {
-                        nextFlow = null;
-                    }
-                    
-                    input.removeSubcontext(resCtx);   // cleanup
-                }
-                
-                nextFlow;   // pass control to second factor or end with the first
-            ]]>
-            </value>
-        </constructor-arg>
-    </bean>
-    
-</beans>
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:context="http://www.springframework.org/schema/context"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:c="http://www.springframework.org/schema/c"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
+                           
+       default-init-method="initialize"
+       default-destroy-method="destroy">
+
+    <!--
+    This is a map of transition rules that guide the behavior of the MFA flow
+    and controls how factors are sequenced, skipped, etc. The key of each entry
+    is the name of the step/flow out of which control is passing. The starting
+    rule has an empty key.
+    
+    Each entry is a bean inherited from "shibboleth.authn.MFA.Transition". Per
+    the Javadoc for net.shibboleth.idp.authn.MultiFactorAuthenticationTransition:
+            
+        p:nextFlow (String)
+            - A flow to run if the previous step signaled a "proceed" event, for simple
+                transitions.
+                
+        p:nextFlowStrategy (Function<ProfileRequestContext,String>)
+            - A function to run if the previous step signaled a "proceed" event, for dynamic
+                transitions. Returning null ends the MFA process.
+            
+        p:nextFlowStrategyMap (Map<String,Object> where Object is String or Function<ProfileRequestContext,String>)
+            - Fully dynamic way of expressing control paths. Map is keyed by a previously
+                signaled event and the value is a flow to run or a function to
+                return the flow to run. Returning null ends the MFA process.
+                
+    When no rule is provided, there's an implicit "null" that ends the MFA flow
+    with whatever event was last signaled. If the "proceed" event from a step is
+    the final event, then the MFA process attempts to complete itself successfully.
+    -->
+    <util:map id="shibboleth.authn.MFA.TransitionMap">
+        <!-- First rule runs the IPAddress login flow. -->
+        <entry key="">
+            <bean parent="shibboleth.authn.MFA.Transition" p:nextFlow="authn/IPAddress" />
+        </entry>
+        
+        <!--
+        Second rule runs a function if IPAddress succeeds, to determine whether an additional
+        factor is required.
+        -->
+        <entry key="authn/IPAddress">
+            <bean parent="shibboleth.authn.MFA.Transition" p:nextFlowStrategy-ref="checkSecondFactor" />
+        </entry>
+        
+        <!-- An implicit final rule will return whatever the final flow returns. -->
+    </util:map>
+
+    <!-- Example script to see if second factor is required. -->
+    <bean id="checkSecondFactor" parent="shibboleth.ContextFunctions.Scripted" factory-method="inlineScript"
+        p:customObject-ref="shibboleth.AttributeResolverService">
+        <constructor-arg>
+            <value>
+            <![CDATA[
+                nextFlow = "authn/Password";
+
+                // Go straight to second factor if we have to, or set up for an attribute lookup first.
+                authCtx = input.getSubcontext("net.shibboleth.idp.authn.context.AuthenticationContext");
+                mfaCtx = authCtx.getSubcontext("net.shibboleth.idp.authn.context.MultiFactorAuthenticationContext");
+                if (mfaCtx.isAcceptable()) {
+                    // Attribute check is required to decide if first factor alone is enough.
+                    resCtx = input.getSubcontext(
+                        "net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext", true);
+
+                    // Look up the username using a standard function.
+                    usernameLookupStrategyClass
+                        = Java.type("net.shibboleth.idp.session.context.navigate.CanonicalUsernameLookupStrategy");
+                    usernameLookupStrategy = new usernameLookupStrategyClass();
+                    resCtx.setPrincipal(usernameLookupStrategy.apply(input));
+                        
+                    resCtx.getRequestedIdPAttributeNames().add("allowedLoginMethods");
+                    resCtx.resolveAttributes(custom);
+                    
+                    // Check for an attribute that authorizes use of first factor.
+                    attribute = resCtx.getResolvedIdPAttributes().get("allowedLoginMethods");
+                    valueType =  Java.type("net.shibboleth.idp.attribute.StringAttributeValue");
+                    if (attribute != null && attribute.getValues().contains(new valueType("IPAddress"))) {
+                        nextFlow = null;
+                    }
+                    
+                    input.removeSubcontext(resCtx);   // cleanup
+                }
+                
+                nextFlow;   // pass control to second factor or end with the first
+            ]]>
+            </value>
+        </constructor-arg>
+    </bean>
+    
+</beans>
diff --git a/idp-conf/src/main/resources/system/conf/general-admin-system.xml b/idp-conf/src/main/resources/system/conf/general-admin-system.xml
index 628ca49..32d1066 100644
--- a/idp-conf/src/main/resources/system/conf/general-admin-system.xml
+++ b/idp-conf/src/main/resources/system/conf/general-admin-system.xml
@@ -1,107 +1,107 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:context="http://www.springframework.org/schema/context"
-       xmlns:util="http://www.springframework.org/schema/util"
-       xmlns:p="http://www.springframework.org/schema/p"
-       xmlns:c="http://www.springframework.org/schema/c"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
-                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
-                           
-       default-init-method="initialize"
-       default-destroy-method="destroy">
-
-    <import resource="../../conf/admin/general-admin.xml" />
-    <import resource="../../conf/admin/metrics.xml" />
-
-    <!-- A parent bean to default some of the flow boilerplate. -->
-
-    <bean id="shibboleth.AdminFlow" abstract="true"
-            class="net.shibboleth.idp.admin.BasicAdministrativeFlowDescriptor"
-            p:servletRequest-ref="shibboleth.HttpServletRequest"
-            p:nonBrowserSupported="false" />
-
-    <!-- Function for returning custom access control policies for access to metrics. -->
-
-    <bean id="shibboleth.metrics.AccessPolicyStrategy" parent="shibboleth.ContextFunctions.Expression"
-        c:expression="#custom.get('policyMap').get(#input.getSubcontext(T(net.shibboleth.idp.profile.context.SpringRequestContext)).getRequestContext().getFlowScope().get('metricId')) ?: #custom.get('defaultPolicy')"
-        c:outputType="#{T(java.lang.String)}">
-        <property name="customObject">
-            <map>
-                <entry key="policyMap" value-ref="shibboleth.metrics.AccessPolicyMap" />
-                <entry key="defaultPolicy" value-ref="shibboleth.metrics.DefaultAccessPolicy" />
-            </map>
-        </property>
-    </bean>
-    
-    <!-- MetricRegistry we can control with logging categories. -->
-    <bean id="shibboleth.metrics.MetricRegistry"
-        class="org.opensaml.core.metrics.FilteredMetricRegistry"
-        p:metricFilter-ref="shibboleth.metrics.LoggerDrivenMetricFilter" />
-        
-    <bean id="shibboleth.metrics.LoggerDrivenMetricFilter"
-        class="org.opensaml.core.metrics.LoggerDrivenMetricFilter"
-        c:_0="metrics."
-        c:_1="#{getObject('shibboleth.metrics.MetricLevelMap')}" />
-        
-    <!-- Parent beans for registering MetricSets and Metrics. -->
-    
-    <bean id="shibboleth.metrics.RegisterMetricSets" abstract="true"
-        class="org.springframework.beans.factory.config.MethodInvokingBean"
-        p:targetObject-ref="shibboleth.metrics.MetricRegistry"
-        p:targetMethod="registerMultiple" />
-
-    <bean id="shibboleth.metrics.RegisterMetric" abstract="true"
-        class="org.springframework.beans.factory.config.MethodInvokingBean"
-        p:targetObject-ref="shibboleth.metrics.MetricRegistry"
-        p:targetMethod="register" />
-        
-    <bean id="shibboleth.metrics.HTTPReporter" abstract="true" destroy-method="stop"
-        class="net.shibboleth.idp.metrics.impl.HTTPReporter"
-        c:registry-ref="shibboleth.metrics.MetricRegistry"
-        c:filter="#{null}"
-        p:httpClient-ref="shibboleth.NonCachingHttpClient" />
-    
-    <!-- Some predefined metric sets, only created if installed by user. -->
-    
-    <bean id="shibboleth.metrics.CoreGaugeSet" class="net.shibboleth.idp.metrics.impl.CoreGaugeSet" lazy-init="true" />
-    
-    <bean id="shibboleth.metrics.IdPGaugeSet" class="net.shibboleth.idp.metrics.impl.IdPGaugeSet" lazy-init="true" />
-    
-    <bean id="shibboleth.metrics.LoggingGaugeSet"
-        class="net.shibboleth.idp.metrics.ReloadableServiceGaugeSet" lazy-init="true"
-        c:metricName="logging"
-        p:service-ref="shibboleth.LoggingService" />
-    
-    <bean id="shibboleth.metrics.AccessControlGaugeSet"
-        class="net.shibboleth.idp.metrics.ReloadableServiceGaugeSet" lazy-init="true"
-        c:metricName="accesscontrol"
-        p:service-ref="shibboleth.ReloadableAccessControlService" />
-
-    <bean id="shibboleth.metrics.MetadataGaugeSet"
-        class="net.shibboleth.idp.saml.metadata.impl.MetadataResolverServiceGaugeSet" lazy-init="true"
-        c:metricName="metadata"
-        p:service-ref="shibboleth.MetadataResolverService" />
-
-    <bean id="shibboleth.metrics.RelyingPartyGaugeSet"
-        class="net.shibboleth.idp.metrics.ReloadableServiceGaugeSet" lazy-init="true"
-        c:metricName="relyingparty"
-        p:service-ref="shibboleth.RelyingPartyResolverService" />
-
-    <bean id="shibboleth.metrics.NameIdentifierGaugeSet"
-        class="net.shibboleth.idp.metrics.ReloadableServiceGaugeSet" lazy-init="true"
-        c:metricName="nameid"
-        p:service-ref="shibboleth.NameIdentifierGenerationService" />
-
-    <bean id="shibboleth.metrics.AttributeResolverGaugeSet"
-        class="net.shibboleth.idp.attribute.resolver.impl.AttributeResolverServiceGaugeSet" lazy-init="true"
-        c:metricName="attribute.resolver"
-        p:service-ref="shibboleth.AttributeResolverService" />
-
-    <bean id="shibboleth.metrics.AttributeFilterGaugeSet"
-        class="net.shibboleth.idp.metrics.ReloadableServiceGaugeSet" lazy-init="true"
-        c:metricName="attribute.filter"
-        p:service-ref="shibboleth.AttributeFilterService" />
-        
-</beans>
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:context="http://www.springframework.org/schema/context"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:c="http://www.springframework.org/schema/c"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
+                           
+       default-init-method="initialize"
+       default-destroy-method="destroy">
+
+    <import resource="../../conf/admin/general-admin.xml" />
+    <import resource="../../conf/admin/metrics.xml" />
+
+    <!-- A parent bean to default some of the flow boilerplate. -->
+
+    <bean id="shibboleth.AdminFlow" abstract="true"
+            class="net.shibboleth.idp.admin.BasicAdministrativeFlowDescriptor"
+            p:servletRequest-ref="shibboleth.HttpServletRequest"
+            p:nonBrowserSupported="false" />
+
+    <!-- Function for returning custom access control policies for access to metrics. -->
+
+    <bean id="shibboleth.metrics.AccessPolicyStrategy" parent="shibboleth.ContextFunctions.Expression"
+        c:expression="#custom.get('policyMap').get(#input.getSubcontext(T(net.shibboleth.idp.profile.context.SpringRequestContext)).getRequestContext().getFlowScope().get('metricId')) ?: #custom.get('defaultPolicy')"
+        c:outputType="#{T(java.lang.String)}">
+        <property name="customObject">
+            <map>
+                <entry key="policyMap" value-ref="shibboleth.metrics.AccessPolicyMap" />
+                <entry key="defaultPolicy" value-ref="shibboleth.metrics.DefaultAccessPolicy" />
+            </map>
+        </property>
+    </bean>
+    
+    <!-- MetricRegistry we can control with logging categories. -->
+    <bean id="shibboleth.metrics.MetricRegistry"
+        class="org.opensaml.core.metrics.FilteredMetricRegistry"
+        p:metricFilter-ref="shibboleth.metrics.LoggerDrivenMetricFilter" />
+        
+    <bean id="shibboleth.metrics.LoggerDrivenMetricFilter"
+        class="org.opensaml.core.metrics.LoggerDrivenMetricFilter"
+        c:_0="metrics."
+        c:_1="#{getObject('shibboleth.metrics.MetricLevelMap')}" />
+        
+    <!-- Parent beans for registering MetricSets and Metrics. -->
+    
+    <bean id="shibboleth.metrics.RegisterMetricSets" abstract="true"
+        class="org.springframework.beans.factory.config.MethodInvokingBean"
+        p:targetObject-ref="shibboleth.metrics.MetricRegistry"
+        p:targetMethod="registerMultiple" />
+
+    <bean id="shibboleth.metrics.RegisterMetric" abstract="true"
+        class="org.springframework.beans.factory.config.MethodInvokingBean"
+        p:targetObject-ref="shibboleth.metrics.MetricRegistry"
+        p:targetMethod="register" />
+        
+    <bean id="shibboleth.metrics.HTTPReporter" abstract="true" destroy-method="stop"
+        class="net.shibboleth.idp.metrics.impl.HTTPReporter"
+        c:registry-ref="shibboleth.metrics.MetricRegistry"
+        c:filter="#{null}"
+        p:httpClient-ref="shibboleth.NonCachingHttpClient" />
+    
+    <!-- Some predefined metric sets, only created if installed by user. -->
+    
+    <bean id="shibboleth.metrics.CoreGaugeSet" class="net.shibboleth.idp.metrics.impl.CoreGaugeSet" lazy-init="true" />
+    
+    <bean id="shibboleth.metrics.IdPGaugeSet" class="net.shibboleth.idp.metrics.impl.IdPGaugeSet" lazy-init="true" />
+    
+    <bean id="shibboleth.metrics.LoggingGaugeSet"
+        class="net.shibboleth.idp.metrics.ReloadableServiceGaugeSet" lazy-init="true"
+        c:metricName="logging"
+        p:service-ref="shibboleth.LoggingService" />
+    
+    <bean id="shibboleth.metrics.AccessControlGaugeSet"
+        class="net.shibboleth.idp.metrics.ReloadableServiceGaugeSet" lazy-init="true"
+        c:metricName="accesscontrol"
+        p:service-ref="shibboleth.ReloadableAccessControlService" />
+
+    <bean id="shibboleth.metrics.MetadataGaugeSet"
+        class="net.shibboleth.idp.saml.metadata.impl.MetadataResolverServiceGaugeSet" lazy-init="true"
+        c:metricName="metadata"
+        p:service-ref="shibboleth.MetadataResolverService" />
+
+    <bean id="shibboleth.metrics.RelyingPartyGaugeSet"
+        class="net.shibboleth.idp.metrics.ReloadableServiceGaugeSet" lazy-init="true"
+        c:metricName="relyingparty"
+        p:service-ref="shibboleth.RelyingPartyResolverService" />
+
+    <bean id="shibboleth.metrics.NameIdentifierGaugeSet"
+        class="net.shibboleth.idp.metrics.ReloadableServiceGaugeSet" lazy-init="true"
+        c:metricName="nameid"
+        p:service-ref="shibboleth.NameIdentifierGenerationService" />
+
+    <bean id="shibboleth.metrics.AttributeResolverGaugeSet"
+        class="net.shibboleth.idp.attribute.resolver.impl.AttributeResolverServiceGaugeSet" lazy-init="true"
+        c:metricName="attribute.resolver"
+        p:service-ref="shibboleth.AttributeResolverService" />
+
+    <bean id="shibboleth.metrics.AttributeFilterGaugeSet"
+        class="net.shibboleth.idp.metrics.ReloadableServiceGaugeSet" lazy-init="true"
+        c:metricName="attribute.filter"
+        p:service-ref="shibboleth.AttributeFilterService" />
+        
+</beans>
diff --git a/idp-conf/src/main/resources/system/flows/admin/storage-beans.xml b/idp-conf/src/main/resources/system/flows/admin/storage-beans.xml
index e01f090..a3415fa 100644
--- a/idp-conf/src/main/resources/system/flows/admin/storage-beans.xml
+++ b/idp-conf/src/main/resources/system/flows/admin/storage-beans.xml
@@ -1,42 +1,42 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans
-    xmlns="http://www.springframework.org/schema/beans"
-    xmlns:c="http://www.springframework.org/schema/c"
-    xmlns:context="http://www.springframework.org/schema/context"
-    xmlns:p="http://www.springframework.org/schema/p"
-    xmlns:util="http://www.springframework.org/schema/util"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
-                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
-    default-init-method="initialize"
-    default-destroy-method="destroy">
-
-    <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
-        p:placeholderPrefix="%{" p:placeholderSuffix="}" />
-
-    <!-- Profile ID for flow. -->    
-    <bean id="shibboleth.AdminProfileId" class="java.lang.String" c:_0="http://shibboleth.net/ns/profiles/storage" />
-    
-    <!-- Default operation/resource suppliers for access checks. -->
-
-    <bean id="shibboleth.AdminOperationLookupStrategy" parent="shibboleth.ContextFunctions.Expression"
-        c:outputType="#{T(java.lang.String)}"
-        c:expression="#custom.getMethod()"
-        p:customObject-ref="shibboleth.HttpServletRequest" />
-        
-    <bean id="shibboleth.AdminResourceLookupStrategy" parent="shibboleth.ContextFunctions.Expression"
-        c:outputType="#{T(java.lang.String)}"
-        c:expression="#input.getSubcontext(T(net.shibboleth.idp.profile.context.SpringRequestContext)).getRequestContext().getFlowScope().get('context')" />
-    
-    <!--  Work beans. -->
-    
-    <bean id="DoStorageOperation" class="net.shibboleth.idp.admin.impl.DoStorageOperation" scope="prototype"
-        p:httpServletRequest-ref="shibboleth.HttpServletRequest"
-        p:httpServletResponse-ref="shibboleth.HttpServletResponse"
-        p:objectMapper-ref="shibboleth.JSONObjectMapper" />
-        
-    <bean id="RecordResponseComplete" class="net.shibboleth.idp.profile.impl.RecordResponseComplete" scope="prototype" />
-    
-    
-</beans>
+<?xml version="1.0" encoding="UTF-8"?>
+<beans
+    xmlns="http://www.springframework.org/schema/beans"
+    xmlns:c="http://www.springframework.org/schema/c"
+    xmlns:context="http://www.springframework.org/schema/context"
+    xmlns:p="http://www.springframework.org/schema/p"
+    xmlns:util="http://www.springframework.org/schema/util"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
+    default-init-method="initialize"
+    default-destroy-method="destroy">
+
+    <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
+        p:placeholderPrefix="%{" p:placeholderSuffix="}" />
+
+    <!-- Profile ID for flow. -->    
+    <bean id="shibboleth.AdminProfileId" class="java.lang.String" c:_0="http://shibboleth.net/ns/profiles/storage" />
+    
+    <!-- Default operation/resource suppliers for access checks. -->
+
+    <bean id="shibboleth.AdminOperationLookupStrategy" parent="shibboleth.ContextFunctions.Expression"
+        c:outputType="#{T(java.lang.String)}"
+        c:expression="#custom.getMethod()"
+        p:customObject-ref="shibboleth.HttpServletRequest" />
+        
+    <bean id="shibboleth.AdminResourceLookupStrategy" parent="shibboleth.ContextFunctions.Expression"
+        c:outputType="#{T(java.lang.String)}"
+        c:expression="#input.getSubcontext(T(net.shibboleth.idp.profile.context.SpringRequestContext)).getRequestContext().getFlowScope().get('context')" />
+    
+    <!--  Work beans. -->
+    
+    <bean id="DoStorageOperation" class="net.shibboleth.idp.admin.impl.DoStorageOperation" scope="prototype"
+        p:httpServletRequest-ref="shibboleth.HttpServletRequest"
+        p:httpServletResponse-ref="shibboleth.HttpServletResponse"
+        p:objectMapper-ref="shibboleth.JSONObjectMapper" />
+        
+    <bean id="RecordResponseComplete" class="net.shibboleth.idp.profile.impl.RecordResponseComplete" scope="prototype" />
+    
+    
+</beans>
diff --git a/idp-conf/src/main/resources/system/flows/admin/storage-flow.xml b/idp-conf/src/main/resources/system/flows/admin/storage-flow.xml
index c5451f8..9a179aa 100644
--- a/idp-conf/src/main/resources/system/flows/admin/storage-flow.xml
+++ b/idp-conf/src/main/resources/system/flows/admin/storage-flow.xml
@@ -1,44 +1,44 @@
-<flow xmlns="http://www.springframework.org/schema/webflow"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow.xsd"
-    parent="admin.abstract">
-
-    <on-start>
-        <!-- Extract PATH_INFO containing account key and operation. -->
-        <evaluate expression="flowRequestContext.getActiveFlow().getId()" result="flowScope.flowId" />
-        <evaluate expression="externalContext.getNativeRequest().getPathInfo().length() gt flowId.length() + 2 ? externalContext.getNativeRequest().getPathInfo().substring(flowId.length() + 2) : 'all'" result="flowScope.pathInfo" />
-        <evaluate expression="pathInfo.split('/')" result="flowScope.pathInfoArray" />
-        <evaluate expression="pathInfoArray.length gt 0 ? T(net.shibboleth.utilities.java.support.net.URISupport).doURLDecode(pathInfoArray[0]) : null" result="flowScope.storageServiceId" />
-        <evaluate expression="pathInfoArray.length gt 1 ? T(net.shibboleth.utilities.java.support.net.URISupport).doURLDecode(pathInfoArray[1]) : null" result="flowScope.context" />
-        <evaluate expression="pathInfoArray.length gt 2 ? T(net.shibboleth.utilities.java.support.net.URISupport).doURLDecode(pathInfoArray[2]) : null" result="flowScope.key" />
-    </on-start>
-
-    <!-- Start action. -->
-        
-    <action-state id="InitializeProfileRequestContext">
-        <evaluate expression="InitializeProfileRequestContext" />
-        <evaluate expression="'proceed'" />
-        
-        <!-- Branch to determine if authentication is required. -->
-        <transition on="proceed" to="DoAdminPreamble" />
-    </action-state>
-
-    <!-- Resume actual flow processing. -->
-
-    <action-state id="DoProfileWork">
-        <evaluate expression="CheckAccess" />
-        <evaluate expression="WriteAuditLog" />
-        <evaluate expression="DoStorageOperation" />
-        <evaluate expression="RecordResponseComplete" />
-        <evaluate expression="'proceed'" />
-        
-        <transition on="proceed" to="end" />
-    </action-state>
-    
-    <!-- Terminus -->
-
-    <end-state id="end" />
-    
-    <bean-import resource="storage-beans.xml" />
-
-</flow>
+<flow xmlns="http://www.springframework.org/schema/webflow"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow.xsd"
+    parent="admin.abstract">
+
+    <on-start>
+        <!-- Extract PATH_INFO containing account key and operation. -->
+        <evaluate expression="flowRequestContext.getActiveFlow().getId()" result="flowScope.flowId" />
+        <evaluate expression="externalContext.getNativeRequest().getPathInfo().length() gt flowId.length() + 2 ? externalContext.getNativeRequest().getPathInfo().substring(flowId.length() + 2) : 'all'" result="flowScope.pathInfo" />
+        <evaluate expression="pathInfo.split('/')" result="flowScope.pathInfoArray" />
+        <evaluate expression="pathInfoArray.length gt 0 ? T(net.shibboleth.utilities.java.support.net.URISupport).doURLDecode(pathInfoArray[0]) : null" result="flowScope.storageServiceId" />
+        <evaluate expression="pathInfoArray.length gt 1 ? T(net.shibboleth.utilities.java.support.net.URISupport).doURLDecode(pathInfoArray[1]) : null" result="flowScope.context" />
+        <evaluate expression="pathInfoArray.length gt 2 ? T(net.shibboleth.utilities.java.support.net.URISupport).doURLDecode(pathInfoArray[2]) : null" result="flowScope.key" />
+    </on-start>
+
+    <!-- Start action. -->
+        
+    <action-state id="InitializeProfileRequestContext">
+        <evaluate expression="InitializeProfileRequestContext" />
+        <evaluate expression="'proceed'" />
+        
+        <!-- Branch to determine if authentication is required. -->
+        <transition on="proceed" to="DoAdminPreamble" />
+    </action-state>
+
+    <!-- Resume actual flow processing. -->
+
+    <action-state id="DoProfileWork">
+        <evaluate expression="CheckAccess" />
+        <evaluate expression="WriteAuditLog" />
+        <evaluate expression="DoStorageOperation" />
+        <evaluate expression="RecordResponseComplete" />
+        <evaluate expression="'proceed'" />
+        
+        <transition on="proceed" to="end" />
+    </action-state>
+    
+    <!-- Terminus -->
+
+    <end-state id="end" />
+    
+    <bean-import resource="storage-beans.xml" />
+
+</flow>
diff --git a/idp-core/src/main/resources/logback.xml b/idp-core/src/main/resources/logback.xml
index b7ec7cc..4c9fc6d 100644
--- a/idp-core/src/main/resources/logback.xml
+++ b/idp-core/src/main/resources/logback.xml
@@ -1,14 +1,14 @@
-<configuration>
-
-  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-        <charset>UTF-8</charset>
-        <Pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%5level] : %logger: %msg%n</Pattern>
-    </encoder>
-  </appender>
-    
-  <root level="warn">
-    <appender-ref ref="STDOUT" />
-  </root>
-  
-</configuration>
+<configuration>
+
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+        <charset>UTF-8</charset>
+        <Pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%5level] : %logger: %msg%n</Pattern>
+    </encoder>
+  </appender>
+    
+  <root level="warn">
+    <appender-ref ref="STDOUT" />
+  </root>
+  
+</configuration>
diff --git a/idp-installer/src/main/resources/net/shibboleth/idp/installer/ant.xml b/idp-installer/src/main/resources/net/shibboleth/idp/installer/ant.xml
index 7a8079f..314aa4e 100644
--- a/idp-installer/src/main/resources/net/shibboleth/idp/installer/ant.xml
+++ b/idp-installer/src/main/resources/net/shibboleth/idp/installer/ant.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0"?>
-<antlib>
-    <taskdef name="selfsignedcert" classname="net.shibboleth.idp.installer.ant.SelfSignedCertificateGeneratorTask"/>
-    <taskdef name="keystorestrategy" classname="net.shibboleth.idp.installer.ant.BasicKeystoreKeyStrategyTask"/>
-    <taskdef name="mergeproperties" classname="net.shibboleth.idp.installer.ant.MergePropertiesTask"/>
-    <taskdef name="metadatagenerate" classname="net.shibboleth.idp.installer.ant.MetadataGeneratorTask"/>
+<?xml version="1.0"?>
+<antlib>
+    <taskdef name="selfsignedcert" classname="net.shibboleth.idp.installer.ant.SelfSignedCertificateGeneratorTask"/>
+    <taskdef name="keystorestrategy" classname="net.shibboleth.idp.installer.ant.BasicKeystoreKeyStrategyTask"/>
+    <taskdef name="mergeproperties" classname="net.shibboleth.idp.installer.ant.MergePropertiesTask"/>
+    <taskdef name="metadatagenerate" classname="net.shibboleth.idp.installer.ant.MetadataGeneratorTask"/>
 </antlib>
\ No newline at end of file
diff --git a/idp-installer/src/main/resources/net/shibboleth/idp/installer/metadata-generator.xml b/idp-installer/src/main/resources/net/shibboleth/idp/installer/metadata-generator.xml
index dea0f5f..047fa4a 100644
--- a/idp-installer/src/main/resources/net/shibboleth/idp/installer/metadata-generator.xml
+++ b/idp-installer/src/main/resources/net/shibboleth/idp/installer/metadata-generator.xml
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:context="http://www.springframework.org/schema/context"
-	xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p"
-	xmlns:c="http://www.springframework.org/schema/c" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
-                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
-	<bean
-		class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
-		p:placeholderPrefix="%{" p:placeholderSuffix="}" />
-
-    <context:property-placeholder />
-
-	<bean id="IdPConfiguration"
-		class="net.shibboleth.idp.installer.metadata.MetadataGeneratorParameters"
-		p:encryptionCertResource="%{idp.encryption.cert}" p:signingCertResource="%{idp.signing.cert}"
-		p:entityID="%{idp.entityID}" p:scope="%{idp.scope}" />
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p"
+	xmlns:c="http://www.springframework.org/schema/c" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+	<bean
+		class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
+		p:placeholderPrefix="%{" p:placeholderSuffix="}" />
+
+    <context:property-placeholder />
+
+	<bean id="IdPConfiguration"
+		class="net.shibboleth.idp.installer.metadata.MetadataGeneratorParameters"
+		p:encryptionCertResource="%{idp.encryption.cert}" p:signingCertResource="%{idp.signing.cert}"
+		p:entityID="%{idp.entityID}" p:scope="%{idp.scope}" />
 </beans>
\ No newline at end of file
diff --git a/idp-saml-api/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/SingleLogoutProfileConfigurationTest.java b/idp-saml-api/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/SingleLogoutProfileConfigurationTest.java
index 02e6dbd..5d8fd31 100644
--- a/idp-saml-api/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/SingleLogoutProfileConfigurationTest.java
+++ b/idp-saml-api/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/SingleLogoutProfileConfigurationTest.java
@@ -1,61 +1,61 @@
-/*
- * 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.saml.saml2.profile.config;
-
-import net.shibboleth.idp.saml.profile.config.BasicSAMLArtifactConfiguration;
-import net.shibboleth.idp.saml.profile.config.SAMLArtifactConfiguration;
-import net.shibboleth.utilities.java.support.logic.FunctionSupport;
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/** Unit test for {@link SingleLogoutProfileConfiguration}. */
-public class SingleLogoutProfileConfigurationTest {
-
-    @Test
-    public void testProfileId() {
-        Assert.assertEquals(SingleLogoutProfileConfiguration.PROFILE_ID,
-                "http://shibboleth.net/ns/profiles/saml2/logout");
-
-        final SingleLogoutProfileConfiguration config = new SingleLogoutProfileConfiguration();
-        Assert.assertEquals(config.getId(), SingleLogoutProfileConfiguration.PROFILE_ID);
-    }
-
-    @Test
-    public void testArtifactConfiguration() {
-        final SingleLogoutProfileConfiguration config = new SingleLogoutProfileConfiguration();
-        Assert.assertNull(config.getArtifactConfiguration());
-
-        final SAMLArtifactConfiguration artifactConfiguration = new BasicSAMLArtifactConfiguration();
-        config.setArtifactConfiguration(artifactConfiguration);
-
-        Assert.assertSame(config.getArtifactConfiguration(), artifactConfiguration);
-    }
-
-    @Test
-    public void testIndirectArtifactConfiguration() {
-        final SingleLogoutProfileConfiguration config = new SingleLogoutProfileConfiguration();
-
-        final SAMLArtifactConfiguration artifactConfiguration = new BasicSAMLArtifactConfiguration();
-        config.setArtifactConfigurationLookupStrategy(
-                FunctionSupport.<ProfileRequestContext,SAMLArtifactConfiguration>constant(artifactConfiguration));
-
-        Assert.assertSame(config.getArtifactConfiguration(), artifactConfiguration);
-    }
-
+/*
+ * 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.saml.saml2.profile.config;
+
+import net.shibboleth.idp.saml.profile.config.BasicSAMLArtifactConfiguration;
+import net.shibboleth.idp.saml.profile.config.SAMLArtifactConfiguration;
+import net.shibboleth.utilities.java.support.logic.FunctionSupport;
+import org.opensaml.profile.context.ProfileRequestContext;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/** Unit test for {@link SingleLogoutProfileConfiguration}. */
+public class SingleLogoutProfileConfigurationTest {
+
+    @Test
+    public void testProfileId() {
+        Assert.assertEquals(SingleLogoutProfileConfiguration.PROFILE_ID,
+                "http://shibboleth.net/ns/profiles/saml2/logout");
+
+        final SingleLogoutProfileConfiguration config = new SingleLogoutProfileConfiguration();
+        Assert.assertEquals(config.getId(), SingleLogoutProfileConfiguration.PROFILE_ID);
+    }
+
+    @Test
+    public void testArtifactConfiguration() {
+        final SingleLogoutProfileConfiguration config = new SingleLogoutProfileConfiguration();
+        Assert.assertNull(config.getArtifactConfiguration());
+
+        final SAMLArtifactConfiguration artifactConfiguration = new BasicSAMLArtifactConfiguration();
+        config.setArtifactConfiguration(artifactConfiguration);
+
+        Assert.assertSame(config.getArtifactConfiguration(), artifactConfiguration);
+    }
+
+    @Test
+    public void testIndirectArtifactConfiguration() {
+        final SingleLogoutProfileConfiguration config = new SingleLogoutProfileConfiguration();
+
+        final SAMLArtifactConfiguration artifactConfiguration = new BasicSAMLArtifactConfiguration();
+        config.setArtifactConfigurationLookupStrategy(
+                FunctionSupport.<ProfileRequestContext,SAMLArtifactConfiguration>constant(artifactConfiguration));
+
+        Assert.assertSame(config.getArtifactConfiguration(), artifactConfiguration);
+    }
+
 }
\ No newline at end of file

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


More information about the commits mailing list