<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.authn</groupId>
		<artifactId>idp-plugin-duo-parent</artifactId>
		<version>1.3.0</version>
	</parent>

	<name>Shibboleth IdP :: Plugins :: Duo 2FA Login Flow Impl</name>
	<description>IdP Duo OIDC 2FA plugin implementation.</description>
	<artifactId>idp-plugin-duo-impl</artifactId>
	<packaging>jar</packaging>

	<properties>
		<checkstyle.configLocation>${project.basedir}/../checkstyle.xml</checkstyle.configLocation>
		<automatic.module.name>net.shibboleth.idp.plugin.authn.duo.impl</automatic.module.name>
		<apache.commons.lang.version>3.10</apache.commons.lang.version>
	</properties>

	<dependencies>
		<!-- compile time dependencies -->
		<dependency>
			<groupId>net.shibboleth.idp.plugin.authn</groupId>
			<artifactId>idp-plugin-duo-api</artifactId>
		</dependency>

		<!-- Provided dependencies -->
		<dependency>
			<groupId>net.shibboleth.oidc</groupId>
			<artifactId>oidc-common-crypto-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
            <groupId>net.shibboleth.oidc</groupId>
            <artifactId>oidc-common-crypto-impl</artifactId>
            <scope>provided</scope>
        </dependency>
		<dependency>
			<groupId>${idp.groupId}</groupId>
			<artifactId>idp-session-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>com.nimbusds</groupId>
			<artifactId>nimbus-jose-jwt</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>${idp.groupId}</groupId>
			<artifactId>idp-authn-api</artifactId>
			<scope>provided</scope>
		</dependency>
        <!--
        Needed to reuse Duo AuthAPI code from original flow.
        Can be removed if/when original flow is discontinued.
        -->
        <dependency>
            <groupId>${idp.groupId}</groupId>
            <artifactId>idp-authn-impl</artifactId>
            <version>${idp.version}</version>
            <scope>provided</scope>
        </dependency>
		<dependency>
			<groupId>${opensaml.groupId}</groupId>
			<artifactId>opensaml-messaging-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>net.shibboleth.utilities</groupId>
			<artifactId>java-support</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>com.google.code.findbugs</groupId>
			<artifactId>jsr305</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>${spring-webflow.groupId}</groupId>
			<artifactId>spring-webflow</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>${opensaml.groupId}</groupId>
			<artifactId>opensaml-profile-api</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>${spring.groupId}</groupId>
			<artifactId>spring-core</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>${spring.groupId}</groupId>
			<artifactId>spring-beans</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>${idp.groupId}</groupId>
			<artifactId>idp-profile-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<scope>provided</scope>
		</dependency>

		<!-- Test Dependencies -->
		<dependency>
			<groupId>${spring.groupId}</groupId>
			<artifactId>spring-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>net.shibboleth.idp</groupId>
			<artifactId>idp-conf</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>net.shibboleth.idp</groupId>
			<artifactId>idp-conf-impl</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
		   <groupId>net.shibboleth.ext</groupId>
           <artifactId>spring-extensions</artifactId>
           <scope>test</scope>
		</dependency>
		<dependency>
			<groupId>net.shibboleth.idp</groupId>
			<artifactId>idp-profile-impl</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>net.shibboleth.idp</groupId>
			<artifactId>idp-authn-impl</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>net.shibboleth.idp</groupId>
			<artifactId>idp-profile-api</artifactId>
			<scope>test</scope>
			<type>test-jar</type>
		</dependency>
		<!-- Spring webflow tests require Junit4, runs in TestNG bridge -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
				    <archive>                      
                        <manifestSections>
                            <manifestSection>
                                <name>net/shibboleth/idp/plugin/authn/duo/impl/</name>
                                <manifestEntries>
                                    <Implementation-Title>${project.artifactId}</Implementation-Title>
                                    <Implementation-Version>${project.version}</Implementation-Version>
                                    <Implementation-Vendor>shibboleth.net</Implementation-Vendor>
                                </manifestEntries>
                            </manifestSection>
                        </manifestSections>
                    </archive>
					<excludes>
						<exclude>system/**</exclude>
						<exclude>conf/**</exclude>
						<exclude>credentials/**</exclude>
					</excludes>
				</configuration>
			</plugin>			
		</plugins>
	</build>
</project>