Skip to content

Commit

Permalink
Simplify InMemoryUaaUserDatabase and MockUaaUserDatabase
Browse files Browse the repository at this point in the history
Signed-off-by: Jonathan Lo <jlo@us.ibm.com>
  • Loading branch information
Jeremy Coffield authored and jlo committed Jan 7, 2016
1 parent 0876165 commit cd18696
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 66 deletions.
Expand Up @@ -14,6 +14,7 @@


import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.core.userdetails.UsernameNotFoundException;


import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;


Expand All @@ -29,12 +30,12 @@ public class InMemoryUaaUserDatabase implements UaaUserDatabase {
private final Map<String, UaaUser> users; private final Map<String, UaaUser> users;
private final Map<String, UaaUser> ids; private final Map<String, UaaUser> ids;


public InMemoryUaaUserDatabase(Map<String, UaaUser> users) { public InMemoryUaaUserDatabase(Collection<UaaUser> users) {
this.users = new HashMap<>(); this.users = new HashMap<>();
this.ids = new HashMap<>(); this.ids = new HashMap<>();
for (Map.Entry<String,UaaUser> entry : users.entrySet()) { for (UaaUser user : users) {
this.ids.put(entry.getValue().getId(), entry.getValue()); this.ids.put(user.getId(), user);
this.users.put(entry.getKey()+"-"+entry.getValue().getOrigin(), entry.getValue()); this.users.put(user.getUsername()+"-"+user.getOrigin(), user);
} }
} }


Expand Down
Expand Up @@ -36,10 +36,10 @@
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.List;
import java.util.Map;


import static org.mockito.Matchers.anyBoolean; import static org.mockito.Matchers.anyBoolean;
import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.anyString;
Expand All @@ -61,7 +61,6 @@ public class SessionResetFilterTests {
Date yesterday; Date yesterday;
UaaUser user; UaaUser user;
UaaUser userWithNoPasswordModification; UaaUser userWithNoPasswordModification;
Map<String,UaaUser> users;


@Before @Before
public void setUpFilter() throws Exception { public void setUpFilter() throws Exception {
Expand Down Expand Up @@ -119,9 +118,9 @@ private void addUsersToInMemoryDb() {
null null
); );


users = new HashMap<>(); List<UaaUser> users = new ArrayList<>();
users.put(user.getId(), user); users.add(user);
users.put(userWithNoPasswordModification.getId(), userWithNoPasswordModification); users.add(userWithNoPasswordModification);
userDatabase = new InMemoryUaaUserDatabase(users); userDatabase = new InMemoryUaaUserDatabase(users);
} }


Expand Down
Expand Up @@ -169,10 +169,7 @@ public class UaaTokenServicesTests {
// the token IAT is in seconds and the token // the token IAT is in seconds and the token
// expiry // expiry
// skew will not be long enough // skew will not be long enough
private InMemoryUaaUserDatabase userDatabase = private InMemoryUaaUserDatabase userDatabase = new InMemoryUaaUserDatabase(Collections.singleton(defaultUser));
new InMemoryUaaUserDatabase(
new HashMap<>(Collections.singletonMap(username, defaultUser))
);


private Authentication defaultUserAuthentication = new UsernamePasswordAuthenticationToken(new UaaPrincipal(defaultUser), "n/a", null); private Authentication defaultUserAuthentication = new UsernamePasswordAuthenticationToken(new UaaPrincipal(defaultUser), "n/a", null);


Expand Down
Expand Up @@ -36,8 +36,7 @@ public class UserInfoEndpointTests {


private UserInfoEndpoint endpoint = new UserInfoEndpoint(); private UserInfoEndpoint endpoint = new UserInfoEndpoint();


private InMemoryUaaUserDatabase userDatabase = new InMemoryUaaUserDatabase(Collections.singletonMap("olds", private InMemoryUaaUserDatabase userDatabase = new InMemoryUaaUserDatabase(Collections.singleton(UaaUserTestFactory.getUser("12345", "olds", "olds@vmware.com", "Dale", "Olds")));
UaaUserTestFactory.getUser("12345", "olds", "olds@vmware.com", "Dale", "Olds")));


public UserInfoEndpointTests() { public UserInfoEndpointTests() {
endpoint.setUserDatabase(userDatabase); endpoint.setUserDatabase(userDatabase);
Expand Down
Expand Up @@ -6,6 +6,7 @@
import org.junit.Test; import org.junit.Test;
import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.core.userdetails.UsernameNotFoundException;


import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
Expand All @@ -19,9 +20,7 @@ public class InMemoryUaaUserDatabaseTests {
InMemoryUaaUserDatabase db; InMemoryUaaUserDatabase db;
@Before @Before
public void setUp() { public void setUp() {
Map<String, UaaUser> users = new HashMap<>(); db = new InMemoryUaaUserDatabase(Collections.singleton(user));
users.put(user.getUsername(), user);
db = new InMemoryUaaUserDatabase(users);
} }




Expand Down
Expand Up @@ -16,61 +16,20 @@
import org.cloudfoundry.identity.uaa.zone.IdentityZoneHolder; import org.cloudfoundry.identity.uaa.zone.IdentityZoneHolder;
import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.core.userdetails.UsernameNotFoundException;


import java.util.Collections;
import java.util.Date; import java.util.Date;


/** /**
* @author Luke Taylor * @author Luke Taylor
*/ */
public class MockUaaUserDatabase implements UaaUserDatabase { public class MockUaaUserDatabase extends InMemoryUaaUserDatabase {
UaaUser user;


public MockUaaUserDatabase(String id, String name, String email, String givenName, String familyName) { public MockUaaUserDatabase(String id, String name, String email, String givenName, String familyName) {
user = new UaaUser(id, name, "", email, UaaAuthority.USER_AUTHORITIES, givenName, familyName, super(Collections.singleton(createUser(id, name, email, givenName, familyName)));
new Date(), new Date(), OriginKeys.UAA, "externalId", false, IdentityZoneHolder.get().getId(), id, new Date());
}

public MockUaaUserDatabase(String id, String name, String email, String givenName, String familyName,
Date createdAt, Date updatedAt) {
user = new UaaUser(id, name, "", email, UaaAuthority.USER_AUTHORITIES, givenName, familyName,
createdAt, updatedAt, OriginKeys.UAA, "externalId", false, IdentityZoneHolder.get().getId(), id, new Date());
}

@Override
public UaaUser retrieveUserByName(String username, String origin) throws UsernameNotFoundException {
if (user.getUsername().equals(username) && user.getOrigin().equals(origin)) {
return user;
}
else {
throw new UsernameNotFoundException(username);
}
} }


@Override private static UaaUser createUser(String id, String name, String email, String givenName, String familyName) {
public UaaUser retrieveUserById(String id) throws UsernameNotFoundException { return new UaaUser(id, name, "", email, UaaAuthority.USER_AUTHORITIES, givenName, familyName,
if (user.getId().equals(id)) { new Date(), new Date(), OriginKeys.UAA, "externalId", false, IdentityZoneHolder.get().getId(), id, new Date());
return user;
}
else {
throw new UsernameNotFoundException(id);
}
}

@Override
public UaaUser retrieveUserByEmail(String email, String origin) throws UsernameNotFoundException {
if (email.equals(user.getEmail()) && origin.equals(user.getOrigin())) {
return user;
}
else {
throw new UsernameNotFoundException(email);
}
}

public UaaUser updateUser(String userId, UaaUser user) throws UsernameNotFoundException {
if (user.getId().equals(userId)) {
this.user = user;
return user;
} else {
throw new UsernameNotFoundException(userId);
}
} }
} }

0 comments on commit cd18696

Please sign in to comment.