You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2006/03/15 13:21:17 UTC

svn commit: r386061 - in /incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit: javax/security/auth/ org/apache/harmony/security/test/ org/apache/harmony/security/x/security/auth/login/

Author: tellison
Date: Wed Mar 15 04:21:13 2006
New Revision: 386061

URL: http://svn.apache.org/viewcvs?rev=386061&view=rev
Log:
Apply patch HARMONY-200 (2 security tests must correctly restore environment)

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/javax/security/auth/PolicyTest.java
    incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/org/apache/harmony/security/test/TestUtils.java
    incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/org/apache/harmony/security/x/security/auth/login/DefaultConfigurationTest.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/javax/security/auth/PolicyTest.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/javax/security/auth/PolicyTest.java?rev=386061&r1=386060&r2=386061&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/javax/security/auth/PolicyTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/javax/security/auth/PolicyTest.java Wed Mar 15 04:21:13 2006
@@ -1,376 +1,374 @@
-/*
- *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-/**
-* @author Alexey V. Varlamov
-* @version $Revision$
-*/
-
-package javax.security.auth;
-
-import java.io.File;
-import java.io.FilePermission;
-import java.net.URL;
-import java.security.AllPermission;
-import java.security.CodeSigner;
-import java.security.CodeSource;
-import java.security.Permission;
-import java.security.PermissionCollection;
-import java.security.Security;
-import java.security.cert.Certificate;
-import java.util.Enumeration;
-
-import junit.framework.TestCase;
-import org.apache.harmony.security.test.SecurityChecker;
-
-
-/**
- * Tests Policy class
- */
-public class PolicyTest extends TestCase {
-
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(PolicyTest.class);
-    }
-
-    /**
-     * Tests that setPolicy() is properly secured via SecurityManager.
-     */
-    public void testSetPolicy() {
-        SecurityManager old = System.getSecurityManager();
-        Policy oldPolicy = null;
-        oldPolicy = Policy.getPolicy();
-
-        try {
-            SecurityChecker checker = new SecurityChecker(new AuthPermission(
-                    "setPolicy"), true);
-            System.setSecurityManager(checker);
-            Policy custom = new TestProvider();
-            Policy.setPolicy(custom);
-            assertTrue(checker.checkAsserted);
-            assertSame(custom, Policy.getPolicy());
-
-            checker.reset();
-            checker.enableAccess = false;
-            try {
-                Policy.setPolicy(new TestProvider());
-                fail("SecurityException is intercepted");
-            } catch (SecurityException ok) {
-            }
-        } finally {
-            System.setSecurityManager(old);
-            Policy.setPolicy(oldPolicy);
-        }
-    }
-
-    /**
-     * Tests that getPolicy() is properly secured via SecurityManager.
-     */
-    public void testGetPolicy_CheckPermission() {
-        SecurityManager old = System.getSecurityManager();
-        Policy oldPolicy = null;
-        oldPolicy = Policy.getPolicy();
-
-        try {
-            Policy.setPolicy(new TestProvider());
-            SecurityChecker checker = new SecurityChecker(new AuthPermission(
-                    "getPolicy"), true);
-            System.setSecurityManager(checker);
-            Policy.getPolicy();
-            assertTrue(checker.checkAsserted);
-
-            checker.reset();
-            checker.enableAccess = false;
-            try {
-                Policy.getPolicy();
-                fail("SecurityException is intercepted");
-            } catch (SecurityException ok) {
-            }
-        } finally {
-            System.setSecurityManager(old);
-            Policy.setPolicy(oldPolicy);
-        }
-    }
-
-    public static class TestProvider extends Policy {
-
-        public PermissionCollection getPermissions(Subject subject,
-                CodeSource cs) {
-            return null;
-        }
-
-        public void refresh() {
-        }
-    }
-
-    public static class FakePolicy {
-        // This is not policy class
-    }
-    /**
-     * Tests loading of a default provider, both valid and invalid class
-     * references.
-     */
-    public void testGetPolicy_LoadDefaultProvider() {
-        Policy oldPolicy = null;
-        try {
-            oldPolicy = Policy.getPolicy();
-        } catch (Throwable ignore) {
-        }
-        String POLICY_PROVIDER = "auth.policy.provider";
-        String oldProvider = Security.getProperty(POLICY_PROVIDER);
-        try {
-            Security.setProperty(POLICY_PROVIDER, TestProvider.class.getName());
-            Policy.setPolicy(null);
-            Policy p = Policy.getPolicy();
-            assertNotNull(p);
-            assertEquals(TestProvider.class.getName(), p.getClass().getName());
-
-            // absent class
-            Security.setProperty(POLICY_PROVIDER, "a.b.c.D");
-            Policy.setPolicy(null);
-            try {
-                p = Policy.getPolicy();
-                fail("No SecurityException on failed provider");
-            } catch (SecurityException ok) {
-            }
-            
-            // not a policy class
-            Security.setProperty(POLICY_PROVIDER, FakePolicy.class.getName());
-            Policy.setPolicy(null);
-            try {
-                p = Policy.getPolicy();
-                fail("No expected SecurityException");
-            } catch (SecurityException ok) {
-            }
-        } finally {
-            Security.setProperty(POLICY_PROVIDER, (oldProvider == null) ? ""
-                    : oldProvider);
-            Policy.setPolicy(oldPolicy);
-        }
-    }
-
-    //
-    //
-    //
-    //
-    //
-
-    static String outputPath = System.getProperty("TEST_SRC_DIR", "test"
-            + File.separator + "common" + File.separator + "unit");
-
-    static String inputFile1 = outputPath + File.separator + "javax"
-            + File.separator + "security" + File.separator + "auth"
-            + File.separator + "jaas_policy1.txt";
-
-    static String inputFile2 = outputPath + File.separator + "javax"
-            + File.separator + "security" + File.separator + "auth"
-            + File.separator + "jaas_policy2.txt";
-
-    public void test_GetPermissions() throws Exception {
-
-        PermissionCollection c;
-        Permission per;
-        Subject subject;
-        Enumeration e;
-        CodeSource source;
-
-        String POLICY_PROP = "java.security.auth.policy";
-
-        String oldProp = System.getProperty(POLICY_PROP);
-        try {
-            System.setProperty(POLICY_PROP, inputFile1);
-
-            Policy p = Policy.getPolicy();
-            p.refresh();
-
-            //
-            // Both parameters are null
-            //
-
-            c = p.getPermissions(null, null);
-            assertFalse("Read only for empty", c.isReadOnly());
-            assertFalse("Elements for empty", c.elements().hasMoreElements());
-
-            //
-            // Subject parameter is provided (CodeBase is not important)
-            //
-            // Principal javax.security.auth.MyPrincipal "duke"
-            //
-
-            // no prinipals at all
-            subject = new Subject();
-            c = p.getPermissions(subject, null);
-            assertFalse("Elements: ", c.elements().hasMoreElements());
-
-            // different name "kuke" not "duke"
-            subject.getPrincipals().add(new MyPrincipal("kuke"));
-            c = p.getPermissions(subject, null);
-            assertFalse("Elements: ", c.elements().hasMoreElements());
-
-            // different class with required principal's name
-            subject.getPrincipals().add(new OtherPrincipal("duke"));
-            c = p.getPermissions(subject, null);
-            assertFalse("Elements: ", c.elements().hasMoreElements());
-
-            // subclass with required principal's name
-            subject.getPrincipals().add(new FakePrincipal("duke"));
-            c = p.getPermissions(subject, null);
-            assertFalse("Elements: ", c.elements().hasMoreElements());
-
-            // add required principal's name
-            subject.getPrincipals().add(new MyPrincipal("duke"));
-
-            e = p.getPermissions(subject, null).elements();
-
-            per = (Permission) e.nextElement();
-            assertFalse("Elements: ", e.hasMoreElements());
-            assertEquals("Permission: ", per, new FilePermission("/home/duke",
-                    "read, write"));
-
-            // check: CodeBase is not important
-            source = new CodeSource(new URL("http://dummy.xxx"),
-                    (Certificate[]) null);
-            c = p.getPermissions(subject, source);
-            assertTrue("Elements: ", c.elements().hasMoreElements());
-
-            source = new CodeSource(new URL("http://dummy.xxx"),
-                    (CodeSigner[]) null);
-            c = p.getPermissions(subject, source);
-            assertTrue("Elements: ", c.elements().hasMoreElements());
-
-            //
-            // Subject and CodeBase parameter are provided
-            //
-            // Principal javax.security.auth.MyPrincipal "dummy"
-            // CodeBase "http://dummy.xxx"
-            //
-            source = new CodeSource(new URL("http://dummy.xxx"),
-                    (Certificate[]) null);
-            subject = new Subject();
-            subject.getPrincipals().add(new MyPrincipal("dummy"));
-
-            e = p.getPermissions(subject, source).elements();
-            per = (Permission) e.nextElement();
-            assertFalse("Elements: ", e.hasMoreElements());
-            assertEquals("Permission: ", per, new RuntimePermission(
-                    "createClassLoader"));
-
-            // reset subject : no prinipals at all
-            subject = new Subject();
-            c = p.getPermissions(subject, source);
-            assertFalse("Elements: ", c.elements().hasMoreElements());
-
-            // different name "kuke" not "dummy"
-            subject.getPrincipals().add(new MyPrincipal("kuke"));
-            c = p.getPermissions(subject, null);
-            assertFalse("Elements: ", c.elements().hasMoreElements());
-
-            // different class with required principal's name
-            subject.getPrincipals().add(new OtherPrincipal("dummy"));
-            c = p.getPermissions(subject, null);
-            assertFalse("Elements: ", c.elements().hasMoreElements());
-
-            //
-            // Principal javax.security.auth.MyPrincipal "my"
-            // Principal javax.security.auth.OtherPrincipal "other"
-            //
-            subject = new Subject();
-            subject.getPrincipals().add(new MyPrincipal("my"));
-            c = p.getPermissions(subject, null);
-            assertFalse("Elements: ", c.elements().hasMoreElements());
-
-            subject.getPrincipals().add(new OtherPrincipal("other"));
-            e = p.getPermissions(subject, null).elements();
-            per = (Permission) e.nextElement();
-            assertFalse("Elements: ", e.hasMoreElements());
-            assertEquals("Permission: ", per, new AllPermission());
-
-            //
-            // Principal javax.security.auth.MyPrincipal "bunny"
-            //
-            subject = new Subject();
-            subject.getPrincipals().add(new MyPrincipal("bunny"));
-
-            e = p.getPermissions(subject, null).elements();
-
-            Permission[] get = new Permission[2];
-            get[0] = (Permission) e.nextElement();
-            get[1] = (Permission) e.nextElement();
-            assertFalse("Elements: ", e.hasMoreElements());
-
-            Permission[] set = new Permission[2];
-            set[0] = new FilePermission("/home/bunny", "read, write");
-            set[1] = new RuntimePermission("stopThread");
-
-            if (get[0].equals(set[0])) {
-                assertEquals("Permission: ", set[1], get[1]);
-            } else {
-                assertEquals("Permission: ", set[0], get[1]);
-                assertEquals("Permission: ", set[1], get[0]);
-            }
-
-        } finally {
-            System.setProperty(POLICY_PROP, (oldProp == null) ? "" : oldProp);
-        }
-    }
-
-    public void test_Refresh() {
-
-        PermissionCollection c;
-        Permission per;
-        Subject subject;
-        Enumeration e;
-
-        String POLICY_PROP = "java.security.auth.policy";
-
-        String oldProp = System.getProperty(POLICY_PROP);
-        try {
-            //
-            // first policy file to be read
-            //
-            System.setProperty(POLICY_PROP, inputFile1);
-
-            Policy p = Policy.getPolicy();
-            p.refresh();
-
-            subject = new Subject();
-            subject.getPrincipals().add(new MyPrincipal("duke"));
-
-            e = p.getPermissions(subject, null).elements();
-
-            per = (Permission) e.nextElement();
-            assertFalse("Elements: ", e.hasMoreElements());
-            assertEquals("Permission: ", per, new FilePermission("/home/duke",
-                    "read, write"));
-
-            //
-            // second policy file to be read
-            //
-            System.setProperty(POLICY_PROP, inputFile2);
-
-            p.refresh();
-
-            e = p.getPermissions(subject, null).elements();
-
-            per = (Permission) e.nextElement();
-            assertFalse("Elements: ", e.hasMoreElements());
-            assertEquals("Permission: ", per, new RuntimePermission(
-                    "createClassLoader"));
-        } finally {
-            System.setProperty(POLICY_PROP, (oldProp == null) ? "" : oldProp);
-        }
-    }
-}
+/*
+ *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+/**
+* @author Alexey V. Varlamov
+* @version $Revision$
+*/
+
+package javax.security.auth;
+
+import java.io.File;
+import java.io.FilePermission;
+import java.net.URL;
+import java.security.AllPermission;
+import java.security.CodeSigner;
+import java.security.CodeSource;
+import java.security.Permission;
+import java.security.PermissionCollection;
+import java.security.Security;
+import java.security.cert.Certificate;
+import java.util.Enumeration;
+
+import junit.framework.TestCase;
+import org.apache.harmony.security.test.SecurityChecker;
+import org.apache.harmony.security.test.TestUtils;
+
+
+/**
+ * Tests Policy class
+ */
+public class PolicyTest extends TestCase {
+
+    public static void main(String[] args) {
+        junit.textui.TestRunner.run(PolicyTest.class);
+    }
+
+    /**
+     * Tests that setPolicy() is properly secured via SecurityManager.
+     */
+    public void testSetPolicy() {
+        SecurityManager old = System.getSecurityManager();
+        Policy oldPolicy = null;
+        oldPolicy = Policy.getPolicy();
+
+        try {
+            SecurityChecker checker = new SecurityChecker(new AuthPermission(
+                    "setPolicy"), true);
+            System.setSecurityManager(checker);
+            Policy custom = new TestProvider();
+            Policy.setPolicy(custom);
+            assertTrue(checker.checkAsserted);
+            assertSame(custom, Policy.getPolicy());
+
+            checker.reset();
+            checker.enableAccess = false;
+            try {
+                Policy.setPolicy(new TestProvider());
+                fail("SecurityException is intercepted");
+            } catch (SecurityException ok) {
+            }
+        } finally {
+            System.setSecurityManager(old);
+            Policy.setPolicy(oldPolicy);
+        }
+    }
+
+    /**
+     * Tests that getPolicy() is properly secured via SecurityManager.
+     */
+    public void testGetPolicy_CheckPermission() {
+        SecurityManager old = System.getSecurityManager();
+        Policy oldPolicy = null;
+        oldPolicy = Policy.getPolicy();
+
+        try {
+            Policy.setPolicy(new TestProvider());
+            SecurityChecker checker = new SecurityChecker(new AuthPermission(
+                    "getPolicy"), true);
+            System.setSecurityManager(checker);
+            Policy.getPolicy();
+            assertTrue(checker.checkAsserted);
+
+            checker.reset();
+            checker.enableAccess = false;
+            try {
+                Policy.getPolicy();
+                fail("SecurityException is intercepted");
+            } catch (SecurityException ok) {
+            }
+        } finally {
+            System.setSecurityManager(old);
+            Policy.setPolicy(oldPolicy);
+        }
+    }
+
+    public static class TestProvider extends Policy {
+
+        public PermissionCollection getPermissions(Subject subject,
+                CodeSource cs) {
+            return null;
+        }
+
+        public void refresh() {
+        }
+    }
+
+    public static class FakePolicy {
+        // This is not policy class
+    }
+    /**
+     * Tests loading of a default provider, both valid and invalid class
+     * references.
+     */
+    public void testGetPolicy_LoadDefaultProvider() {
+        Policy oldPolicy = null;
+        try {
+            oldPolicy = Policy.getPolicy();
+        } catch (Throwable ignore) {
+        }
+        String POLICY_PROVIDER = "auth.policy.provider";
+        String oldProvider = Security.getProperty(POLICY_PROVIDER);
+        try {
+            Security.setProperty(POLICY_PROVIDER, TestProvider.class.getName());
+            Policy.setPolicy(null);
+            Policy p = Policy.getPolicy();
+            assertNotNull(p);
+            assertEquals(TestProvider.class.getName(), p.getClass().getName());
+
+            // absent class
+            Security.setProperty(POLICY_PROVIDER, "a.b.c.D");
+            Policy.setPolicy(null);
+            try {
+                p = Policy.getPolicy();
+                fail("No SecurityException on failed provider");
+            } catch (SecurityException ok) {
+            }
+            
+            // not a policy class
+            Security.setProperty(POLICY_PROVIDER, FakePolicy.class.getName());
+            Policy.setPolicy(null);
+            try {
+                p = Policy.getPolicy();
+                fail("No expected SecurityException");
+            } catch (SecurityException ok) {
+            }
+        } finally {
+            TestUtils.setSystemProperty(POLICY_PROVIDER, oldProvider);
+            Policy.setPolicy(oldPolicy);
+        }
+    }
+
+    //
+    //
+    //
+    //
+    //
+
+    static String outputPath = System.getProperty("TEST_SRC_DIR", "test"
+            + File.separator + "common" + File.separator + "unit");
+
+    static String inputFile1 = outputPath + File.separator + "javax"
+            + File.separator + "security" + File.separator + "auth"
+            + File.separator + "jaas_policy1.txt";
+
+    static String inputFile2 = outputPath + File.separator + "javax"
+            + File.separator + "security" + File.separator + "auth"
+            + File.separator + "jaas_policy2.txt";
+
+    private static final String POLICY_PROP = "java.security.auth.policy";
+    
+    public void test_GetPermissions() throws Exception {
+
+        PermissionCollection c;
+        Permission per;
+        Subject subject;
+        Enumeration e;
+        CodeSource source;
+
+        String oldProp = System.getProperty(POLICY_PROP);
+        try {
+            System.setProperty(POLICY_PROP, inputFile1);
+
+            Policy p = Policy.getPolicy();
+            p.refresh();
+
+            //
+            // Both parameters are null
+            //
+
+            c = p.getPermissions(null, null);
+            assertFalse("Read only for empty", c.isReadOnly());
+            assertFalse("Elements for empty", c.elements().hasMoreElements());
+
+            //
+            // Subject parameter is provided (CodeBase is not important)
+            //
+            // Principal javax.security.auth.MyPrincipal "duke"
+            //
+
+            // no prinipals at all
+            subject = new Subject();
+            c = p.getPermissions(subject, null);
+            assertFalse("Elements: ", c.elements().hasMoreElements());
+
+            // different name "kuke" not "duke"
+            subject.getPrincipals().add(new MyPrincipal("kuke"));
+            c = p.getPermissions(subject, null);
+            assertFalse("Elements: ", c.elements().hasMoreElements());
+
+            // different class with required principal's name
+            subject.getPrincipals().add(new OtherPrincipal("duke"));
+            c = p.getPermissions(subject, null);
+            assertFalse("Elements: ", c.elements().hasMoreElements());
+
+            // subclass with required principal's name
+            subject.getPrincipals().add(new FakePrincipal("duke"));
+            c = p.getPermissions(subject, null);
+            assertFalse("Elements: ", c.elements().hasMoreElements());
+
+            // add required principal's name
+            subject.getPrincipals().add(new MyPrincipal("duke"));
+
+            e = p.getPermissions(subject, null).elements();
+
+            per = (Permission) e.nextElement();
+            assertFalse("Elements: ", e.hasMoreElements());
+            assertEquals("Permission: ", per, new FilePermission("/home/duke",
+                    "read, write"));
+
+            // check: CodeBase is not important
+            source = new CodeSource(new URL("http://dummy.xxx"),
+                    (Certificate[]) null);
+            c = p.getPermissions(subject, source);
+            assertTrue("Elements: ", c.elements().hasMoreElements());
+
+            source = new CodeSource(new URL("http://dummy.xxx"),
+                    (CodeSigner[]) null);
+            c = p.getPermissions(subject, source);
+            assertTrue("Elements: ", c.elements().hasMoreElements());
+
+            //
+            // Subject and CodeBase parameter are provided
+            //
+            // Principal javax.security.auth.MyPrincipal "dummy"
+            // CodeBase "http://dummy.xxx"
+            //
+            source = new CodeSource(new URL("http://dummy.xxx"),
+                    (Certificate[]) null);
+            subject = new Subject();
+            subject.getPrincipals().add(new MyPrincipal("dummy"));
+
+            e = p.getPermissions(subject, source).elements();
+            per = (Permission) e.nextElement();
+            assertFalse("Elements: ", e.hasMoreElements());
+            assertEquals("Permission: ", per, new RuntimePermission(
+                    "createClassLoader"));
+
+            // reset subject : no prinipals at all
+            subject = new Subject();
+            c = p.getPermissions(subject, source);
+            assertFalse("Elements: ", c.elements().hasMoreElements());
+
+            // different name "kuke" not "dummy"
+            subject.getPrincipals().add(new MyPrincipal("kuke"));
+            c = p.getPermissions(subject, null);
+            assertFalse("Elements: ", c.elements().hasMoreElements());
+
+            // different class with required principal's name
+            subject.getPrincipals().add(new OtherPrincipal("dummy"));
+            c = p.getPermissions(subject, null);
+            assertFalse("Elements: ", c.elements().hasMoreElements());
+
+            //
+            // Principal javax.security.auth.MyPrincipal "my"
+            // Principal javax.security.auth.OtherPrincipal "other"
+            //
+            subject = new Subject();
+            subject.getPrincipals().add(new MyPrincipal("my"));
+            c = p.getPermissions(subject, null);
+            assertFalse("Elements: ", c.elements().hasMoreElements());
+
+            subject.getPrincipals().add(new OtherPrincipal("other"));
+            e = p.getPermissions(subject, null).elements();
+            per = (Permission) e.nextElement();
+            assertFalse("Elements: ", e.hasMoreElements());
+            assertEquals("Permission: ", per, new AllPermission());
+
+            //
+            // Principal javax.security.auth.MyPrincipal "bunny"
+            //
+            subject = new Subject();
+            subject.getPrincipals().add(new MyPrincipal("bunny"));
+
+            e = p.getPermissions(subject, null).elements();
+
+            Permission[] get = new Permission[2];
+            get[0] = (Permission) e.nextElement();
+            get[1] = (Permission) e.nextElement();
+            assertFalse("Elements: ", e.hasMoreElements());
+
+            Permission[] set = new Permission[2];
+            set[0] = new FilePermission("/home/bunny", "read, write");
+            set[1] = new RuntimePermission("stopThread");
+
+            if (get[0].equals(set[0])) {
+                assertEquals("Permission: ", set[1], get[1]);
+            } else {
+                assertEquals("Permission: ", set[0], get[1]);
+                assertEquals("Permission: ", set[1], get[0]);
+            }
+
+        } finally {
+            TestUtils.setSystemProperty(POLICY_PROP, oldProp);
+        }
+    }
+
+    public void test_Refresh() {
+
+        PermissionCollection c;
+        Permission per;
+        Subject subject;
+        Enumeration e;
+
+        String oldProp = System.getProperty(POLICY_PROP);
+        try {
+            //
+            // first policy file to be read
+            //
+            System.setProperty(POLICY_PROP, inputFile1);
+
+            Policy p = Policy.getPolicy();
+            p.refresh();
+
+            subject = new Subject();
+            subject.getPrincipals().add(new MyPrincipal("duke"));
+
+            e = p.getPermissions(subject, null).elements();
+
+            per = (Permission) e.nextElement();
+            assertFalse("Elements: ", e.hasMoreElements());
+            assertEquals("Permission: ", per, new FilePermission("/home/duke",
+                    "read, write"));
+
+            //
+            // second policy file to be read
+            //
+            System.setProperty(POLICY_PROP, inputFile2);
+
+            p.refresh();
+
+            e = p.getPermissions(subject, null).elements();
+
+            per = (Permission) e.nextElement();
+            assertFalse("Elements: ", e.hasMoreElements());
+            assertEquals("Permission: ", per, new RuntimePermission(
+                    "createClassLoader"));
+        } finally {
+            TestUtils.setSystemProperty(POLICY_PROP, oldProp);
+        }
+    }
+}

Modified: incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/org/apache/harmony/security/test/TestUtils.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/org/apache/harmony/security/test/TestUtils.java?rev=386061&r1=386060&r2=386061&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/org/apache/harmony/security/test/TestUtils.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/org/apache/harmony/security/test/TestUtils.java Wed Mar 15 04:21:13 2006
@@ -1,68 +1,85 @@
-/*
- *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-/**
-* @author Vladimir N. Molotkov
-* @version $Revision$
-*/
-
-package org.apache.harmony.security.test;
-
-import java.io.File;
-
-/**
- * Test utility class
- * 
- */
-public class TestUtils {
-    /**
-     * Relative (to the project home) test root path
-     */
-    public static final String TEST_ROOT = System.getProperty("TEST_SRC_DIR", "test/common/unit")+ File.separator;
-
-    /**
-     * No need to instantiate
-     */
-    private TestUtils() {
-    }
-
-    /**
-     * Prints byte array <code>data</code> as hex to the
-     * <code>System.out</code> in the customizable form.
-     *
-     * @param perLine how many numbers put on single line
-     * @param prefix custom output number prefix
-     * @param delimiter custom output number delimiter
-     * @param data data to be printed
-     */
-    public static void printAsHex(int perLine,
-                                  String prefix,
-                                  String delimiter,
-                                  byte[] data) {
-        for (int i=0; i<data.length; i++) {
-            String tail = Integer.toHexString(0x000000ff & data[i]);
-            if (tail.length() == 1) {
-                tail = "0" + tail; 
-            }
-            System.out.print(prefix + "0x" + tail + delimiter);
-
-            if (((i+1)%perLine) == 0) {
-                System.out.println("");
-            }
-        }
-        System.out.println("");
-    }
-}
+/*
+ *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+/**
+* @author Vladimir N. Molotkov
+* @version $Revision$
+*/
+
+package org.apache.harmony.security.test;
+
+import java.io.File;
+import java.util.Properties;
+
+/**
+ * Test utility class
+ * 
+ */
+public class TestUtils {
+    /**
+     * Relative (to the project home) test root path
+     */
+    public static final String TEST_ROOT = System.getProperty("TEST_SRC_DIR", "test/common/unit")+ File.separator;
+
+    /**
+     * No need to instantiate
+     */
+    private TestUtils() {
+    }
+
+    /**
+     * Prints byte array <code>data</code> as hex to the
+     * <code>System.out</code> in the customizable form.
+     *
+     * @param perLine how many numbers put on single line
+     * @param prefix custom output number prefix
+     * @param delimiter custom output number delimiter
+     * @param data data to be printed
+     */
+    public static void printAsHex(int perLine,
+                                  String prefix,
+                                  String delimiter,
+                                  byte[] data) {
+        for (int i=0; i<data.length; i++) {
+            String tail = Integer.toHexString(0x000000ff & data[i]);
+            if (tail.length() == 1) {
+                tail = "0" + tail; 
+            }
+            System.out.print(prefix + "0x" + tail + delimiter);
+
+            if (((i+1)%perLine) == 0) {
+                System.out.println("");
+            }
+        }
+        System.out.println("");
+    }
+    
+    /**
+     * Sets system property
+     *
+     * @param key - the name of the system property.
+     * @param value - the value to be set
+     */
+    public static void setSystemProperty(String key, String value) {
+        Properties properties = System.getProperties();
+        if (value == null) {
+            properties.remove(key);
+        } else {
+            properties.setProperty(key, value);
+        }
+        System.setProperties(properties);
+    }
+}

Modified: incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/org/apache/harmony/security/x/security/auth/login/DefaultConfigurationTest.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/org/apache/harmony/security/x/security/auth/login/DefaultConfigurationTest.java?rev=386061&r1=386060&r2=386061&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/org/apache/harmony/security/x/security/auth/login/DefaultConfigurationTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/security/test/common/unit/org/apache/harmony/security/x/security/auth/login/DefaultConfigurationTest.java Wed Mar 15 04:21:13 2006
@@ -1,273 +1,274 @@
-/*
- *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-/**
-* @author Maxim V. Makarov
-* @version $Revision$
-*/
-
-package org.apache.harmony.security.x.security.auth.login;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.security.Permission;
-import java.security.Security;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.security.auth.AuthPermission;
-import javax.security.auth.login.AppConfigurationEntry;
-
-import junit.framework.TestCase;
-import org.apache.harmony.security.x.security.auth.login.DefaultConfiguration;
-
-
-/**
- * Tests default configuration implementation.  
- */
-
-public class DefaultConfigurationTest extends TestCase {
-
-    static String outputPath = System.getProperty("TEST_SRC_DIR", "test/common/unit");
-    
-    static String otherConfFile = outputPath + File.separator + "org" + 
-        File.separator + "apache" + File.separator + "harmony" + 
-        File.separator + "security" + File.separator + "x" + 
-        File.separator + "security"  + File.separator + "auth" +
-        File.separator + "login"  + File.separator + "jaas.conf";
-
-	private static File defaultConfFile;
-
-	static AppConfigurationEntry[] ents = null;
-
-	SecurityManager old = System.getSecurityManager();
-
-	String oldp1 = null;
-	String oldp2 = null;
-
-	public void setUp() throws Exception {
-		createConfFile();
-		try {
-			oldp1 = Security.getProperty("login.config.url.1");
-			oldp2 = Security.getProperty("login.config.url.2");
-		} catch (NullPointerException e) {
-		}
-
-	}
-
-	public void tearDown() throws Exception {
-		System.setSecurityManager(old);
-		try {
-			Security.setProperty("login.config.url.1", oldp1);
-			Security.setProperty("login.config.url.2", oldp2);
-		} catch (NullPointerException e) {
-		}
-		defaultConfFile.delete();
-	}
-
-	public static void main(String[] args) {
-		junit.textui.TestRunner.run(DefaultConfigurationTest.class);
-	}
-	
-	/**
-	 * loading a config file specified on the security property  
-	 * using login.config.url.1
-	 * XXX: load a default config file
-	 */
-	public static void testLoadConfigFile() throws Exception {
-			DefaultConfiguration dc = null;
-			dc = new DefaultConfiguration();
-			assertNotNull(dc);
-			ents = dc.getAppConfigurationEntry("Login1");
-			assertNull(ents);
-			ents = dc.getAppConfigurationEntry(null);
-			assertNull(ents);
-			Security.setProperty("login.config.url.1", "file:"
-					+ defaultConfFile.getCanonicalPath());
-			Security.setProperty("login.config.url.2", "file:"
-					+ new File(otherConfFile).getCanonicalPath());
-
-			dc = new DefaultConfiguration();
-			ents = dc.getAppConfigurationEntry("LoginNew");
-			assertNotNull(ents);
-			assertEquals("com.intel.security.auth.module.LoginModule1", ents[0].getLoginModuleName());
-			Map m = new HashMap();
-			m.put("debug", "true");
-			m.put("test", "false");
-			assertEquals(m, ents[0].getOptions());
-			assertEquals("LoginModuleControlFlag: optional", ents[0].getControlFlag().toString());
-
-			ents = dc.getAppConfigurationEntry("Login1");
-			assertNotNull(ents);
-			for (int i = 0; i < ents.length; i++) {
-				assertEquals("com.intel.security.auth.module.LoginModule1",
-						ents[i].getLoginModuleName());
-				m.clear();
-				m.put("debug1", "true");
-				m.put("test1", "false");
-				assertEquals(m, ents[i].getOptions());
-				assertEquals("LoginModuleControlFlag: required", ents[i]
-						.getControlFlag().toString());
-			}
-			
-			
-			
-	}
-	/**
-	 * loading a config file specified on the system property
-	 * using -Djava.security.auth.login.config    
-	 */
-	public void testLoadConfigFile_1() throws IOException {
-		try {
-		String oldp = System.getProperty("java.security.auth.login.config");	
-		System.setProperty("java.security.auth.login.config", 
-				new File(otherConfFile).getCanonicalPath());
-		DefaultConfiguration dc = new DefaultConfiguration();
-		assertNotNull(dc);
-		
-		ents = dc.getAppConfigurationEntry("Login2");
-		assertNotNull(ents);
-		ents = dc.getAppConfigurationEntry("other");
-		assertNotNull(ents);
-		ents = dc.getAppConfigurationEntry("Login1");
-		assertNotNull(ents);
-		Map m = new HashMap();
-		for (int i = 0; i < ents.length; i++) {
-			assertEquals("com.intel.security.auth.module.LoginModule1",
-					ents[i].getLoginModuleName());
-			m.clear();
-			m.put("debug1", "true");
-			m.put("test1", "false");
-			assertEquals(m, ents[i].getOptions());
-			assertEquals("LoginModuleControlFlag: required", ents[i]
-					.getControlFlag().toString());
-		}
-		
-		ents = dc.getAppConfigurationEntry("Login7");
-		assertNotNull(ents);
-
-		
-		assertEquals("com.intel.security.auth.module.LoginModule1", ents[0].getLoginModuleName());
-		assertEquals("com.intel.security.auth.module.LoginModule2", ents[1].getLoginModuleName());
-		assertEquals("com.intel.security.auth.module.LoginModule3", ents[2].getLoginModuleName());
-		assertEquals("com.intel.security.auth.module.LoginModule4",  ents[3].getLoginModuleName());
-		
-		assertEquals("LoginModuleControlFlag: required", ents[0].getControlFlag().toString());
-		assertEquals("LoginModuleControlFlag: optional", ents[1].getControlFlag().toString());
-		assertEquals("LoginModuleControlFlag: sufficient", ents[2].getControlFlag().toString());
-		assertEquals("LoginModuleControlFlag: requisite", ents[3].getControlFlag().toString());
-		
-		m.clear();
-		m.put("AAAA", "true");
-		m.put("BBB", "false");
-		assertEquals(m, ents[0].getOptions());
-		m.clear();
-		m.put("debug2", "true");
-		assertEquals(m, ents[1].getOptions());
-		m.clear();
-		m.put("debug2", "false");
-		assertEquals(m, ents[2].getOptions());
-		m.clear();
-		m.put("ticketCache", System.getProperty("user.home")+ File.separator+"tickets");
-		m.put("useTicketCache", "true");
-		assertEquals(m, ents[3].getOptions());
-
-		} finally {
-			System.setProperty("java.security.auth.login.config","");
-		}
-	}
-	/**
-	 * test of the refresh method
-	 */
-	public void testRefresh() throws IOException {
-		try {
-			String oldp = System.getProperty("java.security.auth.login.config");	
-			System.setProperty("java.security.auth.login.config", 
-					new File(otherConfFile).getCanonicalPath());
-
-		DefaultConfiguration dc = new DefaultConfiguration();
-		MySecurityManager checker = new MySecurityManager(new AuthPermission(
-				"refreshLoginConfiguration"), true);
-		System.setSecurityManager(checker);
-		dc.refresh();
-		assertTrue(checker.checkAsserted);
-		checker.reset();
-		checker.enableAccess = false;
-		try {
-			dc.refresh();
-			fail("No expected SecurityException");
-		} catch (SecurityException ex) {
-		}
-		} finally {
-		    System.setProperty("java.security.auth.login.config","");
-		}
-
-	}
-
-	private static void createConfFile() throws SecurityException, IOException {
-		
-		defaultConfFile = File.createTempFile(".java.login.config", null);
-
-		String newConfFile = "LoginNew {\n com.intel.security.auth.module.LoginModule1 optional"
-			+ " debug=\"true\" test=false;\n};";
-
-		byte[] b = newConfFile.getBytes();
-
-		OutputStream os = new FileOutputStream(defaultConfFile);
-		for (int j = 0; j < b.length; j++) {
-			os.write(b[j]);
-		}
-		os.flush();
-		os.close();
-	}
-
-	/**
-	 * Easy the SecurityManager class
-	 * 
-	 */
-
-	class MySecurityManager extends SecurityManager {
-
-		public boolean enableAccess;
-
-		public Permission checkTarget;
-
-		public boolean checkAsserted;
-
-		public MySecurityManager(Permission target, boolean enable) {
-			checkAsserted = false;
-			checkTarget = target;
-			enableAccess = enable;
-		}
-
-		public void checkPermission(Permission p) {
-			if (p instanceof AuthPermission && checkTarget.equals(p)) {
-				checkAsserted = true;
-				if (!enableAccess) {
-					throw new SecurityException();
-				}
-			}
-		}
-
-		public MySecurityManager reset() {
-			checkAsserted = false;
-			return this;
-		}
-	}
-	
-}
+/*
+ *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+/**
+* @author Maxim V. Makarov
+* @version $Revision$
+*/
+
+package org.apache.harmony.security.x.security.auth.login;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.security.Permission;
+import java.security.Security;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.security.auth.AuthPermission;
+import javax.security.auth.login.AppConfigurationEntry;
+
+import junit.framework.TestCase;
+import org.apache.harmony.security.test.TestUtils;
+import org.apache.harmony.security.x.security.auth.login.DefaultConfiguration;
+
+
+/**
+ * Tests default configuration implementation.  
+ */
+
+public class DefaultConfigurationTest extends TestCase {
+
+    private static final String LOGIN_CONFIG = "java.security.auth.login.config";
+    
+    static String outputPath = System.getProperty("TEST_SRC_DIR", "test/common/unit");
+    
+    static String otherConfFile = outputPath + File.separator + "org" + 
+        File.separator + "apache" + File.separator + "harmony" + 
+        File.separator + "security" + File.separator + "x" + 
+        File.separator + "security"  + File.separator + "auth" +
+        File.separator + "login"  + File.separator + "jaas.conf";
+
+	private static File defaultConfFile;
+
+	static AppConfigurationEntry[] ents = null;
+
+	SecurityManager old = System.getSecurityManager();
+
+	String oldp1 = null;
+	String oldp2 = null;
+
+	public void setUp() throws Exception {
+		createConfFile();
+		
+		oldp1 = Security.getProperty("login.config.url.1");
+		oldp2 = Security.getProperty("login.config.url.2");
+	}
+
+	public void tearDown() throws Exception {
+		System.setSecurityManager(old);
+
+		TestUtils.setSystemProperty("login.config.url.1", oldp1);
+		TestUtils.setSystemProperty("login.config.url.2", oldp2);
+
+		defaultConfFile.delete();
+	}
+
+	public static void main(String[] args) {
+		junit.textui.TestRunner.run(DefaultConfigurationTest.class);
+	}
+	
+	/**
+	 * loading a config file specified on the security property  
+	 * using login.config.url.1
+	 * XXX: load a default config file
+	 */
+	public static void testLoadConfigFile() throws Exception {
+			DefaultConfiguration dc = null;
+			dc = new DefaultConfiguration();
+			assertNotNull(dc);
+			ents = dc.getAppConfigurationEntry("Login1");
+			assertNull(ents);
+			ents = dc.getAppConfigurationEntry(null);
+			assertNull(ents);
+			Security.setProperty("login.config.url.1", "file:"
+					+ defaultConfFile.getCanonicalPath());
+			Security.setProperty("login.config.url.2", "file:"
+					+ new File(otherConfFile).getCanonicalPath());
+
+			dc = new DefaultConfiguration();
+			ents = dc.getAppConfigurationEntry("LoginNew");
+			assertNotNull(ents);
+			assertEquals("com.intel.security.auth.module.LoginModule1", ents[0].getLoginModuleName());
+			Map m = new HashMap();
+			m.put("debug", "true");
+			m.put("test", "false");
+			assertEquals(m, ents[0].getOptions());
+			assertEquals("LoginModuleControlFlag: optional", ents[0].getControlFlag().toString());
+
+			ents = dc.getAppConfigurationEntry("Login1");
+			assertNotNull(ents);
+			for (int i = 0; i < ents.length; i++) {
+				assertEquals("com.intel.security.auth.module.LoginModule1",
+						ents[i].getLoginModuleName());
+				m.clear();
+				m.put("debug1", "true");
+				m.put("test1", "false");
+				assertEquals(m, ents[i].getOptions());
+				assertEquals("LoginModuleControlFlag: required", ents[i]
+						.getControlFlag().toString());
+			}
+			
+			
+			
+	}
+	/**
+	 * loading a config file specified on the system property
+	 * using -Djava.security.auth.login.config    
+	 */
+	public void testLoadConfigFile_1() throws IOException {
+		
+	    String oldp = System.getProperty(LOGIN_CONFIG);	
+		try {
+		System.setProperty(LOGIN_CONFIG, 
+				new File(otherConfFile).getCanonicalPath());
+		DefaultConfiguration dc = new DefaultConfiguration();
+		assertNotNull(dc);
+		
+		ents = dc.getAppConfigurationEntry("Login2");
+		assertNotNull(ents);
+		ents = dc.getAppConfigurationEntry("other");
+		assertNotNull(ents);
+		ents = dc.getAppConfigurationEntry("Login1");
+		assertNotNull(ents);
+		Map m = new HashMap();
+		for (int i = 0; i < ents.length; i++) {
+			assertEquals("com.intel.security.auth.module.LoginModule1",
+					ents[i].getLoginModuleName());
+			m.clear();
+			m.put("debug1", "true");
+			m.put("test1", "false");
+			assertEquals(m, ents[i].getOptions());
+			assertEquals("LoginModuleControlFlag: required", ents[i]
+					.getControlFlag().toString());
+		}
+		
+		ents = dc.getAppConfigurationEntry("Login7");
+		assertNotNull(ents);
+
+		
+		assertEquals("com.intel.security.auth.module.LoginModule1", ents[0].getLoginModuleName());
+		assertEquals("com.intel.security.auth.module.LoginModule2", ents[1].getLoginModuleName());
+		assertEquals("com.intel.security.auth.module.LoginModule3", ents[2].getLoginModuleName());
+		assertEquals("com.intel.security.auth.module.LoginModule4",  ents[3].getLoginModuleName());
+		
+		assertEquals("LoginModuleControlFlag: required", ents[0].getControlFlag().toString());
+		assertEquals("LoginModuleControlFlag: optional", ents[1].getControlFlag().toString());
+		assertEquals("LoginModuleControlFlag: sufficient", ents[2].getControlFlag().toString());
+		assertEquals("LoginModuleControlFlag: requisite", ents[3].getControlFlag().toString());
+		
+		m.clear();
+		m.put("AAAA", "true");
+		m.put("BBB", "false");
+		assertEquals(m, ents[0].getOptions());
+		m.clear();
+		m.put("debug2", "true");
+		assertEquals(m, ents[1].getOptions());
+		m.clear();
+		m.put("debug2", "false");
+		assertEquals(m, ents[2].getOptions());
+		m.clear();
+		m.put("ticketCache", System.getProperty("user.home")+ File.separator+"tickets");
+		m.put("useTicketCache", "true");
+		assertEquals(m, ents[3].getOptions());
+
+		} finally {
+		    TestUtils.setSystemProperty(LOGIN_CONFIG, oldp);
+		}
+	}
+	/**
+	 * test of the refresh method
+	 */
+	public void testRefresh() throws IOException {
+	    
+	    String oldp = System.getProperty(LOGIN_CONFIG);
+		try {
+			System.setProperty(LOGIN_CONFIG, 
+					new File(otherConfFile).getCanonicalPath());
+
+		DefaultConfiguration dc = new DefaultConfiguration();
+		MySecurityManager checker = new MySecurityManager(new AuthPermission(
+				"refreshLoginConfiguration"), true);
+		System.setSecurityManager(checker);
+		dc.refresh();
+		assertTrue(checker.checkAsserted);
+		checker.reset();
+		checker.enableAccess = false;
+		try {
+			dc.refresh();
+			fail("No expected SecurityException");
+		} catch (SecurityException ex) {
+		}
+		} finally {
+		    TestUtils.setSystemProperty(LOGIN_CONFIG, oldp);
+		}
+
+	}
+
+	private static void createConfFile() throws SecurityException, IOException {
+		
+		defaultConfFile = File.createTempFile(".java.login.config", null);
+
+		String newConfFile = "LoginNew {\n com.intel.security.auth.module.LoginModule1 optional"
+			+ " debug=\"true\" test=false;\n};";
+
+		byte[] b = newConfFile.getBytes();
+
+		OutputStream os = new FileOutputStream(defaultConfFile);
+		for (int j = 0; j < b.length; j++) {
+			os.write(b[j]);
+		}
+		os.flush();
+		os.close();
+	}
+
+	/**
+	 * Easy the SecurityManager class
+	 * 
+	 */
+
+	class MySecurityManager extends SecurityManager {
+
+		public boolean enableAccess;
+
+		public Permission checkTarget;
+
+		public boolean checkAsserted;
+
+		public MySecurityManager(Permission target, boolean enable) {
+			checkAsserted = false;
+			checkTarget = target;
+			enableAccess = enable;
+		}
+
+		public void checkPermission(Permission p) {
+			if (p instanceof AuthPermission && checkTarget.equals(p)) {
+				checkAsserted = true;
+				if (!enableAccess) {
+					throw new SecurityException();
+				}
+			}
+		}
+
+		public MySecurityManager reset() {
+			checkAsserted = false;
+			return this;
+		}
+	}
+	
+}