You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2012/04/07 15:42:49 UTC
svn commit: r1310769 - in
/archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src:
main/java/org/apache/ main/java/org/apache/archiva/
main/java/org/apache/archiva/redback/
main/java/org/apache/archiva/redback/authentication/...
Author: olamy
Date: Sat Apr 7 13:42:48 2012
New Revision: 1310769
URL: http://svn.apache.org/viewvc?rev=1310769&view=rev
Log:
package change to o.a.a.r
Added:
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/apache/
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/apache/archiva/
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/apache/archiva/redback/
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/apache/archiva/redback/authentication/
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/apache/archiva/redback/authentication/users/
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/apache/archiva/redback/authentication/users/UserManagerAuthenticator.java
- copied, changed from r1310767, archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/codehaus/plexus/redback/authentication/users/UserManagerAuthenticator.java
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/java/org/apache/
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/java/org/apache/archiva/
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/java/org/apache/archiva/redback/
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/java/org/apache/archiva/redback/authentication/
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/java/org/apache/archiva/redback/authentication/users/
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/java/org/apache/archiva/redback/authentication/users/UserManagerAuthenticatorTest.java (with props)
Removed:
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/codehaus/plexus/redback/authentication/users/UserManagerAuthenticator.java
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/java/org/codehaus/plexus/redback/authentication/users/UserManagerAuthenticatorTest.java
Modified:
archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/resources/spring-context.xml
Copied: archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/apache/archiva/redback/authentication/users/UserManagerAuthenticator.java (from r1310767, archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/codehaus/plexus/redback/authentication/users/UserManagerAuthenticator.java)
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/apache/archiva/redback/authentication/users/UserManagerAuthenticator.java?p2=archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/apache/archiva/redback/authentication/users/UserManagerAuthenticator.java&p1=archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/codehaus/plexus/redback/authentication/users/UserManagerAuthenticator.java&r1=1310767&r2=1310769&rev=1310769&view=diff
==============================================================================
--- archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/codehaus/plexus/redback/authentication/users/UserManagerAuthenticator.java (original)
+++ archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/main/java/org/apache/archiva/redback/authentication/users/UserManagerAuthenticator.java Sat Apr 7 13:42:48 2012
@@ -1,4 +1,4 @@
-package org.codehaus.plexus.redback.authentication.users;
+package org.apache.archiva.redback.authentication.users;
/*
* Licensed to the Apache Software Foundation (ASF) under one
Added: archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/java/org/apache/archiva/redback/authentication/users/UserManagerAuthenticatorTest.java
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/java/org/apache/archiva/redback/authentication/users/UserManagerAuthenticatorTest.java?rev=1310769&view=auto
==============================================================================
--- archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/java/org/apache/archiva/redback/authentication/users/UserManagerAuthenticatorTest.java (added)
+++ archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/java/org/apache/archiva/redback/authentication/users/UserManagerAuthenticatorTest.java Sat Apr 7 13:42:48 2012
@@ -0,0 +1,215 @@
+package org.apache.archiva.redback.authentication.users;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.archiva.redback.authentication.users.UserManagerAuthenticator;
+import org.apache.archiva.redback.users.User;
+import org.apache.archiva.redback.users.UserManager;
+import org.apache.archiva.redback.users.UserNotFoundException;
+import org.codehaus.plexus.redback.authentication.AuthenticationException;
+import org.codehaus.plexus.redback.authentication.AuthenticationResult;
+import org.codehaus.plexus.redback.authentication.Authenticator;
+import org.codehaus.plexus.redback.authentication.PasswordBasedAuthenticationDataSource;
+import org.codehaus.plexus.redback.policy.AccountLockedException;
+import org.codehaus.plexus.redback.policy.MustChangePasswordException;
+import org.codehaus.plexus.redback.policy.UserSecurityPolicy;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * Tests for {@link org.apache.archiva.redback.authentication.users.UserManagerAuthenticator} implementation.
+ *
+ * @author <a href='mailto:rahul.thakur.xdev@gmail.com'>Rahul Thakur</a>
+ */
+@RunWith( SpringJUnit4ClassRunner.class )
+@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath*:/spring-context.xml" } )
+public class UserManagerAuthenticatorTest
+ extends TestCase
+{
+ @Inject
+ private UserSecurityPolicy userSecurityPolicy;
+
+ @Inject
+ @Named(value = "authenticator#user-manager")
+ Authenticator component;
+
+ @Inject
+ @Named(value = "userManager#memory")
+ UserManager um;
+
+ @Before
+ public void setUp()
+ throws Exception
+ {
+ super.setUp();
+ userSecurityPolicy.setEnabled( false );
+ }
+
+ @Test
+ public void testLookup()
+ throws Exception
+ {
+ assertNotNull( component );
+ assertEquals( UserManagerAuthenticator.class.getName(), component.getClass().getName() );
+ }
+
+ @Test
+ public void testAuthenticate()
+ throws Exception
+ {
+ // Set up a few users for the Authenticator
+
+ User user = um.createUser( "test", "Test User", "testuser@somedomain.com" );
+ user.setPassword( "testpass" );
+ um.addUser( user );
+
+ user = um.createUser( "guest", "Guest User", "testuser@somedomain.com" );
+ user.setPassword( "guestpass" );
+ um.addUser( user );
+
+ user = um.createUser( "anonymous", "Anonymous User", "testuser@somedomain.com" );
+ user.setPassword( "nopass" );
+ um.addUser( user );
+
+ // test with valid credentials
+ Authenticator auth = component;
+ assertNotNull( auth );
+
+ AuthenticationResult result = auth.authenticate( createAuthDataSource( "anonymous", "nopass" ) );
+ assertTrue( result.isAuthenticated() );
+
+ // test with invalid password
+ result = auth.authenticate( createAuthDataSource( "anonymous", "wrongpass" ) );
+ assertFalse( result.isAuthenticated() );
+ assertNull( result.getException() );
+
+ // test with unknown user
+ result = auth.authenticate( createAuthDataSource( "unknownuser", "wrongpass" ) );
+ assertFalse( result.isAuthenticated() );
+ assertNotNull( result.getException() );
+ assertEquals( result.getException().getClass().getName(), UserNotFoundException.class.getName() );
+ }
+
+ @Test
+ public void testAuthenticateLockedPassword()
+ throws AuthenticationException, MustChangePasswordException, UserNotFoundException
+ {
+ userSecurityPolicy.setEnabled( true );
+
+ // Set up a user for the Authenticator
+ User user = um.createUser( "testuser", "Test User Locked Password", "testuser@somedomain.com" );
+ user.setPassword( "correctpass1" );
+ user.setValidated( true );
+ user.setPasswordChangeRequired( false );
+ um.addUser( user );
+
+ Authenticator auth = component;
+ assertNotNull( auth );
+
+ boolean hasException = false;
+ AuthenticationResult result = null;
+
+ try
+ {
+ // test password lock
+ for ( int i = 0; i < 11; i++ )
+ {
+ result = auth.authenticate( createAuthDataSource( "testuser", "wrongpass" ) );
+ }
+ }
+ catch ( AccountLockedException e )
+ {
+ hasException = true;
+ }
+ finally
+ {
+ assertNotNull( result );
+ assertFalse( result.isAuthenticated() );
+ assertTrue( hasException );
+ }
+ }
+
+ @Test
+ public void testAuthenticateExpiredPassword()
+ throws AuthenticationException, AccountLockedException, UserNotFoundException
+ {
+ userSecurityPolicy.setEnabled( true );
+ userSecurityPolicy.setPasswordExpirationDays( 15 );
+
+ // Set up a user for the Authenticator
+ User user = um.createUser( "testuser", "Test User Expired Password", "testuser@somedomain.com" );
+ user.setPassword( "expiredpass1" );
+ user.setValidated( true );
+ user.setPasswordChangeRequired( false );
+ um.addUser( user );
+
+ Authenticator auth = component;
+ assertNotNull( auth );
+
+ boolean hasException = false;
+
+ try
+ {
+ // test successful authentication
+ AuthenticationResult result = auth.authenticate( createAuthDataSource( "testuser", "expiredpass1" ) );
+ assertTrue( result.isAuthenticated() );
+
+ // test expired password
+ user = um.findUser( "testuser" );
+
+ Calendar currentDate = Calendar.getInstance();
+ currentDate.set( Calendar.YEAR, currentDate.get( Calendar.YEAR ) - 1 );
+ Date lastPasswordChange = currentDate.getTime();
+ user.setLastPasswordChange( lastPasswordChange );
+
+ um.updateUser( user );
+
+ auth.authenticate( createAuthDataSource( "testuser", "expiredpass1" ) );
+ }
+ catch ( MustChangePasswordException e )
+ {
+ hasException = true;
+ }
+ finally
+ {
+ assertTrue( hasException );
+ }
+ }
+
+ private PasswordBasedAuthenticationDataSource createAuthDataSource( String username, String password )
+ {
+ PasswordBasedAuthenticationDataSource source = new PasswordBasedAuthenticationDataSource();
+
+ source.setPrincipal( username );
+ source.setPassword( password );
+
+ return source;
+
+ }
+}
Propchange: archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/java/org/apache/archiva/redback/authentication/users/UserManagerAuthenticatorTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/java/org/apache/archiva/redback/authentication/users/UserManagerAuthenticatorTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/resources/spring-context.xml
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/resources/spring-context.xml?rev=1310769&r1=1310768&r2=1310769&view=diff
==============================================================================
--- archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/resources/spring-context.xml (original)
+++ archiva/redback/redback-core/trunk/redback-users/redback-authentication-users/src/test/resources/spring-context.xml Sat Apr 7 13:42:48 2012
@@ -27,7 +27,7 @@
http://www.springframework.org/schema/context/spring-context-3.0.xsd"
default-lazy-init="true">
- <bean name="authenticator#user-manager" class="org.codehaus.plexus.redback.authentication.users.UserManagerAuthenticator">
+ <bean name="authenticator#user-manager" class="org.apache.archiva.redback.authentication.users.UserManagerAuthenticator">
<property name="userManager" ref="userManager#memory"/>
<property name="securityPolicy" ref="userSecurityPolicy"/>
</bean>