public class SystemPrivilegesPermissionTest extends BaseTestCase
Modifier and Type | Class and Description |
---|---|
class |
SystemPrivilegesPermissionTest.CreateDatabaseAction
Represents a Create Database action.
|
static class |
SystemPrivilegesPermissionTest.RunAsPrivilegedUserAction<T>
Represents a Privileged User action.
|
class |
SystemPrivilegesPermissionTest.ShutdownAction
Represents a Shutdown server and engine action.
|
Modifier and Type | Field and Description |
---|---|
private static java.lang.String[] |
absDirPathAliases
Some absolute directory path aliases for testing DatabasePermissions.
|
private static java.lang.String[] |
absDirPaths
Some absolute directory paths for testing DatabasePermissions.
|
private static boolean[][] |
dirPathImpls
The matrix defining which of the above directory paths imply each other.
|
private static java.lang.String[] |
dirPaths
Some directory paths for testing DatabasePermissions.
|
private static java.lang.String |
POLICY_FILE_NAME
The policy file name for the subject authorization tests.
|
private static java.lang.String |
POLICY_FILE_NAME1
The policy file name for the DatabasePermission API test.
|
private static java.lang.String[] |
relDirPathAliases
Some relative directory path aliases for testing DatabasePermissions.
|
private static java.lang.String[] |
relDirPaths
Some relative directory paths for testing DatabasePermissions.
|
private static java.lang.String[] |
VALID_SYSPERM_ACTIONS
The valid actions of a SystemPermission.
|
private static java.lang.String[] |
VALID_SYSPERM_NAMES
The valid names of a SystemPermission.
|
DEFAULT_DB_DIR, DERBY_LOG, ERRORSTACKTRACEFILE
Constructor and Description |
---|
SystemPrivilegesPermissionTest(java.lang.String name)
Create a test with the given name.
|
Modifier and Type | Method and Description |
---|---|
private void |
assertEquivalentPermissions(java.security.Permission p1,
java.security.Permission p2) |
private void |
checkDistinctPermissions(java.security.Permission[] set)
Check thet a set of Permission objects are distinct,
do not equal or imply each other.
|
private void |
checkHashCodeAndEquals(java.security.Permission[] dbp0,
java.security.Permission[] dbp1)
Tests DatabasePermission.hashCode() and .equals().
|
private void |
checkImplies(java.security.Permission[] dbp0,
java.security.Permission[] dbp1,
boolean[][] impls)
Tests DatabasePermission.implies().
|
private void |
checkNameAndActions(org.apache.derby.security.DatabasePermission[] dbperm,
java.lang.String[] dbpath)
Tests DatabasePermission.getName() and .getActions().
|
private static org.apache.derby.security.DatabasePermission |
createDBPermNoCheck(java.lang.String url,
java.lang.String actions)
Create a DatabasePermission object without checking that the URL
and the actions are valid.
|
private static org.apache.derby.security.SystemPermission |
createSyspermNoCheck(java.lang.String name,
java.lang.String actions)
Create a new SystemPermission object without checking that the name
and actions are valid.
|
private <T> void |
execute(org.apache.derby.authentication.SystemPrincipal principal,
java.security.PrivilegedAction<T> action,
boolean isGrantExpected)
Runs a privileged user action for a given principal.
|
private static java.lang.String |
getAuthorizationId(java.lang.String name)
Returns the Authorization Identifier for a principal name.
|
void |
policyTestDatabasePermissionGrants()
Tests DatabasePermissions against the Policy.
|
void |
policyTestSystemPermissionGrants()
Tests SystemPermissions against the Policy.
|
private static <T> T |
serializeDeserialize(T object,
java.lang.Class<? extends java.lang.Exception> expectedException)
Serialize an object, then deserialize it from where it's stored, and
finally return the deserialized object.
|
private static void |
setField(java.lang.Class<?> klass,
java.lang.String name,
java.lang.Object object,
java.lang.Object value)
Forcefully set the value of a field, ignoring access checks such as
final and private.
|
static junit.framework.Test |
suite()
Return a suite with all tests in this class (default suite)
|
void |
testDatabasePermission()
Tests DatabasePermission.
|
private void |
testDatabasePermissionSerialization()
Test serialization and deserialization of DatabasePermission objects.
|
void |
testSerialization()
Test serialization of permissions.
|
void |
testSystemPermission()
Tests SystemPermission.
|
void |
testSystemPermissionCollections()
Test that collections of SystemPermissions behave as expected.
|
private void |
testSystemPermissionSerialization()
Test serialization and deserialization of SystemPermission objects.
|
void |
testSystemPrincipal()
Tests SystemPrincipal.
|
private void |
testSystemPrincipalSerialization()
Test serialization of SystemPrincipal objects.
|
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, runBare, 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, tearDown, toString
private static final java.lang.String POLICY_FILE_NAME
private static final java.lang.String POLICY_FILE_NAME1
private static final java.lang.String[] dirPaths
private static final java.lang.String[] relDirPaths
private static final java.lang.String[] relDirPathAliases
private static final java.lang.String[] absDirPaths
private static final java.lang.String[] absDirPathAliases
private static final boolean[][] dirPathImpls
private static final java.lang.String[] VALID_SYSPERM_NAMES
private static final java.lang.String[] VALID_SYSPERM_ACTIONS
public SystemPrivilegesPermissionTest(java.lang.String name)
name
- name of the testpublic static junit.framework.Test suite()
public void testSystemPrincipal()
public void testSystemPermission()
public void testSystemPermissionCollections()
public void policyTestSystemPermissionGrants()
public void testDatabasePermission() throws java.io.IOException
java.io.IOException
public void policyTestDatabasePermissionGrants() throws java.io.IOException
java.io.IOException
public void testSerialization() throws java.io.IOException
java.io.IOException
private void testDatabasePermissionSerialization() throws java.io.IOException
java.io.IOException
private void testSystemPermissionSerialization() throws java.io.IOException
java.io.IOException
private void testSystemPrincipalSerialization() throws java.io.IOException
java.io.IOException
private static org.apache.derby.security.DatabasePermission createDBPermNoCheck(java.lang.String url, java.lang.String actions) throws java.io.IOException
url
- the URL of the permissionactions
- the actions of the permissionjava.io.IOException
private static org.apache.derby.security.SystemPermission createSyspermNoCheck(java.lang.String name, java.lang.String actions)
name
- the name of the permissionactions
- the actions of the permissionprivate static void setField(java.lang.Class<?> klass, java.lang.String name, java.lang.Object object, java.lang.Object value)
klass
- the class in which the field livesname
- the name of the fieldobject
- the object to changevalue
- the new value of the fieldprivate static <T> T serializeDeserialize(T object, java.lang.Class<? extends java.lang.Exception> expectedException) throws java.io.IOException
T
- the type of the object being serializedobject
- the object to serializeexpectedException
- the type of exception being expected during
deserialization, or null
if deserialization is expected to
be successfulnull
if deserialization
failed as expectedjava.io.IOException
- if an I/O error occurredprivate <T> void execute(org.apache.derby.authentication.SystemPrincipal principal, java.security.PrivilegedAction<T> action, boolean isGrantExpected)
private void checkNameAndActions(org.apache.derby.security.DatabasePermission[] dbperm, java.lang.String[] dbpath) throws java.io.IOException
java.io.IOException
private void checkHashCodeAndEquals(java.security.Permission[] dbp0, java.security.Permission[] dbp1) throws java.io.IOException
java.io.IOException
private void checkImplies(java.security.Permission[] dbp0, java.security.Permission[] dbp1, boolean[][] impls) throws java.io.IOException
java.io.IOException
private void checkDistinctPermissions(java.security.Permission[] set)
private void assertEquivalentPermissions(java.security.Permission p1, java.security.Permission p2)
private static java.lang.String getAuthorizationId(java.lang.String name)
name
- the name of the principalApache Derby V10.13 Internals - Copyright © 2004,2016 The Apache Software Foundation. All Rights Reserved.