jdk/test/javax/security/auth/login/modules/JaasModularDefaultHandlerTest.java
author iignatyev
Tue, 06 Jun 2017 19:54:08 -0700
changeset 45393 de4e1efc8eec
parent 40261 86a49ba76f52
child 46898 4d2a6afafb76
permissions -rw-r--r--
8181335: remove packageless CompilerUtils Reviewed-by: alanb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
39774
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
     1
/*
45393
de4e1efc8eec 8181335: remove packageless CompilerUtils
iignatyev
parents: 40261
diff changeset
     2
 * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
39774
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
     4
 *
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
     7
 * published by the Free Software Foundation.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
     8
 *
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    13
 * accompanied this code).
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    14
 *
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    18
 *
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    21
 * questions.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    22
 */
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    23
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    24
import java.nio.file.Path;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    25
import java.nio.file.Paths;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    26
import java.util.LinkedHashMap;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    27
import java.util.List;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    28
import java.util.Map;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    29
import java.util.Arrays;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    30
import java.io.IOException;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    31
import java.lang.module.ModuleDescriptor;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    32
import java.util.ArrayList;
45393
de4e1efc8eec 8181335: remove packageless CompilerUtils
iignatyev
parents: 40261
diff changeset
    33
import jdk.test.lib.compiler.CompilerUtils;
39774
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    34
import jdk.testlibrary.ProcessTools;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    35
import jdk.testlibrary.OutputAnalyzer;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    36
import org.testng.annotations.BeforeTest;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    37
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    38
/**
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    39
 * @test
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    40
 * @bug 8151654
45393
de4e1efc8eec 8181335: remove packageless CompilerUtils
iignatyev
parents: 40261
diff changeset
    41
 * @library /lib/testlibrary /test/lib
39774
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    42
 * @library /java/security/modules
45393
de4e1efc8eec 8181335: remove packageless CompilerUtils
iignatyev
parents: 40261
diff changeset
    43
 * @build jdk.test.lib.compiler.CompilerUtils JarUtils
39774
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    44
 * @summary Test custom JAAS callback handler with all possible modular option.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    45
 * @run testng JaasModularDefaultHandlerTest
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    46
 */
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    47
public class JaasModularDefaultHandlerTest extends ModularTest {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    48
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    49
    private static final Path S_SRC = SRC.resolve("TestCallbackHandler.java");
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    50
    private static final String MODULAR = "M";
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    51
    private static final String S_PKG = "handler";
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    52
    private static final String S_JAR_NAME = S_PKG + JAR_EXTN;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    53
    private static final String MS_JAR_NAME = MODULAR + S_PKG + JAR_EXTN;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    54
    private static final String HANDLER = S_PKG + ".TestCallbackHandler";
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    55
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    56
    private static final Path C_SRC
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    57
            = SRC.resolve("JaasClientWithDefaultHandler.java");
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    58
    private static final Path CL_SRC = SRC.resolve("TestLoginModule.java");
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    59
    private static final String C_PKG = "login";
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    60
    private static final String C_JAR_NAME = C_PKG + JAR_EXTN;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    61
    private static final String MCN_JAR_NAME
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    62
            = MODULAR + C_PKG + "NoMUse" + JAR_EXTN;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    63
    private static final String MC_JAR_NAME = MODULAR + C_PKG + JAR_EXTN;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    64
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    65
    private static final Path BUILD_DIR = Paths.get(".").resolve("build");
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    66
    private static final Path COMPILE_DIR = BUILD_DIR.resolve("bin");
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    67
    private static final Path S_BUILD_DIR = COMPILE_DIR.resolve(S_PKG);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    68
    private static final Path C_BLD_DIR = COMPILE_DIR.resolve(C_PKG);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    69
    private static final Path M_BASE_PATH = BUILD_DIR.resolve("mbase");
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    70
    private static final Path ARTIFACTS_DIR = BUILD_DIR.resolve("artifacts");
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    71
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    72
    private static final Path S_ARTIFACTS_DIR = ARTIFACTS_DIR.resolve(S_PKG);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    73
    private static final Path S_JAR = S_ARTIFACTS_DIR.resolve(S_JAR_NAME);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    74
    private static final Path MS_JAR = S_ARTIFACTS_DIR.resolve(MS_JAR_NAME);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    75
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    76
    private static final Path C_ARTIFACTS_DIR = ARTIFACTS_DIR.resolve(C_PKG);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    77
    private static final Path C_JAR = C_ARTIFACTS_DIR.resolve(C_JAR_NAME);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    78
    private static final Path MC_JAR = C_ARTIFACTS_DIR.resolve(MC_JAR_NAME);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    79
    private static final Path MCN_JAR = C_ARTIFACTS_DIR.resolve(MCN_JAR_NAME);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    80
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    81
    private static final String MAIN = C_PKG + ".JaasClientWithDefaultHandler";
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    82
    private static final List<String> M_REQUIRED = Arrays.asList("java.base",
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    83
            "jdk.security.auth");
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    84
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    85
    private static final String CLASS_NOT_FOUND_MSG
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    86
            = "java.lang.ClassNotFoundException: handler.TestCallbackHandler";
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    87
    private static final String NO_FAILURE = null;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    88
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    89
    /**
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    90
     * Generates Test specific input parameters.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    91
     */
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    92
    @Override
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    93
    public Object[][] getTestInput() {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    94
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    95
        List<List<Object>> params = new ArrayList<>();
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    96
        String[] args = new String[]{HANDLER};
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    97
        // PARAMETER ORDERS -
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    98
        // Client Module Type, Service Module Type,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
    99
        // Service META Descriptor Required,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   100
        // Expected Failure message, Client arguments
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   101
        params.add(Arrays.asList(MODULE_TYPE.EXPLICIT, MODULE_TYPE.EXPLICIT,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   102
                false, NO_FAILURE, args));
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   103
        params.add(Arrays.asList(MODULE_TYPE.EXPLICIT, MODULE_TYPE.AUTO,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   104
                false, NO_FAILURE, args));
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   105
        params.add(Arrays.asList(MODULE_TYPE.EXPLICIT, MODULE_TYPE.UNNAMED,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   106
                false, NO_FAILURE, args));
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   107
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   108
        params.add(Arrays.asList(MODULE_TYPE.AUTO, MODULE_TYPE.EXPLICIT,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   109
                false, NO_FAILURE, args));
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   110
        params.add(Arrays.asList(MODULE_TYPE.AUTO, MODULE_TYPE.AUTO,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   111
                false, NO_FAILURE, args));
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   112
        params.add(Arrays.asList(MODULE_TYPE.AUTO, MODULE_TYPE.UNNAMED,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   113
                false, NO_FAILURE, args));
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   114
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   115
        params.add(Arrays.asList(MODULE_TYPE.UNNAMED, MODULE_TYPE.EXPLICIT,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   116
                false, NO_FAILURE, args));
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   117
        params.add(Arrays.asList(MODULE_TYPE.UNNAMED, MODULE_TYPE.AUTO,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   118
                false, NO_FAILURE, args));
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   119
        params.add(Arrays.asList(MODULE_TYPE.UNNAMED, MODULE_TYPE.UNNAMED,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   120
                false, NO_FAILURE, args));
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   121
        return params.stream().map(p -> p.toArray()).toArray(Object[][]::new);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   122
    }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   123
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   124
    /**
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   125
     * Pre-compile and generate the artifacts required to run this test before
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   126
     * running each test cases.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   127
     */
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   128
    @BeforeTest
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   129
    public void buildArtifacts() {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   130
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   131
        boolean done = true;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   132
        try {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   133
            done = CompilerUtils.compile(S_SRC, S_BUILD_DIR);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   134
            // Generate modular/regular handler jars.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   135
            generateJar(true, MODULE_TYPE.EXPLICIT, MS_JAR, S_BUILD_DIR, false);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   136
            generateJar(true, MODULE_TYPE.UNNAMED, S_JAR, S_BUILD_DIR, false);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   137
            // Compile client source codes.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   138
            done &= CompilerUtils.compile(C_SRC, C_BLD_DIR);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   139
            done &= CompilerUtils.compile(CL_SRC, C_BLD_DIR);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   140
            // Generate modular client jar with explicit dependency
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   141
            generateJar(false, MODULE_TYPE.EXPLICIT, MC_JAR, C_BLD_DIR, true);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   142
            // Generate modular client jar without any dependency
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   143
            generateJar(false, MODULE_TYPE.EXPLICIT, MCN_JAR, C_BLD_DIR, false);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   144
            // Generate regular client jar
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   145
            generateJar(false, MODULE_TYPE.UNNAMED, C_JAR, C_BLD_DIR, false);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   146
            System.out.format("%nArtifacts generated successfully? %s", done);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   147
            if (!done) {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   148
                throw new RuntimeException("Artifact generation failed");
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   149
            }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   150
        } catch (IOException e) {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   151
            throw new RuntimeException(e);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   152
        }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   153
    }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   154
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   155
    /**
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   156
     * Generate modular/regular jar based on module type for this test.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   157
     */
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   158
    private void generateJar(boolean isService, MODULE_TYPE moduleType,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   159
            Path jar, Path compilePath, boolean depends) throws IOException {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   160
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   161
        ModuleDescriptor mDescriptor = null;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   162
        if (isService) {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   163
            mDescriptor = generateModuleDescriptor(isService, moduleType, S_PKG,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   164
                    S_PKG, null, null, null, M_REQUIRED, depends);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   165
        } else {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   166
            mDescriptor = generateModuleDescriptor(isService, moduleType, C_PKG,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   167
                    C_PKG, null, null, S_PKG, M_REQUIRED, depends);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   168
        }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   169
        generateJar(mDescriptor, jar, compilePath);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   170
    }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   171
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   172
    /**
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   173
     * Holds Logic for the test client. This method will get called with each
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   174
     * test parameter.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   175
     */
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   176
    @Override
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   177
    public OutputAnalyzer executeTestClient(MODULE_TYPE cModuleType,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   178
            Path cJarPath, MODULE_TYPE sModuletype, Path sJarPath,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   179
            String... args) throws Exception {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   180
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   181
        OutputAnalyzer output = null;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   182
        try {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   183
            // For automated/explicit module types, copy the corresponding
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   184
            // jars to module base folder, which will be considered as
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   185
            // module base path during execution.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   186
            if (!(cModuleType == MODULE_TYPE.UNNAMED
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   187
                    && sModuletype == MODULE_TYPE.UNNAMED)) {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   188
                copyJarsToModuleBase(cModuleType, cJarPath, M_BASE_PATH);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   189
                copyJarsToModuleBase(sModuletype, sJarPath, M_BASE_PATH);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   190
            }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   191
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   192
            System.out.format("%nExecuting java client with required"
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   193
                    + " custom service in class/module path.");
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   194
            String mName = getModuleName(cModuleType, cJarPath, C_PKG);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   195
            Path cmBasePath = (cModuleType != MODULE_TYPE.UNNAMED
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   196
                    || sModuletype != MODULE_TYPE.UNNAMED) ? M_BASE_PATH : null;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   197
            String cPath = buildClassPath(cModuleType, cJarPath, sModuletype,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   198
                    sJarPath);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   199
            Map<String, String> vmArgs = getVMArgs(sModuletype, cModuleType,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   200
                    getModuleName(sModuletype, sJarPath, S_PKG));
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   201
            output = ProcessTools.executeTestJava(
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   202
                    getJavaCommand(cmBasePath, cPath, mName, MAIN, vmArgs,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   203
                            args)).outputTo(System.out).errorTo(System.out);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   204
        } finally {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   205
            // Clean module path to hold required jars for next run.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   206
            cleanModuleBasePath(M_BASE_PATH);
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   207
        }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   208
        return output;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   209
    }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   210
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   211
    /**
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   212
     * Decide the pre-generated client/service jar path for each test case
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   213
     * based on client/service module type.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   214
     */
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   215
    @Override
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   216
    public Path findJarPath(boolean depends, MODULE_TYPE moduleType,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   217
            boolean addMetaDesc, boolean dependsOnServiceModule) {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   218
        if (depends) {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   219
            if (moduleType == MODULE_TYPE.EXPLICIT) {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   220
                return MS_JAR;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   221
            } else {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   222
                return S_JAR;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   223
            }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   224
        } else {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   225
            // Choose corresponding client jar using dependent module
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   226
            if (moduleType == MODULE_TYPE.EXPLICIT) {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   227
                if (dependsOnServiceModule) {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   228
                    return MC_JAR;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   229
                } else {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   230
                    return MCN_JAR;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   231
                }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   232
            } else {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   233
                return C_JAR;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   234
            }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   235
        }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   236
    }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   237
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   238
    /**
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   239
     * VM argument required for the test.
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   240
     */
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   241
    private Map<String, String> getVMArgs(MODULE_TYPE sModuletype,
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   242
            MODULE_TYPE cModuleType, String addModName) throws IOException {
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   243
        final Map<String, String> vmArgs = new LinkedHashMap<>();
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   244
        vmArgs.put("-Duser.language=", "en");
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   245
        vmArgs.put("-Duser.region=", "US");
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   246
        vmArgs.put("-Djava.security.auth.login.config=", SRC.resolve(
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   247
                "jaas.conf").toFile().getCanonicalPath());
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   248
        if (addModName != null
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   249
                && !(cModuleType == MODULE_TYPE.EXPLICIT
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   250
                && sModuletype == MODULE_TYPE.EXPLICIT)) {
40261
86a49ba76f52 8136930: Simplify use of module-system options by custom launchers
mchung
parents: 39774
diff changeset
   251
            vmArgs.put("--add-modules=", addModName);
39774
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   252
        }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   253
        return vmArgs;
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   254
    }
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   255
25d5618feb3c 8151654: Additional modular test for "auth.login.defaultCallbackHandler"
ssahoo
parents:
diff changeset
   256
}