From graffito-commits-return-146-apmail-incubator-graffito-commits-archive=www.apache.org@incubator.apache.org Fri Apr 22 05:28:03 2005 Return-Path: Delivered-To: apmail-incubator-graffito-commits-archive@www.apache.org Received: (qmail 46505 invoked from network); 22 Apr 2005 05:28:03 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 22 Apr 2005 05:28:03 -0000 Received: (qmail 85654 invoked by uid 500); 22 Apr 2005 05:28:24 -0000 Mailing-List: contact graffito-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: graffito-dev@incubator.apache.org Delivered-To: mailing list graffito-commits@incubator.apache.org Received: (qmail 85632 invoked by uid 500); 22 Apr 2005 05:28:24 -0000 Delivered-To: apmail-incubator-graffito-cvs@incubator.apache.org Received: (qmail 85625 invoked by uid 99); 22 Apr 2005 05:28:23 -0000 X-ASF-Spam-Status: No, hits=0.2 required=10.0 tests=NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Thu, 21 Apr 2005 22:28:23 -0700 Received: (qmail 46502 invoked by uid 65534); 22 Apr 2005 05:28:01 -0000 Message-ID: <20050422052801.46501.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: svn commit: r164176 - /incubator/graffito/trunk/components/src/test/org/apache/portals/graffito/security/impl/TestPermissions.java Date: Fri, 22 Apr 2005 05:28:01 -0000 To: graffito-cvs@incubator.apache.org From: clombart@apache.org X-Mailer: svnmailer-1.0.0-dev X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: clombart Date: Thu Apr 21 22:28:00 2005 New Revision: 164176 URL: http://svn.apache.org/viewcvs?rev=3D164176&view=3Drev Log: UPdate unit tests Added: incubator/graffito/trunk/components/src/test/org/apache/portals/graffit= o/security/impl/TestPermissions.java Added: incubator/graffito/trunk/components/src/test/org/apache/portals/graf= fito/security/impl/TestPermissions.java URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/components/src/= test/org/apache/portals/graffito/security/impl/TestPermissions.java?rev=3D1= 64176&view=3Dauto =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/graffito/trunk/components/src/test/org/apache/portals/graffit= o/security/impl/TestPermissions.java (added) +++ incubator/graffito/trunk/components/src/test/org/apache/portals/graffit= o/security/impl/TestPermissions.java Thu Apr 21 22:28:00 2005 @@ -0,0 +1,212 @@ +/* Copyright 2004 Apache Software Foundation + * + * 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. + */ +package org.apache.portals.graffito.security.impl; + + + +import java.security.Permission; +import java.security.Permissions; +import java.util.Enumeration; +import java.util.Iterator; + +import javax.security.auth.Subject; +import javax.security.auth.login.LoginException; + +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.apache.jetspeed.security.SecurityException; +import org.apache.jetspeed.security.UserPrincipal; + +import org.apache.jetspeed.security.impl.UserPrincipalImpl; +import org.apache.portals.graffito.context.CmsRequestContext; +import org.apache.portals.graffito.model.CmsPermission; +import org.apache.portals.graffito.security.CmsAccessController; +import org.apache.portals.graffito.security.impl.AbstractSecurityTestcase; +import org.apache.portals.graffito.security.impl.CmsPermissionImpl; + +/** + * This unit test comes from Jetspeed 2. It used to check if the J2 securi= ty + * components are well integrated with Graffito + * =20 + */ + +public class TestPermissions extends AbstractSecurityTestcase +{ + + private CmsAccessController cmsAccessController; + + /** + * @see junit.framework.TestCase#setUp() + */ + public void setUp() throws Exception + { + super.setUp(); =20 + try + { + cmsAccessController =3D (CmsAccessController) ctx.getBean("org= .apache.portals.graffito.security.CmsAccessController"); + } + catch (Exception e) + { + e.printStackTrace(); + fail("Fail to run due to an exception : " + e); + } + + } + + /** + * @see junit.framework.TestCase#tearDown() + */ + public void tearDown() throws Exception + { + + // Logout + try + { + loginContext.logout(); + } + catch (LoginException le) + { + le.printStackTrace(); + assertTrue("\t\t[TestRdbmsPolicy] Failed to tear down test.", = false); + } + destroyUser(); + super.tearDown(); + } + + /** + * Start test suite + * @return test suite + */ + public static Test suite() + { + // All methods starting with "test" will be executed in the test s= uite. + return new TestSuite(TestPermissions.class); + } + + /** + * Test getPermissions + */ + public void testgetPermission() + { + =20 + Permissions permissions =3D pms.getPermissions("/files/subfolder1"= ); + =20 + Enumeration enum =3D permissions.elements(); + int count =3D 0; + while (enum.hasMoreElements()) + { + CmsPermission permission =3D (CmsPermission) enum.nextElement(= ); =20 + System.out.println("Permission found - actions : " + permissio= n=2EgetActions() + " name : " + permission.getName()); + Iterator fullPathIterator =3D permission.getPrincipalFullPaths= ().iterator(); + while (fullPathIterator.hasNext()) + { + String fullPath =3D (String) fullPathIterator.next(); + System.out.println(" fullPath : " + fullPath); = =20 + } + =20 + count++; + } + assertTrue("Invalid number of permissions for '/files/subfolder1",= count =3D=3D 2); + =20 + } =20 + =20 + /** + * Test isRecursive + */ + public void testisRecursive() + { + =20 + CmsPermissionImpl perm =3D new CmsPermissionImpl("/files/subfolder= 1/-", "view"); + assertTrue("Permission /files/subfolder1/- is not recursive", perm= .isRecursive() ); + =20 + perm =3D new CmsPermissionImpl("/files/subfolder1", "view"); + assertFalse("Permission /files/subfolder1 is recursive", perm.isR= ecursive() ); + =20 + perm =3D new CmsPermissionImpl("/files/subfolder1/*", "view"); + assertFalse("Permission /files/subfolder1/* is recursive", perm.= isRecursive() ); + =20 + } =20 + /** + *

+ * Initialize user test object. + *

+ */ + protected void initUser() + { + try + { + ums.addUser("anon", "password"); + ums.addUser("christophe", "password"); + } + catch (SecurityException sex) + { + } + + UserPrincipal user =3D new UserPrincipalImpl("anon"); + UserPrincipal user2 =3D new UserPrincipalImpl("christophe"); + =20 + CmsPermissionImpl perm1 =3D new CmsPermissionImpl("/files/test.xml= ", "edit"); + CmsPermissionImpl perm2 =3D new CmsPermissionImpl("/files/subfolde= r1/-", "view"); + CmsPermissionImpl perm3 =3D new CmsPermissionImpl("/files/subfolde= r1/*", "edit"); + CmsPermissionImpl perm4 =3D new CmsPermissionImpl("/files/subfolde= r2/-", "view"); + CmsPermissionImpl perm5 =3D new CmsPermissionImpl("/files/subfolde= r3/*", "view,insert"); + =20 + try + { + =20 + pms.addPermission(perm1); + pms.addPermission(perm2); + pms.addPermission(perm3); + pms.addPermission(perm4); + pms.addPermission(perm5); + pms.grantPermission(user, perm1); + pms.grantPermission(user, perm2); + pms.grantPermission(user, perm3); + pms.grantPermission(user, perm4); + pms.grantPermission(user, perm5); + pms.grantPermission(user2, perm2); + =20 + } + catch (SecurityException sex) + { + sex.printStackTrace(); + } + } + + /** + *=20 + * Destroy user test object. + *=20 + * @throws Exception when it is not possible to clean up + */ + protected void destroyUser() throws Exception + { + ums.removeUser("anon"); + ums.removeUser("christophe"); + + CmsPermissionImpl perm1 =3D new CmsPermissionImpl("/files/test.xml= ", "edit"); + CmsPermissionImpl perm2 =3D new CmsPermissionImpl("/files/subfolde= r1/*", "view"); + CmsPermissionImpl perm3 =3D new CmsPermissionImpl("/files/subfolde= r1/-", "view"); + CmsPermissionImpl perm4 =3D new CmsPermissionImpl("/files/subfolde= r2/-", "view"); + CmsPermissionImpl perm5 =3D new CmsPermissionImpl("/files/subfolde= r3/-", "view,insert"); + pms.removePermission(perm1); + pms.removePermission(perm2); + pms.removePermission(perm3); + pms.removePermission(perm4); + pms.removePermission(perm5); + } + +} \ No newline at end of file