X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=security%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthentication%2FRegexpNameValidator.java;fp=security%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthentication%2FRegexpNameValidator.java;h=ebdd91317bd8d4294ea05e7601f7d7e23e789deb;hb=0adf8fb6e00f08a022379cff5edb43fcde30184c;hp=0000000000000000000000000000000000000000;hpb=225f5d67c047f25de6bd53ae24f120fbc7fee620;p=utils diff --git a/security/impl/src/main/java/org/wamblee/security/authentication/RegexpNameValidator.java b/security/impl/src/main/java/org/wamblee/security/authentication/RegexpNameValidator.java new file mode 100644 index 00000000..ebdd9131 --- /dev/null +++ b/security/impl/src/main/java/org/wamblee/security/authentication/RegexpNameValidator.java @@ -0,0 +1,92 @@ +/* + * Copyright 2005-2010 the original author or authors. + * + * 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. + */ +package org.wamblee.security.authentication; + +import org.wamblee.security.authentication.UserMgtException.Reason; + +/** + * Validation of names based on a regular expression. + * + * @author Erik Brakkee + */ +public class RegexpNameValidator implements NameValidator { + /** + * Convenience pattern for an id. + */ + public static final String ID_PATTERN = "[a-zA-Z]+[a-zA-Z0-9]*"; + + /** + * Convenience pattern for a password consisting of at least 6 characters. + */ + public static final String PASSWORD_PATTERN = ".{6}.*"; + + /** + * Pattern to use. + */ + private String pattern; + + /** + * Reason to use when validation fails. + */ + private Reason reason; + + /** + * Message to report. + */ + private String message; + + /** + * Validates a regular expression. + * + * @param aPattern + * Pattern that names must comply to. + * @param aReason + * Reason to report when validation fails. + * @param aMessage + * Message to report. + */ + public RegexpNameValidator(String aPattern, Reason aReason, String aMessage) { + pattern = aPattern; + reason = aReason; + message = aMessage; + } + + /** + * Convenience constructor with all string parameters. Useful for + * configuration in Spring. + * + * @param aPattern + * Pattern to use. + * @param aReason + * Reason. + * @param aMessage + * Message. + */ + public RegexpNameValidator(String aPattern, String aReason, String aMessage) { + this(aPattern, Reason.valueOf(aReason), aMessage); + } + + /* + * (non-Javadoc) + * + * @see org.wamblee.usermgt.NameValidator#validate(java.lang.String) + */ + public void validate(String aName) throws UserMgtException { + if (!aName.matches(pattern)) { + throw new UserMgtException(reason, message); + } + } +}