<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.eclipse.jetty.tests</groupId>
    <artifactId>test-webapps-parent</artifactId>
    <version>9.3.19.v20170502</version>
  </parent>
  <artifactId>test-jaas-webapp</artifactId>
  <name>Jetty Tests :: WebApp :: JAAS</name>
  <packaging>war</packaging>
  <properties>
    <bundle-symbolic-name>${project.groupId}.jaas</bundle-symbolic-name>
  </properties>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
        <configuration>
          <!-- DO NOT DEPLOY (or Release) -->
          <skip>true</skip>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>${project.version}</version>
        <configuration>
          <scanIntervalSeconds>10</scanIntervalSeconds>
          <systemProperties>
              <!-- This is for convenience so that the src/etc/login.conf file can stay unmodified when copied to $jetty.home/etc directory -->
            <systemProperty>
              <name>jetty.base</name>
              <value>${basedir}/src/main/config/demo-base</value>
            </systemProperty>
              <!-- Mandatory. This system property tells JAAS where to find the login module configuration file -->
            <systemProperty>
              <name>java.security.auth.login.config</name>
              <value>${basedir}/src/main/config/demo-base/etc/login.conf</value>
            </systemProperty>
          </systemProperties>
           <webAppConfig>
            <contextPath>/test-jaas</contextPath>
            <securityHandler implementation="org.eclipse.jetty.security.ConstraintSecurityHandler">
              <loginService implementation="org.eclipse.jetty.jaas.JAASLoginService">
                 <name>Test JAAS Realm</name>
                 <loginModuleName>xyz</loginModuleName>
              </loginService>
            </securityHandler>
          </webAppConfig>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.19</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>${basedir}/src/main/assembly/config.xml</descriptor>
              </descriptors>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
