usr/src/test/java/src/client/PAMConvTest.java
author Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
Fri, 29 Jul 2011 17:37:59 -0400
changeset 758 06c57694c78d
child 811 c65c58b7a1f0
permissions -rw-r--r--
18722 - Add tests for authentication and PAM conversation processing.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
758
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
     1
/*
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
     2
 * CDDL HEADER START
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
     3
 *
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
     5
 * Common Development and Distribution License (the "License").
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
     6
 * You may not use this file except in compliance with the License.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
     7
 *
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    11
 * and limitations under the License.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    12
 *
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    18
 *
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    19
 * CDDL HEADER END
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    20
 */
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    21
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    22
/*
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    23
 * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    24
 */
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    25
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    26
package client;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    27
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    28
import java.io.IOException;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    29
import java.lang.reflect.UndeclaredThrowableException;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    30
import java.util.ArrayList;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    31
import java.util.List;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    32
import org.junit.Before;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    33
import org.junit.Test;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    34
import org.opensolaris.os.rad.ObjectException;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    35
import org.opensolaris.os.rad.test.RadRequestMXBean;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    36
import org.opensolaris.os.rad.api.pam.Block;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    37
import org.opensolaris.os.rad.api.pam.BlockType;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    38
import org.opensolaris.os.rad.api.pam.Message;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    39
import org.opensolaris.os.rad.api.pam.MsgType;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    40
import testutil.Desc;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    41
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    42
import static org.junit.Assert.*;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    43
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    44
public class PAMConvTest extends PAMTestBase {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    45
    static final String USCE_CLASSNAME =
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    46
	"com.oracle.solaris.afunix.UnixSocketClosedException";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    47
    static final int CONN_TO = 3;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    48
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    49
    @Before
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    50
    public void setUp() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    51
	assertTrue(isRadReady(false)); // unauth
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    52
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    53
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    54
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    55
    @Desc("Connecting to the container without authentication correctly" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    56
	  " reports that you aren't authenticated.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    57
    public void authUserUserNone() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    58
	String serverUserName = bean_.getuser();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    59
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    60
	assertNull(serverUserName);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    61
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    62
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    63
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    64
    @Desc("Connecting to the container without authentication correcctly" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    65
	  " reports you have no roles availables.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    66
    public void authRolesNone() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    67
	List<String>roles = bean_.getroles();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    68
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    69
	assertNotNull(roles);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    70
	assertEquals(0, roles.size());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    71
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    72
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    73
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    74
    @Desc("Connecting to the container with authentication correctly" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    75
	  " resports the roles available to the authenticated user.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    76
    public void authRolesCorrect() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    77
	String username = "radtest_hasroles";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    78
	String prompt = "Password:";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    79
	String password = "simplepass";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    80
	String myroles[] =
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    81
	    new String[] {"radtest_rolepass", "radtest_rolenopass"};
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    82
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    83
	Block block = bean_.login(locale_, username);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    84
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    85
	assertEquals(BlockType.conv, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    86
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    87
	List<Message>messages = block.getMessages();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    88
	assertNotNull(messages);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    89
	assertEquals(1, messages.size());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    90
	assertEquals(prompt, messages.get(0).getMessage());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    91
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    92
	List<char[]>resp = new ArrayList<char[]>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    93
	resp.add(password.toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    94
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    95
	block = bean_.submit(resp);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    96
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    97
	assertEquals(BlockType.success, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    98
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
    99
	List<String>roles = bean_.getroles();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   100
	assertNotNull(roles);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   101
	assertEquals(myroles.length, roles.size());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   102
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   103
	// the rolenames returned are the expected ones.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   104
	assertTrue(roles.contains(myroles[0]) && roles.contains(myroles[1]));
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   105
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   106
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   107
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   108
    @Desc("Authentication as a bogus user failes immediately.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   109
    public void authLoginBogusUser() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   110
	String username = "bogususer";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   111
	Block block = bean_.login(locale_, username);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   112
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   113
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   114
	assertEquals(BlockType.error, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   115
	assertNull(bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   116
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   117
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   118
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   119
    @Desc("Authentication as user that doesn't have password completes" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   120
	  " successfully.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   121
    public void authLoginNoPassword() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   122
	String username = "radtest_nopass";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   123
	Block block = bean_.login(locale_, username);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   124
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   125
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   126
	assertEquals(BlockType.success, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   127
	assertEquals(username, bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   128
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   129
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   130
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   131
    @Desc("Authentication as user that has password completes successfully")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   132
    public void authLoginPassword() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   133
	String username = "radtest_simple";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   134
	String prompt = "Password:";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   135
	String password = "simplepass";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   136
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   137
	Block block = bean_.login(locale_, username);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   138
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   139
	assertEquals(BlockType.conv, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   140
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   141
	List<Message> messages = block.getMessages();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   142
	assertNotNull(messages);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   143
	assertEquals(1, messages.size());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   144
	assertEquals(prompt, messages.get(0).getMessage());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   145
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   146
	List<char[]>resp = new ArrayList<char[]>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   147
	resp.add(password.toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   148
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   149
	block = bean_.submit(resp);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   150
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   151
	assertEquals(BlockType.success, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   152
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   153
	assertEquals(username, bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   154
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   155
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   156
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   157
    @Desc("Authntication as user that has password fails when bad password" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   158
	  " is provided")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   159
    public void authLoginPasswordFail() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   160
	String username = "radtest_simple";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   161
	String prompt = "Password:";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   162
	String password = "badpassword";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   163
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   164
	Block block = bean_.login(locale_, username);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   165
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   166
	assertEquals(BlockType.conv, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   167
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   168
	List<Message> messages = block.getMessages();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   169
	assertNotNull(messages);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   170
	assertEquals(1, messages.size());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   171
	assertEquals(prompt, messages.get(0).getMessage());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   172
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   173
	List<char[]>resp = new ArrayList<char[]>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   174
	resp.add(password.toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   175
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   176
	block = bean_.submit(resp);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   177
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   178
	assertEquals(BlockType.error, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   179
	assertNull(bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   180
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   181
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   182
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   183
    @Desc("Authentication as user that has password completes successfully," +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   184
	  " with trailing message")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   185
    public void authLoginPasswordTrailing() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   186
	String username = "radtest_trailing";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   187
	String prompt = "Password:";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   188
	String password = "simplepass";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   189
	String trailingPrompt = "Thank you!";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   190
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   191
	Block block = bean_.login(locale_, username);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   192
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   193
	assertEquals(BlockType.conv, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   194
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   195
	List<Message> messages = block.getMessages();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   196
	assertNotNull(messages);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   197
	assertEquals(1, messages.size());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   198
	assertEquals(prompt, messages.get(0).getMessage());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   199
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   200
	List<char[]>resp = new ArrayList<char[]>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   201
	resp.add(password.toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   202
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   203
	block = bean_.submit(resp);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   204
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   205
	assertEquals(BlockType.conv, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   206
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   207
	messages = block.getMessages();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   208
	assertNotNull(messages);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   209
	assertEquals(1, messages.size());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   210
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   211
	assertEquals(MsgType.text_info, messages.get(0).getStyle());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   212
	assertEquals(trailingPrompt, messages.get(0).getMessage());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   213
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   214
	resp = new ArrayList<char []>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   215
	block = bean_.submit(resp);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   216
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   217
	assertEquals(BlockType.success, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   218
	assertEquals(username, bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   219
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   220
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   221
    /**
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   222
     * authenticate a user using multiple prompts in serial.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   223
     * @param aPass - password for the first prompt.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   224
     * @param bPass - password for the second prompt.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   225
     * @return boolean - true if successully authenticated, otherwise false.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   226
     */
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   227
    private boolean authLoginMultipleSerial(String aPass, String bPass)
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   228
	throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   229
	String username = "radtest_serial";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   230
	String promptA = "Password A:";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   231
	String promptB = "Password B:";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   232
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   233
	Block block = bean_.login(locale_, username);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   234
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   235
	assertEquals(BlockType.conv, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   236
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   237
	List<Message> messages = block.getMessages();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   238
	assertNotNull(messages);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   239
	assertEquals(1, messages.size());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   240
	assertEquals(promptA, messages.get(0).getMessage());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   241
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   242
	List<char[]>resp = new ArrayList<char[]>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   243
	resp.add(aPass.toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   244
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   245
	block = bean_.submit(resp);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   246
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   247
	if (block.getType() != BlockType.conv)
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   248
	    return false;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   249
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   250
	messages = block.getMessages();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   251
	assertNotNull(messages);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   252
	assertEquals(1, messages.size());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   253
	assertEquals(promptB, messages.get(0).getMessage());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   254
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   255
	resp = new ArrayList<char[]>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   256
	resp.add(bPass.toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   257
	block = bean_.submit(resp);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   258
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   259
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   260
	return (block.getType() == BlockType.success);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   261
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   262
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   263
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   264
    @Desc("Authentication as user using mulitple prompts in serial completes" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   265
	  " successfully.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   266
    public void authLoginMultipleSerial() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   267
	assertTrue(authLoginMultipleSerial("Apass", "Bpass"));
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   268
	assertEquals("radtest_serial", bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   269
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   270
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   271
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   272
    @Desc("Authentication as user using multiple prompts in serial fails" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   273
	  " when the first password is wrong")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   274
    public void authLoginMutipleSerialA() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   275
	assertFalse(authLoginMultipleSerial("ABadpass", "Bpass"));
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   276
	assertNull(bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   277
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   278
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   279
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   280
    @Desc("Authentication as user using multiple prompts in serial fails" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   281
	  " when the second password is wrong")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   282
    public void authLoginMultipleSerialB() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   283
	assertFalse(authLoginMultipleSerial("Apass", "BBadpass"));
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   284
	assertNull(bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   285
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   286
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   287
    /**
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   288
     * authenticate a user using multiple prompts in parallel.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   289
     * @param passowrd - a list a passwords to used as response.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   290
     * @return boolean - true if successful, otherwise false.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   291
     */
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   292
    private boolean authLoginMultipleParallel(List<char[]>passList)
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   293
	throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   294
	String username = "radtest_parallel";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   295
	String [] prompts = new String[] {"Password A:", "Password B:"};
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   296
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   297
	Block block = bean_.login(locale_, username);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   298
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   299
	assertEquals(BlockType.conv, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   300
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   301
	List<Message>messages = block.getMessages();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   302
	assertNotNull(messages);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   303
	assertEquals(2, messages.size());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   304
	assertEquals(prompts[0], messages.get(0).getMessage());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   305
	assertEquals(prompts[1], messages.get(1).getMessage());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   306
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   307
	block = bean_.submit(passList);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   308
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   309
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   310
	return (block.getType() == BlockType.success);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   311
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   312
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   313
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   314
    @Desc("Authnetication as user using multiple prompts simultaneously" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   315
	  " completes successfully.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   316
    public void authLoginMultipleParallel() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   317
	List<char[]>resp = new ArrayList<char[]>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   318
	resp.add("Apass".toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   319
	resp.add("Bpass".toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   320
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   321
	assertTrue(authLoginMultipleParallel(resp));
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   322
	assertEquals("radtest_parallel", bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   323
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   324
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   325
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   326
    @Desc("Autentication as user using multiple prompts simultaneously" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   327
	  " fails when passwords are wrong.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   328
    public void authLoginMultipleParallelFail() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   329
	List<char[]>resp = new ArrayList<char[]>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   330
	resp.add("ABadPass".toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   331
	resp.add("BBadPass".toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   332
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   333
	assertFalse(authLoginMultipleParallel(resp));
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   334
	assertNull(bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   335
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   336
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   337
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   338
    @Desc("Authentication as user using multiple prompts simultaneously" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   339
	  " fails when only one password is provided.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   340
    public void authLoginMultipleParallelFailShort() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   341
	List<char[]>resp = new ArrayList<char[]>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   342
	resp.add("Apass".toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   343
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   344
	boolean successful = false;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   345
	try {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   346
	    authLoginMultipleParallel(resp);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   347
	} catch (ObjectException oe) {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   348
	    // We expect an ObjectException to be thrown
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   349
	    successful = true;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   350
	}
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   351
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   352
	assertNull(bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   353
	assertTrue(successful);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   354
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   355
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   356
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   357
    @Desc("Authentication as user using multiple prompts simultaneously" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   358
	  " fails when too many passwords are provided.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   359
    public void authLoginMultipleParallelFailLong() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   360
	List<char[]>resp = new ArrayList<char[]>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   361
	resp.add("Apass".toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   362
	resp.add("Bpass".toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   363
	resp.add("OneTooManyPass".toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   364
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   365
	boolean successful = false;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   366
	try {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   367
	    authLoginMultipleParallel(resp);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   368
	} catch (ObjectException oe) {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   369
	    // We expect an ObjectException to be thrown
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   370
	    successful = true;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   371
	}
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   372
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   373
	assertNull(bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   374
	assertTrue(successful);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   375
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   376
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   377
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   378
    @Desc("Authentication as expired user fails.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   379
    public void authLoginExpired() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   380
	String username = "radtest_expired";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   381
	String prompt = "Password:";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   382
	String password = "simplepss";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   383
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   384
	Block block = bean_.login(locale_, username);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   385
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   386
	assertEquals(BlockType.conv, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   387
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   388
	List<Message>messages = block.getMessages();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   389
	assertNotNull(messages);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   390
	assertEquals(1, messages.size());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   391
	assertEquals(prompt, messages.get(0).getMessage());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   392
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   393
	List<char[]>resp = new ArrayList<char[]>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   394
	resp.add(password.toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   395
	block = bean_.submit(resp);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   396
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   397
	assertEquals(BlockType.error, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   398
	assertNull(bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   399
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   400
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   401
    /**
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   402
     * common method used by the following three 'change password' tests.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   403
     *
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   404
     * @param prompt [] - exptected prompts from the server.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   405
     * @param response [] - proper responses to the prompts above.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   406
     * @param BlockType [] - expected server responses to the responses above.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   407
     */
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   408
    private void authLoginChangePasswordBase(String [] prompt,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   409
        String [] response, BlockType [] blockType) throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   410
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   411
	String username = "radtest_stale";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   412
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   413
	Block block = bean_.login(locale_, username);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   414
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   415
	assertEquals(BlockType.conv, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   416
	for (int i = 0; i < prompt.length; i++) {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   417
	    List<Message>messages = block.getMessages();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   418
	    assertNotNull(messages);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   419
	    assertEquals(1, messages.size());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   420
	    assertEquals(prompt[i], messages.get(0).getMessage());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   421
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   422
	    List<char []>resp = new ArrayList<char []>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   423
	    if (response[i] != null) {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   424
		resp.add(response[i].toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   425
	    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   426
	    block = bean_.submit(resp);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   427
	    assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   428
	    assertEquals(blockType[i], block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   429
	}
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   430
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   431
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   432
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   433
    @Desc("Authentication as user with stale password is able to provide" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   434
	  " a new one.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   435
    public void authLoginChangePassword() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   436
	String [] prompt = new String [] {"Password:",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   437
					  "Your password has expired.",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   438
					  "New Password:",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   439
					  "New Password:"};
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   440
	String [] response = new String [] {"simplepass",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   441
					    null,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   442
					    "newpass",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   443
					    "newpass"};
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   444
	BlockType [] blockType =  new BlockType [] {BlockType.conv,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   445
						    BlockType.conv,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   446
						    BlockType.conv,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   447
						    BlockType.success};
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   448
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   449
	authLoginChangePasswordBase(prompt, response, blockType);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   450
	assertEquals("radtest_stale", bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   451
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   452
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   453
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   454
    @Desc("Authentication as user with statel password is prompted for new" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   455
	  " one until successful.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   456
    public void authLoginChangePasswordRetry() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   457
	String [] prompt =  new String [] {"Password:",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   458
					   "Your password has expired.",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   459
					   "New Password:",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   460
					   "New Password:",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   461
					   "New Password:"};
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   462
	String [] response = new String [] {"simplepass",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   463
					    null,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   464
					    "lamepass",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   465
					    "newpass",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   466
					    "newpass"};
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   467
	BlockType [] blockType = new BlockType [] {BlockType.conv,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   468
						   BlockType.conv,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   469
						   BlockType.conv,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   470
						   BlockType.conv,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   471
						   BlockType.success};
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   472
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   473
	authLoginChangePasswordBase(prompt, response, blockType);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   474
	assertEquals("radtest_stale", bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   475
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   476
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   477
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   478
    @Desc("Authentication as user with stale password is prompted for new" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   479
	  " one but fails")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   480
    public void authLoginChangePasswordFail() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   481
	String [] prompt =  new String [] {"Password:",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   482
					   "Your password has expired.",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   483
					   "New Password:",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   484
					   "New Password:",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   485
					   "New Password:"};
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   486
	String [] response = new String [] {"simplepass",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   487
					    null,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   488
					    "firstbadpass",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   489
					    "secondbadpass",
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   490
					    "thirdbadpass"};
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   491
	BlockType [] blockType = new BlockType [] {BlockType.conv,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   492
						   BlockType.conv,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   493
						   BlockType.conv,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   494
						   BlockType.conv,
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   495
						   BlockType.error};
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   496
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   497
	authLoginChangePasswordBase(prompt, response, blockType);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   498
	assertNull(bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   499
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   500
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   501
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   502
    @Desc("User is able to assume role without password")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   503
    public void authAssumeNoPassword() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   504
	// login as 'radtest_hasroles'
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   505
	authRolesCorrect();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   506
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   507
	String rolename = "radtest_rolenopass";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   508
	Block block = bean_.assume(locale_, rolename);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   509
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   510
	assertEquals(BlockType.success, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   511
	assertEquals(rolename, bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   512
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   513
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   514
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   515
    @Desc("User is able to assume a role with a password")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   516
    public void authAssumePassword() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   517
	String rolename = "radtest_rolepass";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   518
	String prompt = "Password:";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   519
	String rolepass = "rolepass";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   520
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   521
	// login as 'radtest_hasroles'
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   522
	authRolesCorrect();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   523
	Block block = bean_.assume(locale_, rolename);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   524
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   525
	assertEquals(BlockType.conv, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   526
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   527
	List<Message>messages = block.getMessages();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   528
	assertEquals(1, messages.size());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   529
	assertEquals(prompt, messages.get(0).getMessage());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   530
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   531
	List<char[]>resp = new ArrayList<char[]>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   532
	resp.add(rolepass.toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   533
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   534
	block = bean_.submit(resp);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   535
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   536
	assertEquals(BlockType.success, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   537
	assertEquals(rolename,  bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   538
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   539
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   540
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   541
    @Desc("Attempt to assume a bad role fails.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   542
    public void authAssumeBadRole() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   543
	String rolename = "badrole";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   544
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   545
	// login as 'radtest_hasroles'
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   546
	authRolesCorrect();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   547
	Block block = bean_.assume(locale_, rolename);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   548
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   549
	assertEquals(BlockType.error, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   550
	assertEquals("radtest_hasroles", bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   551
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   552
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   553
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   554
    @Desc("Attempt to assume a role fails due to bad password.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   555
    public void authAssumeBadPassword() throws Throwable {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   556
	String rolename = "radtest_rolepass";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   557
	String prompt = "Password:";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   558
	String password = "badrolepass";
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   559
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   560
	// login as 'radtest_hasroles'
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   561
	authRolesCorrect();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   562
	Block block = bean_.assume(locale_, rolename);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   563
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   564
	assertEquals(BlockType.conv, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   565
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   566
	List<Message>messages = block.getMessages();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   567
	assertEquals(1, messages.size());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   568
	assertEquals(prompt, messages.get(0).getMessage());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   569
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   570
	List<char[]>resp = new ArrayList<char[]>();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   571
	resp.add(password.toCharArray());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   572
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   573
	block = bean_.submit(resp);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   574
	assertNotNull(block);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   575
	assertEquals(BlockType.error, block.getType());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   576
	assertEquals("radtest_hasroles", bean_.getuser());
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   577
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   578
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   579
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   580
    @Desc("Connection times out if no requests are made following connection.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   581
    public void authTimeoutExpireInitial() throws Throwable {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   582
	// pause a second logger to force a timeout.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   583
	Thread.sleep((CONN_TO + 1) * 1000);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   584
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   585
	try {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   586
	    int to = bean_.getconnectionTimeout();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   587
	    assertEquals(CONN_TO, to);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   588
	} catch (UndeclaredThrowableException ute) {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   589
	    Throwable t = ute.getUndeclaredThrowable();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   590
	    if (USCE_CLASSNAME.equals(t.getClass().getName()))
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   591
		return;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   592
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   593
	    throw t;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   594
	}
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   595
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   596
	fail("Connection did not timeout as expected.");
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   597
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   598
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   599
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   600
    @Desc("Connection times out after a request is made.")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   601
    public void authTimeoutExpireResponse() throws Throwable {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   602
	int to = bean_.getconnectionTimeout();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   603
	assertEquals(CONN_TO, to);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   604
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   605
	// pause to force a timeout
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   606
	Thread.sleep((CONN_TO + 1) * 1000);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   607
	try {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   608
	    to = bean_.getconnectionTimeout();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   609
	    assertEquals(CONN_TO, to);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   610
	} catch (UndeclaredThrowableException ute) {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   611
	    Throwable t = ute.getUndeclaredThrowable();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   612
	    if (USCE_CLASSNAME.equals(t.getClass().getName()))
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   613
		return;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   614
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   615
	    throw t;
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   616
	}
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   617
	fail("Connection did not timeout as expected.");
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   618
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   619
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   620
    @Test
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   621
    @Desc("Connection about to timeout is correctly extended following" +
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   622
	  " response")
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   623
    public void authTimeoutExtension() throws Exception {
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   624
	Thread.sleep((CONN_TO - 1) * 1000);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   625
	int to = bean_.getconnectionTimeout();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   626
	assertEquals(CONN_TO, to);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   627
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   628
	// start login process with 1 second left
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   629
	Block block = bean_.login(locale_, "radtest_nopass");
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   630
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   631
	// pause past the would have been remaining 1 second
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   632
	Thread.sleep(1500);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   633
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   634
	// should have got another 'CONN_TO' worth of time. It should now
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   635
	// be CONN_TO - 1.5 seconds before the next timeout.
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   636
	to = bean_.getconnectionTimeout();
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   637
	assertEquals(CONN_TO, to);
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   638
    }
06c57694c78d 18722 - Add tests for authentication and PAM conversation processing.
Shadrack Kilemba <Shadrack.Kilemba@Oracle.COM>
parents:
diff changeset
   639
}