X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=security%2Fimpl%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthorization%2FTestUserAccessor.java;fp=security%2Fimpl%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthorization%2FTestUserAccessor.java;h=c4cadcc851236d27e779f3fa6ab55a6d5df1ee17;hb=5ea8f0e2af53562c1507e8fb5a3ede2af5c5de6c;hp=0000000000000000000000000000000000000000;hpb=b9eccdf9751b8e2e671e0792f885d05c6ed0f43c;p=utils diff --git a/security/impl/src/test/java/org/wamblee/security/authorization/TestUserAccessor.java b/security/impl/src/test/java/org/wamblee/security/authorization/TestUserAccessor.java new file mode 100644 index 00000000..c4cadcc8 --- /dev/null +++ b/security/impl/src/test/java/org/wamblee/security/authorization/TestUserAccessor.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.authorization; + +import junit.framework.TestCase; + +import org.wamblee.security.encryption.Md5HexMessageDigester; + +import org.wamblee.usermgt.Group; +import org.wamblee.usermgt.InMemoryGroupSet; +import org.wamblee.usermgt.InMemoryUserSet; +import org.wamblee.usermgt.RegexpNameValidator; +import org.wamblee.usermgt.User; +import org.wamblee.usermgt.UserAccessor; +import org.wamblee.usermgt.UserAdministration; +import org.wamblee.usermgt.UserAdministrationImpl; +import org.wamblee.usermgt.UserMgtException; +import org.wamblee.usermgt.UserMgtException.Reason; + +/** + * User access that always returns a user that belongs to a fixed group. + * + * @author Erik Brakkee + */ +public class TestUserAccessor implements UserAccessor { + private static final String USER = "erik"; + + private static final String PASSWORD = "abc123"; + + private static final String GROUP = "users"; + + /* + * (non-Javadoc) + * + * @see org.wamblee.usermgt.UserAccessor#getCurrentUser() + */ + public User getCurrentUser() { + UserAdministration admin = new UserAdministrationImpl( + new InMemoryUserSet(new RegexpNameValidator( + RegexpNameValidator.PASSWORD_PATTERN, Reason.INVALID_PASSWORD, + "Password must contain at least 6 characters"), + new Md5HexMessageDigester()), new InMemoryGroupSet(), + new RegexpNameValidator(RegexpNameValidator.ID_PATTERN, + Reason.INVALID_USERNAME, "Invalid user"), + new RegexpNameValidator(RegexpNameValidator.ID_PATTERN, + Reason.INVALID_GROUPNAME, "Invalid group")); + + try { + Group group = admin.createGroup(GROUP); + + return admin.createUser(USER, PASSWORD, group); + } catch (UserMgtException e) { + TestCase.fail(e.getMessage()); + throw new RuntimeException(e); + } + } +}