Author: carlos
Date: Mon Jul 31 03:45:47 2006
New Revision: 427069
URL: http://svn.apache.org/viewvc?rev=427069&view=rev
Log:
First working prototype for method level authorization
Added:
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/aspectj/
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityAspect.aj
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/AbstractMethodSecurityTest.java (with props)
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/ContinuumStub.java (with props)
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityPlexusTest.java (with props)
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityTest.java (with props)
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/continuum/
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/continuum/security/
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/continuum/security/acegi/
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/continuum/security/acegi/aspectj/
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityPlexusTest.xml (with props)
Modified:
maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/pom.xml
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=427069&r1=427068&r2=427069&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 Jul 31 03:45:47 2006
@@ -11,23 +11,52 @@
Acegi interceptor for {@link Continuum} method calls.
+ * + * @author Carlos Sanchez + * @version $Id: ContinuumUserDetailsService.java 421005 2006-07-11 22:00:29Z carlos $ + */ +public aspect MethodSecurityAspect extends SecurityAspect +{ + + protected pointcut securedExecution(): + target(Continuum) && + execution(public * *(..)) && + !within(MethodSecurityAspect); + +} Added: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/AbstractMethodSecurityTest.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/aspectj/AbstractMethodSecurityTest.java?rev=427069&view=auto ============================================================================== --- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/AbstractMethodSecurityTest.java (added) +++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/AbstractMethodSecurityTest.java Mon Jul 31 03:45:47 2006 @@ -0,0 +1,134 @@ +package org.apache.maven.continuum.security.acegi.aspectj; + +/* + * 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 junit.framework.TestCase; + +import org.acegisecurity.AccessDecisionManager; +import org.acegisecurity.AccessDeniedException; +import org.acegisecurity.Authentication; +import org.acegisecurity.AuthenticationException; +import org.acegisecurity.GrantedAuthority; +import org.acegisecurity.GrantedAuthorityImpl; +import org.acegisecurity.context.SecurityContextHolder; +import org.acegisecurity.providers.TestingAuthenticationToken; +import org.apache.maven.continuum.Continuum; +import org.apache.maven.continuum.model.project.Project; + +/** + * Test for {@link MethodSecurityAspect} + * + * @author Carlos Sanchez + * @version $Id$ + */ +public abstract class AbstractMethodSecurityTest + extends TestCase +{ + private Continuum continuum; + + public void setContinuum( Continuum continuum ) + { + this.continuum = continuum; + } + + public Continuum getContinuum() + { + return continuum; + } + + public MethodSecurityAspect getAspect() + { + return MethodSecurityAspect.aspectOf(); + } + + /** + * Get an {@link Authentication} with provided role object that can + * be used with the chosen {@link AccessDecisionManager} + * + * @param role eg.ADMIN, USER, ...
+ * @return
+ */
+ protected Authentication getAuthentication( String role )
+ {
+ return new TestingAuthenticationToken( "marissa", "koala",
+ new GrantedAuthority[] { new GrantedAuthorityImpl( "MOCK_" + role ) } );
+ }
+
+ /**
+ * Check that method call proceeds when user has the required role.
+ *
+ * @throws Exception
+ */
+ public void testMethodSecurity()
+ throws Exception
+ {
+ assertNotNull( "continuum property is not set", getContinuum() );
+ assertNotNull( "securityInterceptor property in aspect is not set", getAspect().getSecurityInterceptor() );
+
+ SecurityContextHolder.getContext().setAuthentication( getAuthentication( "ADMIN" ) );
+
+ getContinuum().addProject( new Project(), "" );
+ }
+
+ /**
+ * Check that method call doesn't proceed when user doesn't have the required role.
+ *
+ * @throws Exception
+ */
+ public void testMethodSecurityWithWrongRole()
+ throws Exception
+ {
+ assertNotNull( "continuum property is not set", getContinuum() );
+ assertNotNull( "securityInterceptor property in aspect is not set", getAspect().getSecurityInterceptor() );
+
+ SecurityContextHolder.getContext().setAuthentication( getAuthentication( "USER" ) );
+
+ try
+ {
+ getContinuum().addProject( new Project(), "" );
+ fail( AuthenticationException.class.getName() + " was not thrown." );
+ }
+ catch ( AccessDeniedException e )
+ {
+ // expected
+ }
+ }
+
+ /**
+ * Check that method call proceeds when user doesn't have the required role
+ * but security interceptor is not defined.
+ *
+ * @throws Exception
+ */
+ public void testMethodSecurityWithoutSecurityInterceptor()
+ throws Exception
+ {
+ assertNotNull( "continuum property is not set", getContinuum() );
+
+ SecurityContextHolder.getContext().setAuthentication( getAuthentication( "USER" ) );
+ getAspect().setSecurityInterceptor( null );
+
+ getContinuum().addProject( new Project(), "" );
+ }
+
+ protected void tearDown()
+ throws Exception
+ {
+ SecurityContextHolder.getContext().setAuthentication( null );
+ super.tearDown();
+ }
+}
Propchange: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/AbstractMethodSecurityTest.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/aspectj/AbstractMethodSecurityTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/ContinuumStub.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/aspectj/ContinuumStub.java?rev=427069&view=auto
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/ContinuumStub.java (added)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/ContinuumStub.java Mon Jul 31 03:45:47 2006
@@ -0,0 +1,444 @@
+package org.apache.maven.continuum.security.acegi.aspectj;
+
+/*
+ * 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 java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.maven.continuum.Continuum;
+import org.apache.maven.continuum.ContinuumException;
+import org.apache.maven.continuum.configuration.ConfigurationService;
+import org.apache.maven.continuum.model.project.BuildDefinition;
+import org.apache.maven.continuum.model.project.BuildResult;
+import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.model.project.ProjectNotifier;
+import org.apache.maven.continuum.model.project.Schedule;
+import org.apache.maven.continuum.model.system.ContinuumUser;
+import org.apache.maven.continuum.model.system.UserGroup;
+import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
+import org.apache.maven.continuum.security.ContinuumSecurity;
+import org.codehaus.plexus.util.dag.CycleDetectedException;
+
+/**
+ * Stub implementation of {@link Continuum} with empty implementations.
+ *
+ * @author Carlos Sanchez
+ * @version $Id$
+ */
+public class ContinuumStub
+ implements Continuum
+{
+
+ public void addBuildDefinition( int projectId, BuildDefinition buildDefinition )
+ throws ContinuumException
+ {
+ }
+
+ public void addBuildDefinitionFromParams( int projectId, Map configuration )
+ throws ContinuumException
+ {
+ }
+
+ public ContinuumProjectBuildingResult addMavenOneProject( String metadataUrl )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public ContinuumProjectBuildingResult addMavenTwoProject( String metadataUrl )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public void addNotifier( int projectId, ProjectNotifier notifier )
+ throws ContinuumException
+ {
+ }
+
+ public void addNotifier( int projectId, String notifierType, Map configuration )
+ throws ContinuumException
+ {
+ }
+
+ public int addProject( Project project, String executorId )
+ throws ContinuumException
+ {
+ return 0;
+ }
+
+ public void addSchedule( Schedule schedule )
+ throws ContinuumException
+ {
+ }
+
+ public void addUser( ContinuumUser user )
+ throws ContinuumException
+ {
+ }
+
+ public void addUser( Map configuration )
+ throws ContinuumException
+ {
+ }
+
+ public void addUserGroup( UserGroup userGroup )
+ {
+ }
+
+ public void addUserGroup( Map configuration )
+ throws ContinuumException
+ {
+ }
+
+ public void buildProject( int projectId )
+ throws ContinuumException
+ {
+ }
+
+ public void buildProject( int projectId, int trigger )
+ throws ContinuumException
+ {
+ }
+
+ public void buildProject( int projectId, int buildDefinitionId, int trigger )
+ throws ContinuumException
+ {
+ }
+
+ public void buildProjects()
+ throws ContinuumException
+ {
+ }
+
+ public void buildProjects( int trigger )
+ throws ContinuumException
+ {
+ }
+
+ public void buildProjects( Schedule schedule )
+ throws ContinuumException
+ {
+ }
+
+ public void checkoutProject( int projectId )
+ throws ContinuumException
+ {
+ }
+
+ public Collection getAllProjects( int start, int end )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public List getAllProjectsWithAllDetails( int start, int end )
+ {
+ return null;
+ }
+
+ public BuildDefinition getBuildDefinition( int projectId, int buildDefinitionId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public List getBuildDefinitions( int projectId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public String getBuildOutput( int projectId, int buildId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public BuildResult getBuildResult( int buildId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public BuildResult getBuildResultByBuildNumber( int projectId, int buildNumber )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public Collection getBuildResultsForProject( int projectId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public Map getBuildResultsInSuccess()
+ {
+ return null;
+ }
+
+ public List getChangesSinceLastSuccess( int projectId, int buildResultId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public ConfigurationService getConfiguration()
+ {
+ return null;
+ }
+
+ public BuildDefinition getDefaultBuildDefinition( int projectId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public String getFileContent( int projectId, String directory, String filename )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public List getFiles( int projectId, String currentDirectory )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public BuildResult getLatestBuildResultForProject( int projectId )
+ {
+ return null;
+ }
+
+ public Map getLatestBuildResults()
+ {
+ return null;
+ }
+
+ public ProjectNotifier getNotifier( int projectId, int notifierId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public Project getProject( int projectId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public Project getProjectWithAllDetails( int projectId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public Project getProjectWithBuilds( int projectId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public Project getProjectWithCheckoutResult( int projectId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public Collection getProjects()
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public List getProjectsInBuildOrder()
+ throws CycleDetectedException, ContinuumException
+ {
+ return null;
+ }
+
+ public Collection getProjectsWithDependencies()
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public Schedule getSchedule( int id )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public Collection getSchedules()
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public ContinuumSecurity getSecurity()
+ {
+ return null;
+ }
+
+ public ContinuumUser getUser( int userId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public UserGroup getUserGroup( int userGroupId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public List getUserGroups()
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public List getUsers()
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public File getWorkingDirectory( int projectId )
+ throws ContinuumException
+ {
+ return null;
+ }
+
+ public boolean isInBuildingQueue( int projectId )
+ throws ContinuumException
+ {
+ return false;
+ }
+
+ public boolean isInBuildingQueue( int projectId, int buildDefinitionId )
+ throws ContinuumException
+ {
+ return false;
+ }
+
+ public boolean isInCheckoutQueue( int projectId )
+ throws ContinuumException
+ {
+ return false;
+ }
+
+ public void reloadConfiguration()
+ throws ContinuumException
+ {
+ }
+
+ public void removeBuildDefinition( int projectId, int buildDefinitionId )
+ throws ContinuumException
+ {
+ }
+
+ public void removeNotifier( int projectId, int notifierId )
+ throws ContinuumException
+ {
+ }
+
+ public void removeProject( int projectId )
+ throws ContinuumException
+ {
+ }
+
+ public void removeSchedule( int scheduleId )
+ throws ContinuumException
+ {
+ }
+
+ public void removeUser( int userId )
+ throws ContinuumException
+ {
+ }
+
+ public void removeUserGroup( int userGroupId )
+ throws ContinuumException
+ {
+ }
+
+ public void updateBuildDefinition( BuildDefinition buildDefinition, int projectId )
+ throws ContinuumException
+ {
+ }
+
+ public void updateBuildDefinition( int projectId, int buildDefinitionId, Map configuration )
+ throws ContinuumException
+ {
+ }
+
+ public void updateConfiguration( Map parameters )
+ throws ContinuumException
+ {
+ }
+
+ public void updateNotifier( int projectId, int notifierId, Map configuration )
+ throws ContinuumException
+ {
+ }
+
+ public void updateNotifier( int projectId, ProjectNotifier notifier )
+ throws ContinuumException
+ {
+ }
+
+ public void updateProject( Project project )
+ throws ContinuumException
+ {
+ }
+
+ public void updateSchedule( Schedule schedule )
+ throws ContinuumException
+ {
+ }
+
+ public void updateSchedule( int scheduleId, Map configuration )
+ throws ContinuumException
+ {
+ }
+
+ public void updateUser( ContinuumUser user )
+ throws ContinuumException
+ {
+ }
+
+ public void updateUser( int userId, Map configuration )
+ throws ContinuumException
+ {
+ }
+
+ public void updateUserGroup( UserGroup userGroup )
+ throws ContinuumException
+ {
+ }
+
+ public void updateUserGroup( int userGroupId, Map configuration )
+ throws ContinuumException
+ {
+ }
+
+}
Propchange: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/ContinuumStub.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/aspectj/ContinuumStub.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityPlexusTest.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/aspectj/MethodSecurityPlexusTest.java?rev=427069&view=auto
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityPlexusTest.java (added)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityPlexusTest.java Mon Jul 31 03:45:47 2006
@@ -0,0 +1,63 @@
+package org.apache.maven.continuum.security.acegi.aspectj;
+
+/*
+ * 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.InputStream;
+import java.io.InputStreamReader;
+
+import org.acegisecurity.Authentication;
+import org.acegisecurity.GrantedAuthority;
+import org.acegisecurity.GrantedAuthorityImpl;
+import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
+import org.apache.maven.continuum.Continuum;
+import org.codehaus.plexus.DefaultPlexusContainer;
+import org.codehaus.plexus.PlexusContainer;
+
+public class MethodSecurityPlexusTest
+ extends AbstractMethodSecurityTest
+{
+
+ private PlexusContainer pc;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ InputStream is = Thread.currentThread().getContextClassLoader()
+ .getResourceAsStream( "org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityPlexusTest.xml" );
+
+ pc = new DefaultPlexusContainer();
+ pc.setConfigurationResource( new InputStreamReader( is ) );
+ pc.initialize();
+ pc.start();
+ setContinuum( (Continuum) pc.lookup( "org.apache.maven.continuum.Continuum" ) );
+ }
+
+ protected Authentication getAuthentication( String role )
+ {
+ return new UsernamePasswordAuthenticationToken( "marissa", "koala",
+ new GrantedAuthority[] { new GrantedAuthorityImpl( "ROLE_"
+ + role ) } );
+ }
+
+ protected void tearDown()
+ throws Exception
+ {
+ pc.dispose();
+ super.tearDown();
+ }
+}
Propchange: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityPlexusTest.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/aspectj/MethodSecurityPlexusTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityTest.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/aspectj/MethodSecurityTest.java?rev=427069&view=auto
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityTest.java (added)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityTest.java Mon Jul 31 03:45:47 2006
@@ -0,0 +1,69 @@
+package org.apache.maven.continuum.security.acegi.aspectj;
+
+/*
+ * 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.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.acegisecurity.MockAccessDecisionManager;
+import org.acegisecurity.MockAuthenticationManager;
+import org.acegisecurity.MockRunAsManager;
+import org.acegisecurity.intercept.method.MethodDefinitionMap;
+import org.acegisecurity.intercept.method.MethodDefinitionSourceMapping;
+import org.acegisecurity.intercept.method.aspectj.AspectJSecurityInterceptor;
+import org.apache.maven.continuum.Continuum;
+import org.codehaus.plexus.acegi.intercept.method.aspectj.AspectJSecurityInterceptorHelper;
+
+/**
+ * Test for {@link MethodSecurityAspect}
+ *
+ * @author Carlos Sanchez
+ * @version $Id$
+ */
+public class MethodSecurityTest
+ extends AbstractMethodSecurityTest
+{
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ MethodDefinitionSourceMapping mapping = new MethodDefinitionSourceMapping();
+ mapping.setMethodName( Continuum.class.getCanonicalName() + ".addProject" );
+ mapping.setConfigAttributes( Arrays.asList( new String[] { "MOCK_ADMIN" } ) );
+
+ List mappings = new ArrayList();
+ mappings.add( mapping );
+
+ MethodDefinitionMap methodDefinitionSource = new MethodDefinitionMap();
+ methodDefinitionSource.setMappings( mappings );
+
+ AspectJSecurityInterceptor si = new AspectJSecurityInterceptor();
+ si.setObjectDefinitionSource( methodDefinitionSource );
+ si.setAccessDecisionManager(new MockAccessDecisionManager());
+ si.setAuthenticationManager(new MockAuthenticationManager());
+ si.setRunAsManager(new MockRunAsManager());
+
+ setContinuum( new ContinuumStub() );
+ AspectJSecurityInterceptorHelper helper = new AspectJSecurityInterceptorHelper();
+ helper.setAspectName( "org.apache.maven.continuum.security.acegi.aspectj.MethodSecurityAspect" );
+ helper.setSecurityInterceptor( si );
+ helper.initialize();
+ // aspect = MethodSecurityAspect.aspectOf();
+ }
+}
Propchange: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityTest.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/aspectj/MethodSecurityTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityPlexusTest.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityPlexusTest.xml?rev=427069&view=auto
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityPlexusTest.xml (added)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/continuum/security/acegi/aspectj/MethodSecurityPlexusTest.xml Mon Jul 31 03:45:47 2006
@@ -0,0 +1,134 @@
+