[java-idp-plugin-metadatagen] 01/06: Initial commit from the archtype

Rod Widdowson rdw at steadingsoftware.com
Fri Jun 11 09:47:51 UTC 2021


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

rdw pushed a commit to branch main
in repository java-idp-plugin-metadatagen.

View the commit online:
http://git.shibboleth.net/view/?p=java-idp-plugin-metadatagen.git;a=commit;h=194472e693cb40355bde224a965679dcf22b5c3f

commit 194472e693cb40355bde224a965679dcf22b5c3f
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Wed Mar 31 16:36:37 2021 +0100

    Initial commit from the archtype
---
 checkstyle.xml                                     | 117 +++++++++++++++++++++
 metadatagen-api/pom.xml                            |  59 +++++++++++
 .../shibboleth/idp/plugin/metadatagen/Version.java |  32 ++++++
 metadatagen-dist/pom.xml                           |  50 +++++++++
 metadatagen-dist/src/main/assembly/assembly.xml    |  74 +++++++++++++
 .../src/main/resources/bootstrap/keys.txt          |   1 +
 metadatagen-impl/pom.xml                           |  42 ++++++++
 .../idp/plugin/metadatagen/ExampleModule.java      |  25 +++++
 .../idp/plugin/metadatagen/ExamplePlugin.java      |  27 +++++
 .../META-INF/net.shibboleth.idp/postconfig.xml     |  44 ++++++++
 .../idp/flows/authn/myplugin/plugin-beans.xml      |  22 ++++
 .../idp/flows/authn/myplugin/plugin-flow.xml       |   7 ++
 .../services/net.shibboleth.idp.module.IdPModule   |   1 +
 .../services/net.shibboleth.idp.plugin.IdPPlugin   |   2 +
 .../idp/plugin/metadatagen/module.properties       |  14 +++
 .../idp/plugin/metadatagen/plugin.properties       |   9 ++
 pom.xml                                            | 110 +++++++++++++++++++
 17 files changed, 636 insertions(+)

diff --git a/checkstyle.xml b/checkstyle.xml
new file mode 100644
index 0000000..f3f13f6
--- /dev/null
+++ b/checkstyle.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
+
+<!--
+    This configuration file was written by the eclipse-cs plugin configuration editor
+-->
+<!--
+    Checkstyle-Configuration: Shibboleth Checkstyle
+    Description: none
+-->
+<module name="Checker">
+  <property name="severity" value="warning"/>
+  <module name="TreeWalker">
+    <property name="tabWidth" value="4"/>
+    <module name="JavadocMethod"/>
+    <module name="JavadocType">
+        <property name="allowUnknownTags" value="true"/>
+    </module>
+    <module name="JavadocVariable"/>
+    <module name="JavadocStyle">
+      <property name="checkEmptyJavadoc" value="true"/>
+    </module>
+    <module name="ConstantName"/>
+    <module name="LocalFinalVariableName"/>
+    <module name="LocalVariableName"/>
+    <module name="MemberName"/>
+    <module name="MethodName"/>
+    <module name="PackageName"/>
+    <module name="ParameterName"/>
+    <module name="StaticVariableName"/>
+    <module name="TypeName"/>
+    <module name="AvoidStarImport"/>
+    <module name="IllegalImport"/>
+    <module name="RedundantImport"/>
+    <module name="UnusedImports"/>
+    <module name="MethodLength">
+      <property name="max" value="70"/>
+    </module>
+    <module name="ParameterNumber">
+      <property name="max" value="5"/>
+    </module>
+    <module name="EmptyForIteratorPad"/>
+    <module name="MethodParamPad"/>
+    <module name="ModifierOrder"/>
+    <module name="AvoidNestedBlocks"/>
+    <module name="LeftCurly"/>
+    <module name="NeedBraces"/>
+    <module name="RightCurly"/>
+    <module name="EmptyStatement"/>
+    <module name="EqualsHashCode"/>
+    <module name="HiddenField"/>
+    <module name="IllegalInstantiation"/>
+    <module name="InnerAssignment"/>
+    <module name="MissingSwitchDefault"/>
+    <module name="SimplifyBooleanExpression"/>
+    <module name="SimplifyBooleanReturn"/>
+    <module name="FinalClass"/>
+    <module name="HideUtilityClassConstructor"/>
+    <module name="VisibilityModifier"/>
+    <module name="ArrayTypeStyle"/>
+    <module name="UpperEll"/>
+    <module name="AnonInnerLength"/>
+    <module name="EmptyForInitializerPad"/>
+    <module name="CovariantEquals"/>
+    <module name="DefaultComesLast"/>
+    <module name="DeclarationOrder"/>
+    <module name="ExplicitInitialization"/>
+    <module name="FallThrough"/>
+    <module name="IllegalThrows"/>
+    <module name="MultipleVariableDeclarations"/>
+    <module name="PackageDeclaration"/>
+    <module name="ParameterAssignment"/>
+    <module name="ReturnCount">
+      <property name="max" value="8"/>
+      <property name="maxForVoid" value="8"/>
+    </module>
+    <module name="StringLiteralEquality"/>
+    <module name="SuperFinalize"/>
+    <module name="ArrayTrailingComma"/>
+    <module name="UnnecessaryParentheses"/>
+    <module name="MutableException"/>
+    <module name="ThrowsCount">
+      <property name="max" value="3"/>
+    </module>
+    <module name="CyclomaticComplexity"/>
+    <module name="TrailingComment"/>
+    <module name="EqualsAvoidNull"/>
+    <module name="ModifiedControlVariable"/>
+    <module name="FinalParameters">
+      <property name="tokens" value="METHOD_DEF,CTOR_DEF,LITERAL_CATCH"/>
+    </module>
+    <module name="FinalLocalVariable">
+      <property name="tokens" value="PARAMETER_DEF,VARIABLE_DEF"/>
+      <property name="validateEnhancedForLoopVariable" value="true"/>
+    </module>
+    <module name="SuppressionCommentFilter">
+      <property name="offCommentFormat" value="\bCheck[Ss]tyle:\s*([\w|]+)\s+OFF\b"/>
+      <property name="onCommentFormat" value="\bCheck[Ss]tyle:\s*([\w|]+)\s+ON\b"/>
+      <property name="checkFormat" value="$1"/>
+    </module>
+    <module name="MissingJavadocMethod"/>
+    <module name="MissingJavadocPackage"/>
+    <module name="MissingJavadocType"/>
+    <module name="InvalidJavadocPosition"/>
+  </module>
+  <module name="FileTabCharacter"/>
+  <module name="FileLength">
+    <property name="max" value="1000"/>
+  </module>
+  <module name="Header">
+    <property name="header" value="/*\n * Licensed to the University Corporation for Advanced Internet Development,\n * Inc. (UCAID) under one or more contributor license agreements.  See the\n * NOTICE file distributed with this work for additional information regarding\n * copyright ownership. The UCAID licenses this file to You under the Apache\n * License, Version 2.0 (the "License"); you may not use this file except in\n * compliance with the License.  You may obtain a cop [...]
+  </module>
+  <module name="JavadocPackage"/>
+  <module name="LineLength">
+    <property name="max" value="120"/>
+  </module>
+</module>
diff --git a/metadatagen-api/pom.xml b/metadatagen-api/pom.xml
new file mode 100644
index 0000000..502fa89
--- /dev/null
+++ b/metadatagen-api/pom.xml
@@ -0,0 +1,59 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>net.shibboleth.idp.plugin.metadatagen</groupId>
+		<artifactId>idp-plugin-metadatagen-parent</artifactId>
+		<version>0.0.1-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>idp-plugin-metadatagen-api</artifactId>
+	<packaging>jar</packaging>
+	<name>Shibboleth IdP :: Plugins :: metadatagen API</name>
+	<description>IdP metadatagen plugin API.</description>
+
+	<properties>
+		<checkstyle.configLocation>${project.basedir}/../checkstyle.xml</checkstyle.configLocation>
+		<automatic.module.name>net.shibboleth.idp.plugin.metadatagen.metadatagen.api</automatic.module.name>
+	</properties>
+
+	<dependencies>
+		<!-- Provided dependencies -->
+		<dependency>
+			<groupId>com.google.code.findbugs</groupId>
+			<artifactId>jsr305</artifactId>
+			<scope>provided</scope>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<configuration>
+					<archive>
+						<index>true</index>
+						<manifestEntries>
+							<Main-Class>net.shibboleth.idp.plugin.metadatagen.Version</Main-Class>
+						</manifestEntries>
+						<manifestSections>
+							<manifestSection>
+								<name>org/example/com/metadatagen/</name>
+								<manifestEntries>
+									<Implementation-Title>${project.artifactId}</Implementation-Title>
+									<Implementation-Version>${project.version}</Implementation-Version>
+									<Implementation-Vendor>FINISH</Implementation-Vendor>
+								</manifestEntries>
+							</manifestSection>
+						</manifestSections>
+					</archive>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+
+</project>
\ No newline at end of file
diff --git a/metadatagen-api/src/main/java/net/shibboleth/idp/plugin/metadatagen/Version.java b/metadatagen-api/src/main/java/net/shibboleth/idp/plugin/metadatagen/Version.java
new file mode 100644
index 0000000..ac52cad
--- /dev/null
+++ b/metadatagen-api/src/main/java/net/shibboleth/idp/plugin/metadatagen/Version.java
@@ -0,0 +1,32 @@
+package net.shibboleth.idp.plugin.metadatagen;
+
+import javax.annotation.Nullable;
+
+/** Class for getting and printing the version of the IdP. */
+public final class Version {
+
+    /** IdP version. */
+    @Nullable private static final String VERSION = Version.class.getPackage().getImplementationVersion();
+
+    /** Constructor. */
+    private Version() {
+    }
+
+    /**
+     * Main entry point to program.
+     * 
+     * @param args command line arguments
+     */
+    public static void main(final String[] args) {
+        System.out.println(VERSION);
+    }
+
+    /**
+     * Get the version of the IdP.
+     * 
+     * @return version of the IdP
+     */
+    @Nullable public static String getVersion() {
+        return VERSION;
+    }
+}
\ No newline at end of file
diff --git a/metadatagen-dist/pom.xml b/metadatagen-dist/pom.xml
new file mode 100644
index 0000000..475f15c
--- /dev/null
+++ b/metadatagen-dist/pom.xml
@@ -0,0 +1,50 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>net.shibboleth.idp.plugin.metadatagen</groupId>
+        <artifactId>idp-plugin-metadatagen-parent</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>idp-plugin-metadatagen-dist</artifactId>
+    <name>Shibboleth IdP :: Plugins :: metadatagen Distribution</name>
+    <description>IdP metadatagen plugin packaging.</description>
+    <packaging>pom</packaging>
+
+
+    <properties>
+        <checkstyle.configLocation>${project.basedir}/../checkstyle.xml</checkstyle.configLocation>
+        <dist.plugin.finalName>idp-plugin-metadatagen-${project.version}</dist.plugin.finalName>
+    </properties>
+
+    <build>
+        <plugins>
+            <!-- Assemble -->
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>make-assembly</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                        <configuration>
+                            <appendAssemblyId>false</appendAssemblyId>
+                            <descriptors>
+                                <descriptor>src/main/assembly/assembly.xml</descriptor>
+                            </descriptors>
+                            <finalName>${dist.plugin.finalName}</finalName>
+                            <tarLongFileMode>gnu</tarLongFileMode>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+
+    </build>
+
+
+</project>
\ No newline at end of file
diff --git a/metadatagen-dist/src/main/assembly/assembly.xml b/metadatagen-dist/src/main/assembly/assembly.xml
new file mode 100644
index 0000000..06c755c
--- /dev/null
+++ b/metadatagen-dist/src/main/assembly/assembly.xml
@@ -0,0 +1,74 @@
+<assembly
+	xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+	<id>bin</id>
+	<formats>
+		<format>tar.gz</format>
+		<format>tar.bz2</format>
+		<format>zip</format>
+	</formats>
+
+	<fileSets>
+		<fileSet>
+			<directory>src/main/resources/</directory>
+			<outputDirectory></outputDirectory>
+		</fileSet>
+
+        <!-- The plugin property file -->
+		<fileSet>			
+			<directory>../plugin-impl/target/classes/FIXME</directory>
+			<outputDirectory>bootstrap</outputDirectory>
+			<includes>
+				<include>plugin.properties</include>
+			</includes>
+		</fileSet>
+		
+		<!--  The implementation jar -->
+        <fileSet>
+            <directory>../plugin-impl/target</directory>
+            <outputDirectory>webapp/WEB-INF/lib</outputDirectory>
+            <includes>
+                <include>plugin-impl-*.jar</include>
+            </includes>
+            <excludes>
+                <exclude>*test*.jar</exclude>
+                <exclude>*javadoc.jar</exclude>
+                <exclude>*sources.jar</exclude>
+            </excludes>
+        </fileSet>
+        
+        <!--  The API jar -->
+        <fileSet>
+            <directory>../plugin-api/target</directory>
+            <outputDirectory>webapp/WEB-INF/lib</outputDirectory>
+            <includes>
+                <include>plugin-api-*.jar</include>
+            </includes>
+            <excludes>
+                <exclude>*test*.jar</exclude>
+                <exclude>*javadoc.jar</exclude>
+                <exclude>*sources.jar</exclude>
+            </excludes>
+        </fileSet>
+        
+         <!--  The dependencies -->
+        <fileSet>
+            <directory>../plugin-impl/target/dependency</directory>
+            <outputDirectory>webapp/WEB-INF/lib</outputDirectory>
+            <includes>
+                <include>*.jar</include>
+            </includes>
+        </fileSet>
+
+        <!-- The signing certificates -->
+		<fileSet>			
+			<directory>src/main/resources/bootstrap</directory>
+			<outputDirectory>bootstrap</outputDirectory>
+			<includes>
+				<include>keys.txt</include>
+			</includes>
+		</fileSet>
+	</fileSets>
+
+</assembly>
diff --git a/metadatagen-dist/src/main/resources/bootstrap/keys.txt b/metadatagen-dist/src/main/resources/bootstrap/keys.txt
new file mode 100644
index 0000000..921c030
--- /dev/null
+++ b/metadatagen-dist/src/main/resources/bootstrap/keys.txt
@@ -0,0 +1 @@
+FIXME: Plugin keys
\ No newline at end of file
diff --git a/metadatagen-impl/pom.xml b/metadatagen-impl/pom.xml
new file mode 100644
index 0000000..cb7a1ca
--- /dev/null
+++ b/metadatagen-impl/pom.xml
@@ -0,0 +1,42 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>net.shibboleth.idp.plugin.metadatagen</groupId>
+        <artifactId>idp-plugin-metadatagen-parent</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>idp-plugin-metadatagen-impl</artifactId>
+    <packaging>jar</packaging>    
+    <name>Shibboleth IdP :: Plugins :: metadatagen Impl</name>
+    <description>IdP metadatagen plugin implementation.</description>
+    
+    <properties>
+        <checkstyle.configLocation>${project.basedir}/../checkstyle.xml</checkstyle.configLocation>
+        <automatic.module.name>net.shibboleth.idp.plugin.metadatagen.metadatagen.impl</automatic.module.name>
+    </properties>
+    
+    <dependencies>
+         <!-- compile time intra project dependencies -->
+        <dependency>
+            <groupId>net.shibboleth.idp.plugin.metadatagen</groupId>
+            <artifactId>idp-plugin-metadatagen-api</artifactId>
+        </dependency>
+        <!-- Service API and Plugin Description dependency -->
+        <dependency>
+            <groupId>${idp.groupId}</groupId>
+            <artifactId>idp-admin-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>${idp.groupId}</groupId>
+            <artifactId>idp-admin-impl</artifactId>
+            <scope>provided</scope>
+        </dependency>
+    
+    </dependencies>
+
+
+</project>
\ No newline at end of file
diff --git a/metadatagen-impl/src/main/java/net/shibboleth/idp/plugin/metadatagen/ExampleModule.java b/metadatagen-impl/src/main/java/net/shibboleth/idp/plugin/metadatagen/ExampleModule.java
new file mode 100644
index 0000000..dfad380
--- /dev/null
+++ b/metadatagen-impl/src/main/java/net/shibboleth/idp/plugin/metadatagen/ExampleModule.java
@@ -0,0 +1,25 @@
+package net.shibboleth.idp.plugin.metadatagen;
+
+import java.io.IOException;
+
+import net.shibboleth.idp.module.ModuleException;
+import net.shibboleth.idp.module.impl.PluginIdPModule;
+
+
+/**
+ * {@link IdPModule IdP Module} implementation.
+ */
+public class ExampleModule extends PluginIdPModule{
+    
+    /**
+     * Constructor.
+     *  
+     * @throws ModuleException on error
+     * @throws IOException on error
+     */
+    public ExampleModule() throws IOException, ModuleException {
+        super(ExampleModule.class);
+    }
+    
+
+}
\ No newline at end of file
diff --git a/metadatagen-impl/src/main/java/net/shibboleth/idp/plugin/metadatagen/ExamplePlugin.java b/metadatagen-impl/src/main/java/net/shibboleth/idp/plugin/metadatagen/ExamplePlugin.java
new file mode 100644
index 0000000..7a224d2
--- /dev/null
+++ b/metadatagen-impl/src/main/java/net/shibboleth/idp/plugin/metadatagen/ExamplePlugin.java
@@ -0,0 +1,27 @@
+package net.shibboleth.idp.plugin.metadatagen;
+
+import java.io.IOException;
+import javax.annotation.Nonnull;
+
+import net.shibboleth.idp.plugin.IdPPlugin;
+import net.shibboleth.idp.plugin.PluginException;
+import net.shibboleth.idp.plugin.PropertyDrivenIdPPlugin;
+
+/**
+ * Plugin description about the webauthn plugin.
+ */
+public class ExamplePlugin extends PropertyDrivenIdPPlugin {
+
+    /**
+     * Constructor.
+     *
+     * @param claz type of plugin
+     * 
+     * @throws IOException if properties can't be loaded
+     * @throws PluginException if another error occurs
+     */
+    public ExamplePlugin(@Nonnull final Class<? extends IdPPlugin> claz) throws IOException, PluginException {
+        super(claz);
+    }
+
+}
\ No newline at end of file
diff --git a/metadatagen-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml b/metadatagen-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml
new file mode 100644
index 0000000..20278f9
--- /dev/null
+++ b/metadatagen-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml
@@ -0,0 +1,44 @@
+<?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">
+
+    <!-- 
+    System beans needed for extension to function, loaded after global.xml.
+    The default template shows an incomplete example authentication flow descriptor which can be
+    removed if not needed 
+    -->
+  
+    <bean id="authn/metadatagen" parent="shibboleth.AuthenticationFlow"
+            p:order="%{xxx.order:1000}"
+            p:nonBrowserSupported="%{xxx.nonBrowserSupported:true}"
+            p:passiveAuthenticationSupported="%{xxx.passiveAuthenticationSupported:true}"
+            p:forcedAuthenticationSupported="%{xxx.forcedAuthenticationSupported:true}"
+            p:proxyRestrictionsEnforced="%{xxx.proxyRestrictionsEnforced:%{idp.authn.enforceProxyRestrictions:true}}"
+            p:proxyScopingEnforced="%{xxx.proxyScopingEnforced:false}"
+            p:discoveryRequired="%{xxx.discoveryRequired:false}"
+            p:lifetime="%{xxx.lifetime:%{idp.authn.defaultLifetime:PT1H}}"
+            p:inactivityTimeout="%{xxx.inactivityTimeout:%{idp.authn.defaultTimeout:PT30M}}"
+            p:reuseCondition-ref="#{'%{xxx.reuseCondition:shibboleth.Conditions.TRUE}'.trim()}"
+            p:activationCondition-ref="#{'%{xxx.activationCondition:shibboleth.Conditions.TRUE}'.trim()}">
+        <property name="supportedPrincipals">
+            <list>
+                <bean parent="shibboleth.SAML2AuthnContextClassRef"
+                    c:classRef="class-ref" />
+                <bean parent="shibboleth.SAML1AuthenticationMethod"
+                    c:method="auth-ref" />
+            </list>
+        </property>
+        <property name="supportedPrincipalsByString">
+            <bean parent="shibboleth.CommaDelimStringArray"
+                c:_0="#{'%{xxx.supportedPrincipals:}'.trim()}" />
+        </property>
+    </bean>
+  
+</beans>
\ No newline at end of file
diff --git a/metadatagen-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/myplugin/plugin-beans.xml b/metadatagen-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/myplugin/plugin-beans.xml
new file mode 100644
index 0000000..15560b0
--- /dev/null
+++ b/metadatagen-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/myplugin/plugin-beans.xml
@@ -0,0 +1,22 @@
+<?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">
+       
+    <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
+        p:placeholderPrefix="%{" p:placeholderSuffix="}" />
+
+    <bean class="net.shibboleth.ext.spring.config.IdentifiableBeanPostProcessor" />
+    <bean class="net.shibboleth.idp.profile.impl.ProfileActionBeanPostProcessor" />
+
+    
+</beans>
diff --git a/metadatagen-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/myplugin/plugin-flow.xml b/metadatagen-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/myplugin/plugin-flow.xml
new file mode 100644
index 0000000..98e318a
--- /dev/null
+++ b/metadatagen-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/myplugin/plugin-flow.xml
@@ -0,0 +1,7 @@
+<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="authn.abstract, authn/conditions">
+
+	
+
+</flow>
diff --git a/metadatagen-impl/src/main/resources/META-INF/services/net.shibboleth.idp.module.IdPModule b/metadatagen-impl/src/main/resources/META-INF/services/net.shibboleth.idp.module.IdPModule
new file mode 100644
index 0000000..6569877
--- /dev/null
+++ b/metadatagen-impl/src/main/resources/META-INF/services/net.shibboleth.idp.module.IdPModule
@@ -0,0 +1 @@
+net.shibboleth.idp.plugin.metadatagen.ExampleModule
diff --git a/metadatagen-impl/src/main/resources/META-INF/services/net.shibboleth.idp.plugin.IdPPlugin b/metadatagen-impl/src/main/resources/META-INF/services/net.shibboleth.idp.plugin.IdPPlugin
new file mode 100644
index 0000000..636972d
--- /dev/null
+++ b/metadatagen-impl/src/main/resources/META-INF/services/net.shibboleth.idp.plugin.IdPPlugin
@@ -0,0 +1,2 @@
+net.shibboleth.idp.plugin.metadatagen.ExamplePlugin
+  
\ No newline at end of file
diff --git a/metadatagen-impl/src/main/resources/net/shibboleth/idp/plugin/metadatagen/module.properties b/metadatagen-impl/src/main/resources/net/shibboleth/idp/plugin/metadatagen/module.properties
new file mode 100644
index 0000000..de627cb
--- /dev/null
+++ b/metadatagen-impl/src/main/resources/net/shibboleth/idp/plugin/metadatagen/module.properties
@@ -0,0 +1,14 @@
+# Example Properties defining an authentication module.
+
+# Class to Module ID mappings
+net.shibboleth.idp.plugin.metadatagen.ExampleModule = idp.authn.metadatagen
+
+# Module Owner
+idp.authn.metadatagen.plugin = net.shibboleth.idp.plugin.authn.metadatagen
+
+idp.authn.metadatagen.name = metadatagen Authentication
+idp.authn.metadatagen.desc = Login flow for metadatagen
+idp.authn.metadatagen.url = /metadatagenConfiguration
+idp.authn.metadatagen.1.src = somefile
+idp.authn.metadatagen.1.dest = conf/to-somefile
+idp.authn.metadatagen.1.replace = true
diff --git a/metadatagen-impl/src/main/resources/net/shibboleth/idp/plugin/metadatagen/plugin.properties b/metadatagen-impl/src/main/resources/net/shibboleth/idp/plugin/metadatagen/plugin.properties
new file mode 100644
index 0000000..a966fa9
--- /dev/null
+++ b/metadatagen-impl/src/main/resources/net/shibboleth/idp/plugin/metadatagen/plugin.properties
@@ -0,0 +1,9 @@
+# Example properties defining this plugin
+
+plugin.id = net.shibboleth.idp.plugin.metadatagen.metadatagen
+# Only used when package manifest is not available
+plugin.version = 0.0.1
+plugin.license = licence.txt
+
+# No prereqs
+#plugin.modules.required =
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..5d371c0
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>net.shibboleth</groupId>
+    <artifactId>parent</artifactId>
+    <version>11.2.0-SNAPSHOT</version>
+  </parent>
+  <groupId>net.shibboleth.idp.plugin.metadatagen</groupId>
+  <artifactId>idp-plugin-metadatagen-parent</artifactId>
+  <version>0.0.1-SNAPSHOT</version>
+  <name>Shibboleth IdP :: Plugins :: metadatagen</name>
+  <packaging>pom</packaging>
+  <description>metadatagen plugin for the Shibboleth IdP.</description>
+  <properties>
+    <idp.groupId>net.shibboleth.idp</idp.groupId>
+    <idp.version>4.1.0-SNAPSHOT</idp.version>
+    <opensaml.groupId>org.opensaml</opensaml.groupId>
+    <opensaml.version>4.1.0-SNAPSHOT</opensaml.version>
+    <checkstyle.configLocation>${project.basedir}/checkstyle.xml</checkstyle.configLocation>
+  </properties>
+  <distributionManagement>
+    <site>
+      <id>site</id>
+      <url>dav:...</url>
+    </site>
+  </distributionManagement>
+  <repositories>
+    <repository>
+      <id>shib-release</id>
+      <url>https://build.shibboleth.net/nexus/content/groups/public</url>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+    <repository>
+      <id>shib-snapshot</id>
+      <url>https://build.shibboleth.net/nexus/content/repositories/snapshots</url>
+      <releases>
+        <enabled>false</enabled>
+      </releases>
+    </repository>
+  </repositories>
+  <scm>
+    <connection>scm:git:...</connection>
+    <developerConnection>scm:git:...</developerConnection>
+    <url>...</url>
+  </scm>
+  <dependencies>
+    <!-- Project wide test Dependencies -->
+    <dependency>
+      <groupId>org.testng</groupId>
+      <artifactId>testng</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${slf4j.groupId}</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <dependencyManagement>
+    <!-- metadatagen project dependencies -->
+    <dependencies>
+      <dependency>
+        <groupId>net.shibboleth.idp.plugin.metadatagen</groupId>
+        <artifactId>idp-plugin-metadatagen-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>net.shibboleth.idp.plugin.metadatagen</groupId>
+        <artifactId>idp-plugin-metadatagen-impl</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <!-- Shibboleth IdP BOM for importing IdP dependencies -->
+      <dependency>
+        <groupId>net.shibboleth.idp</groupId>
+        <artifactId>idp-bom</artifactId>
+        <version>${idp.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+      <!-- Provided shibboleth support dependencies -->
+      <dependency>
+        <groupId>net.shibboleth.utilities</groupId>
+        <artifactId>java-support</artifactId>
+        <version>${java-support.version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <!-- Test bom dependencies -->
+      <dependency>
+        <groupId>${idp.groupId}</groupId>
+        <artifactId>idp-tests-bom</artifactId>
+        <version>${idp.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <modules>
+    <module>metadatagen-impl</module>
+    <module>metadatagen-api</module>
+<!-- All DIST modules must come after the -api and -impl modules -->
+    <module>metadatagen-dist</module>
+  </modules>
+</project>

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


More information about the commits mailing list