This project has retired. For details please refer to its Attic page.
AlphaNumericPasswordRule xref
View Javadoc

1   package org.apache.archiva.redback.policy.rules;
2   
3   /*
4    * Copyright 2001-2006 The Apache Software Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  
19  import org.apache.archiva.redback.configuration.UserConfigurationKeys;
20  import org.apache.archiva.redback.policy.PasswordRuleViolations;
21  import org.apache.archiva.redback.policy.UserSecurityPolicy;
22  import org.apache.archiva.redback.users.User;
23  import org.springframework.stereotype.Service;
24  
25  import javax.annotation.PostConstruct;
26  
27  /**
28   * Basic Password Rule. Checks that password only contains alpha-numeric characters.
29   */
30  @Service("passwordRule#alpha-numeric")
31  public class AlphaNumericPasswordRule
32      extends AbstractPasswordRule
33  {
34      public static final String ALPHANUM_VIOLATION = "user.password.violation.alphanum.only";
35  
36      public void setUserSecurityPolicy( UserSecurityPolicy policy )
37      {
38          // Ignore, policy not needed in this rule.
39      }
40  
41      public void testPassword( PasswordRuleViolations violations, User user )
42      {
43          char[] password = user.getPassword().toCharArray();
44  
45          for ( int i = 0; i < password.length; i++ )
46          {
47              if ( !Character.isLetterOrDigit( password[i] ) )
48              {
49                  violations.addViolation( ALPHANUM_VIOLATION );
50                  return;
51              }
52          }
53      }
54  
55      // FIXME to constructor
56      @PostConstruct
57      public void initialize()
58      {
59          enabled = config.getBoolean( UserConfigurationKeys.POLICY_PASSWORD_RULE_ALPHANUMERIC_ENABLED );
60      }
61  }