Commit 328d9b49 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

improved auth

parent 4640f4a3
......@@ -107,12 +107,10 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
@Override
public com.google.common.base.Optional<User> authenticate(BasicCredentials credentials) throws AuthenticationException {
if ("secret".equals(credentials.getPassword())) {
java.util.Optional<User> user = usersRepository.get(credentials.getUsername());
java.util.Optional<User> user = usersRepository.authenticateUser(credentials);
if (user.isPresent()) {
return Optional.of(user.get());
}
}
return Optional.absent();
}
}
......@@ -122,6 +120,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
public boolean authorize(User user, String role) {
return user.getName().equals("good-guy") && role.equals("ADMIN");
}
}
//todo: inject dbonnector
......
package repositories;
import database.MongoDBConnector;
import io.dropwizard.auth.basic.BasicCredentials;
import objects.Team;
import objects.User;
......@@ -21,12 +22,24 @@ public class UsersRepository implements Repository {
this.teamsRepository = teamsRepository;
}
public Optional<User> get(String username) {
// public Optional<User> get(String username) {
// Optional<User> userOptional = teamsRepository.getAll()
// .stream()
// .map(Team::getMembers)
// .flatMap(Collection::stream)
// .filter(user -> user.getName().equals(username))
// .findFirst();
// return userOptional;
// }
public Optional<User> authenticateUser(BasicCredentials basicCredentials) {
Optional<User> userOptional = teamsRepository.getAll()
.stream()
.map(Team::getMembers)
.flatMap(Collection::stream)
.filter(user -> user.getName().equals(username))
.filter(user -> {
return user.getName().equals(basicCredentials.getUsername()) && user.getPassword().equals(basicCredentials.getPassword()); //todo
})
.findFirst();
return userOptional;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment