X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=security%2Fusermgt%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthentication%2FAbstractUserSet.java;fp=security%2Fusermgt%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthentication%2FAbstractUserSet.java;h=e629d0bbb4e1fa32ac82fb2d3aa61e5382990956;hb=9449ea0f360f6e9c14057db57f3ee0bfba947ab4;hp=0000000000000000000000000000000000000000;hpb=e8b988e92306a4aea2f047af1b48588147288831;p=utils diff --git a/security/usermgt/src/main/java/org/wamblee/security/authentication/AbstractUserSet.java b/security/usermgt/src/main/java/org/wamblee/security/authentication/AbstractUserSet.java new file mode 100644 index 00000000..e629d0bb --- /dev/null +++ b/security/usermgt/src/main/java/org/wamblee/security/authentication/AbstractUserSet.java @@ -0,0 +1,70 @@ +/* + * 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.encryption.MessageDigester; + +import static org.wamblee.security.authentication.UserMgtException.Reason.*; + +/** + * User set base class. + */ +public abstract class AbstractUserSet implements UserSet { + /** + * Password validator. + */ + private NameValidator passwordValidator; + + /** + * Password encoder. + */ + private MessageDigester passwordEncoder; + + /** + * Creates a new AbstractUserSet object. + * + */ + protected AbstractUserSet(NameValidator aPasswordValidator, + MessageDigester aPasswordEncoder) { + passwordValidator = aPasswordValidator; + passwordEncoder = aPasswordEncoder; + } + + /** + * Sets the password validtor and encoder in the user. + * + * @param aUser + * User. + */ + protected void setPasswordInfo(User aUser) { + aUser.setPasswordValidator(passwordValidator); + aUser.setPasswordEncoder(passwordEncoder); + } + + @Override + public User createUser(String aUsername, String aPassword) { + User user = new User(aUsername, aPassword, passwordValidator, + passwordEncoder); + + if (contains(user)) { + throw new UserMgtException(DUPLICATE_USER, user); + } + + add(user); + + return user; + } +}