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

improved auth

parent 4640f4a3
...@@ -107,11 +107,9 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -107,11 +107,9 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
@Override @Override
public com.google.common.base.Optional<User> authenticate(BasicCredentials credentials) throws AuthenticationException { public com.google.common.base.Optional<User> authenticate(BasicCredentials credentials) throws AuthenticationException {
if ("secret".equals(credentials.getPassword())) { java.util.Optional<User> user = usersRepository.authenticateUser(credentials);
java.util.Optional<User> user = usersRepository.get(credentials.getUsername()); if (user.isPresent()) {
if (user.isPresent()) { return Optional.of(user.get());
return Optional.of(user.get());
}
} }
return Optional.absent(); return Optional.absent();
} }
...@@ -122,6 +120,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -122,6 +120,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
public boolean authorize(User user, String role) { public boolean authorize(User user, String role) {
return user.getName().equals("good-guy") && role.equals("ADMIN"); return user.getName().equals("good-guy") && role.equals("ADMIN");
} }
} }
//todo: inject dbonnector //todo: inject dbonnector
......
package repositories; package repositories;
import database.MongoDBConnector; import database.MongoDBConnector;
import io.dropwizard.auth.basic.BasicCredentials;
import objects.Team; import objects.Team;
import objects.User; import objects.User;
...@@ -21,12 +22,24 @@ public class UsersRepository implements Repository { ...@@ -21,12 +22,24 @@ public class UsersRepository implements Repository {
this.teamsRepository = teamsRepository; 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() Optional<User> userOptional = teamsRepository.getAll()
.stream() .stream()
.map(Team::getMembers) .map(Team::getMembers)
.flatMap(Collection::stream) .flatMap(Collection::stream)
.filter(user -> user.getName().equals(username)) .filter(user -> {
return user.getName().equals(basicCredentials.getUsername()) && user.getPassword().equals(basicCredentials.getPassword()); //todo
})
.findFirst(); .findFirst();
return userOptional; 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