<?xml version="1.0"?>
<!DOCTYPE project [
<!--

    Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<!ENTITY commonSetup SYSTEM "file:./../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "file:./../../../config/common.xml">
<!ENTITY commonRun SYSTEM "file:./../../../config/run.xml">
<!ENTITY commonSecurity SYSTEM "file:./../common.xml">
<!ENTITY testProperties SYSTEM "./build.properties">
]>

<project name="security-defaultp2r" basedir="." default="usage">
  
  &commonSetup;
  &commonBuild;
  &commonRun;
  &commonSecurity;
  &testProperties;

  <target name="all" depends="build, setup">
    <antcall target="test-p2r-enabled"/>
    <antcall target="test-p2r-disabled"/>
    <antcall target="unsetup"/>
  </target>
  
  <target name="test-p2r-enabled"
      depends="enable-p2r, deploy, run, undeploy"/>
  
  <target name="test-p2r-disabled"
      depends="disable-p2r, deploy, run-negative, undeploy"/>

  <target name="clean" depends="init-common">
    <delete dir="${build.classes.dir}"/>
    <delete dir="${assemble.dir}"/>
  </target>
  
  <target name="compile" depends="clean">
    <antcall target="compile-common">
      <param name="src" value="web"/>
    </antcall>
  </target>
  
  <target name="build" depends="compile">
    <antcall target="webclient-war-common">
      <param name="hasWebclient" value="yes" /> 
    </antcall>
  </target>
  
  <target name="deploy" depends="init-common">
    <antcall target="deploy-war-common">
      <param name="contextroot" value="${appname}"/>
    </antcall>
  </target>
  
  <target name="run" depends="init-common">
    <antcall target="runweb">
      <param name="servlet" value="TestServlet"/>
      <param name="webuser" value="bobby"/>
      <param name="webpassword" value="bb"/>
      <param name="httpMethod" value="FOO"/>
      <param name="goldenfile" value="goldenfiles/foo.html"/>
      <param name="testcaseid" value="user-auth-with-foo"/>
    </antcall>
    <antcall target="runweb">
      <param name="servlet" value="TestServlet"/>
      <param name="webuser" value="bobby"/>
      <param name="webpassword" value="bb"/>
      <param name="httpMethod" value="GET"/>
      <param name="goldenfile" value="goldenfiles/get.html"/>
      <param name="testcaseid" value="user-auth-with-get"/>
    </antcall>
  </target>
  
  <target name="run-negative" depends="init-common">
    <antcall target="runweb-403">
      <param name="servlet" value="TestServlet"/>
      <param name="webuser" value="bobby"/>
      <param name="webpassword" value="bb"/>
      <param name="httpMethod" value="GET"/>
      <param name="testcaseid" value="user-auth-should-fail"/>
    </antcall>
  </target>
  
  <target name="runweb" depends="init-common">
    <taskdef name="webtest" classname="${webtest.classname}"
        classpath="${webtest.classpath}" />
    <webtest request="${httpMethod} /security-defaultp2r/${servlet} HTTP/1.0"
        debug="9"
        host="${http.host}"
        port="${http.port}"
        authMethod="BASIC"
        userName="${webuser}"
        password="${webpassword}"
        firstTask="true"
        lastTest="true"
        lastCase="true"
        lastTask="true"
        resultFileName="${webtest.report.dir}/security-gtest-results.xml"
        testSession="security-defaultp2r"
        requestHeaders="Host:${http.host}:${http.port}"
        goldenFile="${env.APS_HOME}/devtests/security/defaultp2r/${goldenfile}"
        testSuiteId="security-defaultp2r"
        testSuiteName="security-defaultp2r"
        testSuiteDescription="Security Test"
        testId="security-defaultp2r"
        testName="security-defaultp2r"
        testDescription="Testing default principal to role mapping: ${testcaseid}"
        testCaseId="${testcaseid}"
        testCaseName="${testcaseid}"
        testCaseDescription="Testing default principal to role mapping"
        testStrategy="Testing default principal to role mapping"/>
  </target>
  
  <target name="runweb-403" depends="init-common">
    <taskdef name="webtest" classname="${webtest.classname}"
        classpath="${webtest.classpath}" />
    <webtest request="${httpMethod} /security-defaultp2r/${servlet} HTTP/1.0"
        debug="9"
        host="${http.host}"
        port="${http.port}"
        authMethod="BASIC"
        userName="${webuser}"
        password="${webpassword}"
        firstTask="true"
        lastTest="true"
        lastCase="true"
        lastTask="true"
        resultFileName="${webtest.report.dir}/security-gtest-results.xml"
        testSession="security-httpMethod"
        requestHeaders="Host:${http.host}:${http.port}"
        returnCode="HTTP/1.1 403"
        testSuiteId="security-httpMethod"
        testSuiteName="security-httpMethod"
        testSuiteDescription="Security Test"
        testId="security-httpMethod"
        testName="security-httpMethod"
        testDescription="Testing default p2r mapping disabled: ${testcaseid}"
        testCaseId="${testcaseid}"
        testCaseName="${testcaseid}"
        testCaseDescription="Testing default p2r mapping disabled"
        testStrategy="Testing default p2r mapping disabled"/>
    </target>
    
  <target name="undeploy" depends="init-common">
    <antcall target="undeploy-war-common"/>
  </target>
  
  <target name="usage">
    <antcall target="usage-common"/>
  </target>
  
  <target name="setup">
    <antcall target="create-user-common">
      <param name="user" value="bobby"/>
      <param name="password" value="bb"/>
      <param name="groups" value="mygroup"/>
    </antcall>
   <!-- <antcall target="reconfig-common"/>-->
  </target>
  
  <target name="unsetup">
    <!-- remove test users, just cleanup. -->
    <antcall target="delete-user-common">
      <param name="user" value="bobby"/>
    </antcall>
  </target>
  
  <target name="enable-p2r" depends="init-common">
    <antcall target="asadmin-common">
      <param name="admin.command" value="set"/>
      <param name="operand.props"
          value="server-config.security-service.activate-default-principal-to-role-mapping=true"/>
    </antcall>
  </target>
  
  <target name="disable-p2r" depends="init-common">
    <antcall target="asadmin-common">
      <param name="admin.command" value="set"/>
      <param name="operand.props"
          value="server-config.security-service.activate-default-principal-to-role-mapping=false"/>
    </antcall>
  </target>

</project>
