You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ca...@apache.org on 2006/08/22 04:11:30 UTC
svn commit: r433473 - in
/maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi:
./ src/main/java/org/apache/maven/continuum/security/acegi/acl/
src/main/resources/org/apache/maven/continuum/security/acegi/acl/
src/test/j...
Author: carlos
Date: Mon Aug 21 19:11:29 2006
New Revision: 433473
URL: http://svn.apache.org/viewvc?rev=433473&view=rev
Log:
Added AclInitializer to create Acegi ACL tables
Added:
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/acl/AclInitializer.java (with props)
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerTest.java (with props)
Modified:
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/pom.xml
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/resources/org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql
Modified: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/pom.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/pom.xml?rev=433473&r1=433472&r2=433473&view=diff
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/pom.xml (original)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/pom.xml Mon Aug 21 19:11:29 2006
@@ -30,12 +30,25 @@
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.1</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.acegisecurity</groupId>
<artifactId>acegi-security</artifactId>
<version>1.1-SNAPSHOT</version>
<type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>sql-maven-plugin</artifactId>
+ <version>1.0-beta-2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>10.1.2.1</version>
+ <scope>test</scope>
</dependency>
</dependencies>
@@ -60,26 +73,6 @@
</goals>
</execution>
</executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>sql-maven-plugin</artifactId>
- <dependencies>
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <version>10.1.2.1</version>
- </dependency>
- </dependencies>
- <configuration>
- <url>jdbc:derby:${basedir}/target/database;create=true</url>
- <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
- <username>sa</username>
- <password></password>
- <srcFiles>
- <srcFile>src/main/resources/org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql</srcFile>
- </srcFiles>
- </configuration>
</plugin>
</plugins>
</build>
Added: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/acl/AclInitializer.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/acl/AclInitializer.java?rev=433473&view=auto
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/acl/AclInitializer.java (added)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/acl/AclInitializer.java Mon Aug 21 19:11:29 2006
@@ -0,0 +1,91 @@
+package org.apache.maven.continuum.security.acegi.acl;
+
+/*
+ * Copyright 2006 The 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.
+ */
+
+import org.acegisecurity.acl.basic.NamedEntityObjectIdentity;
+import org.acegisecurity.acl.basic.SimpleAclEntry;
+import org.acegisecurity.acl.basic.jdbc.JdbcExtendedDaoImpl;
+import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.codehaus.mojo.sql.SqlExecMojo;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+
+/**
+ * Initialize the ACL system with some default values.
+ *
+ * @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
+ * @version $Id$
+ */
+public class AclInitializer
+ extends AbstractLogEnabled
+ implements Initializable
+{
+
+ private JdbcExtendedDaoImpl dao;
+
+ private SqlExecMojo sqlMojo;
+
+ public void setDao( JdbcExtendedDaoImpl dao )
+ {
+ this.dao = dao;
+ }
+
+ public JdbcExtendedDaoImpl getDao()
+ {
+ return dao;
+ }
+
+ public void setSqlMojo( SqlExecMojo sqlMojo )
+ {
+ this.sqlMojo = sqlMojo;
+ }
+
+ public SqlExecMojo getSqlMojo()
+ {
+ return sqlMojo;
+ }
+
+ public void initialize()
+ throws InitializationException
+ {
+ try
+ {
+ getSqlMojo().execute();
+ }
+ catch ( MojoExecutionException e )
+ {
+ throw new InitializationException( e.getMessage(), e );
+ }
+
+ /* poor check to see if this is the first time initializing the database */
+ if ( getSqlMojo().getSuccessfulStatements() >= 2 )
+ {
+ /* tables were created, insert default values */
+ getLogger().info( "Initializing ACL database" );
+
+ /* admin can do anything with project number 1 */
+ SimpleAclEntry aclEntry = new SimpleAclEntry();
+ aclEntry.setAclObjectIdentity( new NamedEntityObjectIdentity( Project.class.getName(), "1" ) );
+ aclEntry.setRecipient( "ROLE_ADMIN" );
+ aclEntry.addPermission( SimpleAclEntry.ADMINISTRATION );
+ getDao().create( aclEntry );
+ }
+
+ }
+}
Propchange: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/acl/AclInitializer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/acl/AclInitializer.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/resources/org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/resources/org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql?rev=433473&r1=433472&r2=433473&view=diff
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/resources/org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql (original)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/resources/org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql Mon Aug 21 19:11:29 2006
@@ -1,7 +1,7 @@
CREATE SCHEMA sa;
CREATE TABLE acl_object_identity (
- id INTEGER NOT NULL CONSTRAINT acl_object_identity_PK PRIMARY KEY,
+ id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY CONSTRAINT acl_object_identity_PK PRIMARY KEY,
object_identity VARCHAR(250) NOT NULL,
parent_object INTEGER,
acl_class VARCHAR(250) NOT NULL,
@@ -18,15 +18,15 @@
FOREIGN KEY (acl_object_identity) REFERENCES acl_object_identity(id)
);
-INSERT INTO acl_object_identity VALUES (1, 'org.apache.maven.continuum.model.project.Project:1', null, 'org.acegisecurity.acl.basic.SimpleAclEntry');
-INSERT INTO acl_object_identity VALUES (2, 'org.apache.maven.continuum.model.project.Project:2', 1, 'org.acegisecurity.acl.basic.SimpleAclEntry');
-INSERT INTO acl_object_identity VALUES (3, 'org.apache.maven.continuum.model.project.Project:3', 1, 'org.acegisecurity.acl.basic.SimpleAclEntry');
-INSERT INTO acl_object_identity VALUES (4, 'org.apache.maven.continuum.model.project.Project:4', 1, 'org.acegisecurity.acl.basic.SimpleAclEntry');
-INSERT INTO acl_object_identity VALUES (5, 'org.apache.maven.continuum.model.project.Project:5', 3, 'org.acegisecurity.acl.basic.SimpleAclEntry');
-INSERT INTO acl_object_identity VALUES (6, 'org.apache.maven.continuum.model.project.Project:6', 3, 'org.acegisecurity.acl.basic.SimpleAclEntry');
+--INSERT INTO acl_object_identity VALUES (1, 'org.apache.maven.continuum.model.project.Project:1', null, 'org.acegisecurity.acl.basic.SimpleAclEntry');
+--INSERT INTO acl_object_identity VALUES (2, 'org.apache.maven.continuum.model.project.Project:2', 1, 'org.acegisecurity.acl.basic.SimpleAclEntry');
+--INSERT INTO acl_object_identity VALUES (3, 'org.apache.maven.continuum.model.project.Project:3', 1, 'org.acegisecurity.acl.basic.SimpleAclEntry');
+--INSERT INTO acl_object_identity VALUES (4, 'org.apache.maven.continuum.model.project.Project:4', 1, 'org.acegisecurity.acl.basic.SimpleAclEntry');
+--INSERT INTO acl_object_identity VALUES (5, 'org.apache.maven.continuum.model.project.Project:5', 3, 'org.acegisecurity.acl.basic.SimpleAclEntry');
+--INSERT INTO acl_object_identity VALUES (6, 'org.apache.maven.continuum.model.project.Project:6', 3, 'org.acegisecurity.acl.basic.SimpleAclEntry');
-INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (1, 'ROLE_ADMIN', 1);
-INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (2, 'ROLE_ADMIN', 0);
-INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (2, 'marissa', 2);
-INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (3, 'scott', 14);
-INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (6, 'scott', 1);
+--INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (1, 'ROLE_ADMIN', 1);
+--INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (2, 'ROLE_ADMIN', 0);
+--INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (2, 'marissa', 2);
+--INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (3, 'scott', 14);
+--INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (6, 'scott', 1);
Added: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerTest.java?rev=433473&view=auto
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerTest.java (added)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerTest.java Mon Aug 21 19:11:29 2006
@@ -0,0 +1,84 @@
+package org.apache.maven.continuum.security.acegi.acl;
+
+/*
+ * Copyright 2006 The 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.
+ */
+
+import java.io.File;
+
+import javax.sql.DataSource;
+
+import junit.framework.TestCase;
+
+import org.acegisecurity.acl.basic.jdbc.JdbcExtendedDaoImpl;
+import org.apache.commons.dbcp.BasicDataSource;
+import org.codehaus.mojo.sql.SqlExecMojo;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.logging.console.ConsoleLogger;
+
+/**
+ * Test for {@link AclInitializer}
+ *
+ * @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
+ * @version $Id$
+ */
+public class AclInitializerTest
+ extends TestCase
+{
+
+ private AclInitializer initializer;
+
+ private SqlExecMojo sqlMojo;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ initializer = new AclInitializer();
+ initializer.enableLogging( new ConsoleLogger( Logger.LEVEL_DEBUG, "" ) );
+
+ sqlMojo = new SqlExecMojo();
+ sqlMojo.setUsername( "sa" );
+ sqlMojo.setPassword( "" );
+ sqlMojo.setDriver( "org.apache.derby.jdbc.EmbeddedDriver" );
+ sqlMojo.setUrl( "jdbc:derby:target/acl-initializer-database;create=true" );
+ sqlMojo.setSrcFiles( new File[] { new File( "src/main/resources/"
+ + "org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql" ) } );
+ sqlMojo.setOnError( SqlExecMojo.ON_ERROR_CONTINUE );
+ initializer.setSqlMojo( sqlMojo );
+
+ JdbcExtendedDaoImpl dao = new JdbcExtendedDaoImpl();
+ dao.setDataSource( getDataSource() );
+ initializer.setDao( dao );
+
+ dao.afterPropertiesSet();
+ }
+
+ public void testInitialize()
+ throws Exception
+ {
+ initializer.initialize();
+ initializer.initialize();
+ }
+
+ private DataSource getDataSource()
+ {
+ BasicDataSource dataSource = new BasicDataSource();
+ dataSource.setDriverClassName( sqlMojo.getDriver() );
+ dataSource.setUrl( sqlMojo.getUrl() );
+ dataSource.setUsername( sqlMojo.getUsername() );
+ return dataSource;
+ }
+}
Propchange: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"