public class NSSecurityMechanismTest extends BaseJDBCTestCase
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
derby_drda_securityMechanism |
private static java.lang.String[] |
derby_drda_securityMechanisms |
private static java.lang.String[] |
PWD_ATTRIBUTE |
private static short[] |
SECMEC_ATTRIBUTE |
(package private) static short |
SECMEC_EUSRIDPWD |
(package private) static short |
SECMEC_USRENCPWD |
(package private) static short |
SECMEC_USRIDNWPWD |
(package private) static short |
SECMEC_USRIDONL |
(package private) static short |
SECMEC_USRIDPWD |
(package private) static short |
SECMEC_USRSSBPWD |
private static java.lang.String[] |
USER_ATTRIBUTE |
DEFAULT_DB_DIR, DERBY_LOG, ERRORSTACKTRACEFILE
Constructor and Description |
---|
NSSecurityMechanismTest(java.lang.String name) |
Modifier and Type | Method and Description |
---|---|
private java.util.HashMap<java.lang.String,java.lang.Object> |
addRequiredAttributes(java.util.HashMap<java.lang.String,java.lang.Object> attrs) |
private void |
assertAllCombinationsOfUserPasswordSecMecInputOK(java.lang.String[] expectedValues)
Test different interesting combinations of user,password, security
mechanism for testing security mechanism upgrade logic.
|
private void |
assertConnectionOK(java.sql.Connection conn)
Test a connection by executing a sample query
|
private void |
assertConnectionsUsingDriverManager(java.lang.String[] expectedValues) |
private void |
assertConnectionUsingDataSource(java.lang.String[] expectedValues)
Get connection from datasource and also set security mechanism
|
private void |
assertConnectionUsingDriverManager(java.lang.String dbUrl,
java.lang.String msg,
java.lang.String expectedValue) |
private void |
assertDerby1080Fixed(java.lang.String expectedValue)
This is a regression test for DERBY-1080 - where some variables required
only for the EUSRIDPWD security mechanism case were not getting reset on
connection re-use and resulting in protocol error.
|
private void |
assertSecMecWithConnPoolingOK(java.lang.String user,
java.lang.String password,
java.lang.Short secmec)
Test a deferred connection reset.
|
private void |
assertSecurityMechanismOK(java.lang.String user,
java.lang.String password,
java.lang.Short secmec,
java.lang.String msg,
java.lang.String expectedValue) |
private void |
assertSQLState08001(java.lang.String expectedValue,
java.sql.SQLException sqle) |
private void |
assertUSRSSBPWD_with_BUILTIN(java.lang.String[] expectedValues)
Test SECMEC_USRSSBPWD with derby BUILTIN authentication turned ON.
|
private static void |
dumpSQLException(java.sql.SQLException sqle)
Dump SQLState and message for the complete nested chain of SQLException
|
private javax.sql.ConnectionPoolDataSource |
getCPDS(java.lang.String user,
java.lang.String password) |
private void |
getDataSourceConnection(java.lang.String user,
java.lang.String password,
java.lang.String expectedValue)
Helper method to get connection from datasource and to print
the exceptions if any when getting a connection.
|
private java.sql.Connection |
getDataSourceConnectionWithSecMec(java.lang.String user,
java.lang.String password,
java.lang.Short secMec) |
private javax.sql.DataSource |
getDS(java.lang.String user,
java.lang.String password) |
private java.lang.String |
getExpectedValueFromAll(java.lang.String[] expectedValues,
int USER_ATTR,
int PWD_ATTR,
int SECMEC_ATTR) |
private java.lang.String |
getJDBCUrl(java.lang.String attrs) |
private boolean |
hasSufficientEntropy()
Tells if the current platform is assumed to have sufficient entropy for
the strong password substitution security mechanism to run reasonably
fast.
|
private boolean |
setSecurityMechanism(java.lang.String derby_security_mechanism) |
static junit.framework.Test |
suite() |
protected void |
tearDown()
Tear down this fixture, sub-classes should call
super.tearDown().
|
void |
testNetworkServerSecurityMechanism()
Test cases for security mechanism
---------------------------------------------------------------
DriverManager:
T1 - default , no user PASS (for derbyclient)
T2 - user only PASS (for derbyclient)
T3 - user,password PASS (only for derbynet)
T4 - user,password, security mechanism not set FAIL
T5 - user,password, security mechanism set
to SECMEC_EUSRIDPWD PASS/FAIL
(Fails with Sun JVM as EUSRIDPWD secmec cannot be used)
T6 - user, security mechanism set to SECMEC_USRIDONL PASS
T7 - user,password, security mechanism set to SECMEC_USRENCPWD FAIL
Test with datasource as well as DriverManager
T8 - user,password security mechanism set to SECMEC_USRIDONL PASS
T9 - user,password security mechanism set to SECMEC_USRSSBPWD PASS
Test with datasource as well as DriverManager
Note, that with DERBY-928, the pass/fail for the connections will depend
on the security mechanism specified at the server by property
derby.drda.securityMechanism.
|
void |
testSecurityMechanismOnEmbedded()
Test that securityMechanism=8 is ignored by the embedded driver
(DERBY-3025).
|
assertCallError, assertCheckTable, assertCommitError, assertCompileError, assertEquals, assertEquals, assertEquals, assertEquivalentDataType, assertErrorCode, assertGetIntError, assertNextError, assertPreparedStatementError, assertResults, assertResults, assertSQLExceptionEquals, assertSQLState, assertSQLState, assertStatementError, assertStatementError, assertStatementError, assertStatementError, assertStatementErrorUnordered, assertTableRowCount, assertUpdateCount, assertUpdateCount, assertWarning, chattyPrepare, chattyPrepareCall, checkAllConsistency, checkEstimatedRowCount, closeStatement, commit, createStatement, createStatement, createStatement, dropTable, dropTable, dropView, dropView, dumpRs, dumpRs, emptyStatementCache, executeQuery, expectCompilationError, expectCompilationError, expectExecutionError, getClientTransactionID, getConnection, getDatabaseProperty, getLastSQLException, goodStatement, goodUpdate, initializeConnection, openConnection, openDefaultConnection, openDefaultConnection, openDefaultConnection, openUserConnection, prepareCall, prepareCall, prepareCall, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, rollback, runBare, runBareOverridable, runScript, runScript, runSQLCommands, setAutoCommit, usingDB2Client, usingDerbyNetClient, usingEmbedded
alarm, assertDirectoryDeleted, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertExecJavaCmdAsExpected, assertLaunchedJUnitTestMethod, assertLaunchedJUnitTestMethod, assertSameNullness, assertSecurityManager, assertThrowableEquals, currentDirectory, execJavaCmd, execJavaCmd, execJavaCmd, fail, getClassVersionMajor, getEmmaJar, getFailureFolder, getFilesWith, getJavaExecutableName, getSystemProperty, getTestConfiguration, getTestResource, hasInterruptibleIO, isCVM, isIBMJVM, isJ9Platform, isJava5, isJava7, isPhoneME, isPlatform, isSunJVM, isWindowsPlatform, newAssertionFailedError, openTestResource, println, printStackTrace, readProcessOutput, removeDirectory, removeDirectory, removeFiles, removeSystemProperty, runsWithEmma, runsWithJaCoCo, setSystemErr, setSystemOut, setSystemProperty, sleep, sleepAtLeastOneTick, traceit, vmAtLeast
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, countTestCases, createResult, fail, fail, failNotEquals, failNotSame, failSame, format, getName, run, run, runTest, setName, setUp, toString
private static java.lang.String[] derby_drda_securityMechanisms
private static java.lang.String derby_drda_securityMechanism
private static java.lang.String[] USER_ATTRIBUTE
private static java.lang.String[] PWD_ATTRIBUTE
static final short SECMEC_EUSRIDPWD
static final short SECMEC_USRIDONL
static final short SECMEC_USRENCPWD
static final short SECMEC_USRIDNWPWD
static final short SECMEC_USRIDPWD
static final short SECMEC_USRSSBPWD
private static short[] SECMEC_ATTRIBUTE
public static junit.framework.Test suite()
protected void tearDown() throws java.lang.Exception
BaseJDBCTestCase
tearDown
in class BaseJDBCTestCase
java.lang.Exception
public void testNetworkServerSecurityMechanism() throws java.sql.SQLException, java.lang.Exception
java.sql.SQLException
java.lang.Exception
public void testSecurityMechanismOnEmbedded() throws java.sql.SQLException
java.sql.SQLException
private boolean setSecurityMechanism(java.lang.String derby_security_mechanism) throws java.lang.Exception
java.lang.Exception
private void assertConnectionsUsingDriverManager(java.lang.String[] expectedValues)
private void assertConnectionUsingDataSource(java.lang.String[] expectedValues)
private void assertSecurityMechanismOK(java.lang.String user, java.lang.String password, java.lang.Short secmec, java.lang.String msg, java.lang.String expectedValue)
private void assertConnectionUsingDriverManager(java.lang.String dbUrl, java.lang.String msg, java.lang.String expectedValue)
private void assertAllCombinationsOfUserPasswordSecMecInputOK(java.lang.String[] expectedValues)
private java.lang.String getExpectedValueFromAll(java.lang.String[] expectedValues, int USER_ATTR, int PWD_ATTR, int SECMEC_ATTR)
private void getDataSourceConnection(java.lang.String user, java.lang.String password, java.lang.String expectedValue)
user
- usernamepassword
- passwordexpectedValue
- expected sql stateprivate static void dumpSQLException(java.sql.SQLException sqle)
sqle
- SQLException whose complete chain of exceptions is
traversed and sqlstate and message is printed outprivate void assertSecMecWithConnPoolingOK(java.lang.String user, java.lang.String password, java.lang.Short secmec) throws java.lang.Exception
user
- usernamepassword
- password for connectionsecmec
- security mechanism for datasourcejava.lang.Exception
private void assertConnectionOK(java.sql.Connection conn) throws java.sql.SQLException
conn
- database connectionjava.lang.Exception
- if there is any errorjava.sql.SQLException
private void assertDerby1080Fixed(java.lang.String expectedValue) throws java.lang.Exception
java.lang.Exception
private void assertUSRSSBPWD_with_BUILTIN(java.lang.String[] expectedValues) throws java.lang.Exception
java.lang.Exception
- if there an unexpected errorprivate java.sql.Connection getDataSourceConnectionWithSecMec(java.lang.String user, java.lang.String password, java.lang.Short secMec) throws java.lang.Exception
java.lang.Exception
private java.lang.String getJDBCUrl(java.lang.String attrs)
private javax.sql.DataSource getDS(java.lang.String user, java.lang.String password)
private java.util.HashMap<java.lang.String,java.lang.Object> addRequiredAttributes(java.util.HashMap<java.lang.String,java.lang.Object> attrs)
private javax.sql.ConnectionPoolDataSource getCPDS(java.lang.String user, java.lang.String password)
private void assertSQLState08001(java.lang.String expectedValue, java.sql.SQLException sqle)
private boolean hasSufficientEntropy()
Apache Derby V10.13 Internals - Copyright © 2004,2016 The Apache Software Foundation. All Rights Reserved.