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, usingEmbeddedalarm, 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, vmAtLeastassertEquals, 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, toStringprivate 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
BaseJDBCTestCasetearDown in class BaseJDBCTestCasejava.lang.Exceptionpublic void testNetworkServerSecurityMechanism()
throws java.sql.SQLException,
java.lang.Exception
java.sql.SQLExceptionjava.lang.Exceptionpublic void testSecurityMechanismOnEmbedded()
throws java.sql.SQLException
java.sql.SQLExceptionprivate boolean setSecurityMechanism(java.lang.String derby_security_mechanism)
throws java.lang.Exception
java.lang.Exceptionprivate 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.Exceptionprivate void assertConnectionOK(java.sql.Connection conn)
throws java.sql.SQLException
conn - database connectionjava.lang.Exception - if there is any errorjava.sql.SQLExceptionprivate void assertDerby1080Fixed(java.lang.String expectedValue)
throws java.lang.Exception
java.lang.Exceptionprivate 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.Exceptionprivate 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.