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