[pal-cvs 2920] [664] added password validators.

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2007年 10月 26日 (金) 13:23:18 JST


Revision: 664
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=664
Author:   shinsuke
Date:     2007-10-26 13:23:18 +0900 (Fri, 26 Oct 2007)

Log Message:
-----------
added password validators.

Added Paths:
-----------
    pal-portal/trunk/portal/files/components/security/
    pal-portal/trunk/portal/files/components/security/src/
    pal-portal/trunk/portal/files/components/security/src/java/
    pal-portal/trunk/portal/files/components/security/src/java/org/
    pal-portal/trunk/portal/files/components/security/src/java/org/apache/
    pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/
    pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/
    pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/
    pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/
    pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/CredentialPasswordValidatorsProxy.java
    pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/LengthCredentialPasswordValidator.java
    pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/RegexCredentialPasswordValidator.java
    pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/ReservedWordsCredentialPasswordValidator.java


-------------- next part --------------
Added: pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/CredentialPasswordValidatorsProxy.java
===================================================================
--- pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/CredentialPasswordValidatorsProxy.java	2007-10-26 01:03:32 UTC (rev 663)
+++ pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/CredentialPasswordValidatorsProxy.java	2007-10-26 04:23:18 UTC (rev 664)
@@ -0,0 +1,26 @@
+package org.apache.jetspeed.security.spi.impl;
+
+import java.util.List;
+
+import org.apache.jetspeed.security.SecurityException;
+import org.apache.jetspeed.security.spi.CredentialPasswordValidator;
+
+public class CredentialPasswordValidatorsProxy implements CredentialPasswordValidator
+{
+    private CredentialPasswordValidator[] credentialPasswordValidators;
+
+    public CredentialPasswordValidatorsProxy(List validators)
+    {
+        this.credentialPasswordValidators = (CredentialPasswordValidator[]) validators
+                .toArray(new CredentialPasswordValidator[validators.size()]);
+    }
+
+    public void validate(String clearTextPassword) throws SecurityException
+    {
+        for (int i = 0; i < credentialPasswordValidators.length; i++)
+        {
+            credentialPasswordValidators[i].validate(clearTextPassword);
+        }
+    }
+
+}


Property changes on: pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/CredentialPasswordValidatorsProxy.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/LengthCredentialPasswordValidator.java
===================================================================
--- pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/LengthCredentialPasswordValidator.java	2007-10-26 01:03:32 UTC (rev 663)
+++ pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/LengthCredentialPasswordValidator.java	2007-10-26 04:23:18 UTC (rev 664)
@@ -0,0 +1,82 @@
+package org.apache.jetspeed.security.spi.impl;
+
+import org.apache.jetspeed.security.InvalidPasswordException;
+import org.apache.jetspeed.security.SecurityException;
+import org.apache.jetspeed.security.spi.CredentialPasswordValidator;
+
+public class LengthCredentialPasswordValidator implements CredentialPasswordValidator
+{
+    private int minPasswordLength;
+
+    private int maxPasswordLength;
+
+    private int minLetterLength;
+
+    private int minDigitLength;
+
+    public LengthCredentialPasswordValidator(int minPasswordLength, int maxPasswordLength)
+    {
+        this(minPasswordLength, maxPasswordLength, 0, 0);
+    }
+
+    public LengthCredentialPasswordValidator(int minPasswordLength, int maxPasswordLength, int minLetterLength, int minDigitLength)
+    {
+        this.minPasswordLength = minPasswordLength;
+        this.maxPasswordLength = maxPasswordLength;
+        this.minLetterLength = minLetterLength;
+        this.minDigitLength = minDigitLength;
+    }
+
+    public void validate(String clearTextPassword) throws SecurityException
+    {
+        if (clearTextPassword == null)
+        {
+            clearTextPassword = "";
+        }
+
+        char[] pwd = clearTextPassword.toCharArray();
+
+        if (minPasswordLength > 0 && pwd.length < minPasswordLength)
+        {
+            throw new InvalidPasswordException();
+        }
+
+        if (maxPasswordLength > 0 && maxPasswordLength < pwd.length)
+        {
+            throw new InvalidPasswordException();
+        }
+
+        if (minLetterLength > 0)
+        {
+            int count = 0;
+            for (int i = 0; i < pwd.length; i++)
+            {
+                if (Character.isLetter(pwd[i]))
+                {
+                    count++;
+                }
+            }
+            if (count < minLetterLength)
+            {
+                throw new InvalidPasswordException();
+            }
+        }
+
+        if (minDigitLength > 0)
+        {
+            int count = 0;
+            for (int i = 0; i < pwd.length; i++)
+            {
+                if (Character.isDigit(pwd[i]))
+                {
+                    count++;
+                }
+            }
+            if (count < minDigitLength)
+            {
+                throw new InvalidPasswordException();
+            }
+        }
+    }
+
+}


Property changes on: pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/LengthCredentialPasswordValidator.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/RegexCredentialPasswordValidator.java
===================================================================
--- pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/RegexCredentialPasswordValidator.java	2007-10-26 01:03:32 UTC (rev 663)
+++ pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/RegexCredentialPasswordValidator.java	2007-10-26 04:23:18 UTC (rev 664)
@@ -0,0 +1,29 @@
+package org.apache.jetspeed.security.spi.impl;
+
+import org.apache.jetspeed.security.InvalidPasswordException;
+import org.apache.jetspeed.security.SecurityException;
+import org.apache.jetspeed.security.spi.CredentialPasswordValidator;
+
+public class RegexCredentialPasswordValidator implements CredentialPasswordValidator
+{
+    private String regex;
+
+    public RegexCredentialPasswordValidator(String regex)
+    {
+        this.regex = regex;
+    }
+
+    public void validate(String clearTextPassword) throws SecurityException
+    {
+        if (clearTextPassword == null)
+        {
+            clearTextPassword = "";
+        }
+
+        if (!clearTextPassword.matches(regex))
+        {
+            throw new InvalidPasswordException();
+        }
+    }
+
+}


Property changes on: pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/RegexCredentialPasswordValidator.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/ReservedWordsCredentialPasswordValidator.java
===================================================================
--- pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/ReservedWordsCredentialPasswordValidator.java	2007-10-26 01:03:32 UTC (rev 663)
+++ pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/ReservedWordsCredentialPasswordValidator.java	2007-10-26 04:23:18 UTC (rev 664)
@@ -0,0 +1,55 @@
+package org.apache.jetspeed.security.spi.impl;
+
+import java.util.List;
+
+import org.apache.jetspeed.security.InvalidPasswordException;
+import org.apache.jetspeed.security.SecurityException;
+import org.apache.jetspeed.security.spi.CredentialPasswordValidator;
+
+public class ReservedWordsCredentialPasswordValidator implements CredentialPasswordValidator
+{
+    private String[] reservedWords;
+
+    private boolean ignoreCase;
+
+    public ReservedWordsCredentialPasswordValidator(List words)
+    {
+        this(words, false);
+    }
+
+    public ReservedWordsCredentialPasswordValidator(List words, boolean ignoreCase)
+    {
+        this.reservedWords = (String[]) words.toArray(new String[words.size()]);
+        this.ignoreCase = ignoreCase;
+    }
+
+    public void validate(String clearTextPassword) throws SecurityException
+    {
+        if (clearTextPassword == null)
+        {
+            clearTextPassword = "";
+        }
+
+        if (ignoreCase)
+        {
+            for (int i = 0; i < reservedWords.length; i++)
+            {
+                if (clearTextPassword.equalsIgnoreCase(reservedWords[i]))
+                {
+                    throw new InvalidPasswordException();
+                }
+            }
+        }
+        else
+        {
+            for (int i = 0; i < reservedWords.length; i++)
+            {
+                if (clearTextPassword.equals(reservedWords[i]))
+                {
+                    throw new InvalidPasswordException();
+                }
+            }
+        }
+    }
+
+}


Property changes on: pal-portal/trunk/portal/files/components/security/src/java/org/apache/jetspeed/security/spi/impl/ReservedWordsCredentialPasswordValidator.java
___________________________________________________________________
Name: svn:eol-style
   + native


pal-cvs メーリングリストの案内
Back to archive index