Commit 7f19f718 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

inject messageDigestProvider

parent 995b6e22
...@@ -3,28 +3,26 @@ package com.telephoners.krakyournet.ctf.core; ...@@ -3,28 +3,26 @@ package com.telephoners.krakyournet.ctf.core;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import com.telephoners.krakyournet.ctf.beans.User; import com.telephoners.krakyournet.ctf.beans.User;
import com.telephoners.krakyournet.ctf.providers.MessageDigestProvider;
import org.apache.commons.codec.binary.Hex; import org.apache.commons.codec.binary.Hex;
import javax.inject.Named;
import java.security.MessageDigest;
@Singleton @Singleton
public class HashValidator public class HashValidator
{ {
private ApplicationConfiguration applicationConfiguration; private ApplicationConfiguration applicationConfiguration;
private MessageDigest messageDigest; //todo: use messageDigestProvider private MessageDigestProvider messageDigestProvider;
@Inject @Inject
public HashValidator(ApplicationConfiguration applicationConfiguration, public HashValidator(ApplicationConfiguration applicationConfiguration,
final @Named("messageDigest") MessageDigest messageDigest) MessageDigestProvider messageDigestProvider)
{ {
this.applicationConfiguration = applicationConfiguration; this.applicationConfiguration = applicationConfiguration;
this.messageDigest = messageDigest; this.messageDigestProvider = messageDigestProvider;
} }
public String calculateHashValue(User user, String flagValue) public String calculateHashValue(User user, String flagValue)
{ {
String combinedStrings = applicationConfiguration.getSalt() + user.getName() + flagValue; String combinedStrings = applicationConfiguration.getSalt() + user.getName() + flagValue;
return Hex.encodeHexString(messageDigest.digest(combinedStrings.getBytes())); return Hex.encodeHexString(messageDigestProvider.getMessageDigest().digest(combinedStrings.getBytes()));
} }
} }
package com.telephoners.krakyournet.ctf.modules; package com.telephoners.krakyournet.ctf.modules;
import com.google.inject.AbstractModule; import com.google.inject.AbstractModule;
import com.google.inject.name.Names;
import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration; import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration;
import com.telephoners.krakyournet.ctf.providers.DatastoreProvider; import com.telephoners.krakyournet.ctf.providers.DatastoreProvider;
import com.telephoners.krakyournet.ctf.providers.MessageDigestProvider;
import org.mongodb.morphia.Datastore; import org.mongodb.morphia.Datastore;
import java.security.MessageDigest;
public class ApplicationModule extends AbstractModule public class ApplicationModule extends AbstractModule
{ {
private ApplicationConfiguration applicationConfiguration; private ApplicationConfiguration applicationConfiguration;
public ApplicationModule(ApplicationConfiguration applicationConfiguration) public ApplicationModule(ApplicationConfiguration applicationConfiguration)
...@@ -24,7 +19,5 @@ public class ApplicationModule extends AbstractModule ...@@ -24,7 +19,5 @@ public class ApplicationModule extends AbstractModule
{ {
bind(ApplicationConfiguration.class).toInstance(applicationConfiguration); bind(ApplicationConfiguration.class).toInstance(applicationConfiguration);
bind(Datastore.class).toInstance(new DatastoreProvider(applicationConfiguration).getDatastore()); bind(Datastore.class).toInstance(new DatastoreProvider(applicationConfiguration).getDatastore());
bind(MessageDigest.class).annotatedWith(Names.named("messageDigest"))
.toInstance(new MessageDigestProvider(applicationConfiguration).getMessageDigest());
} }
} }
package com.telephoners.krakyournet.ctf.providers; package com.telephoners.krakyournet.ctf.providers;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration; import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
@Singleton
public class MessageDigestProvider public class MessageDigestProvider
{ {
private ApplicationConfiguration applicationConfiguration; private ApplicationConfiguration applicationConfiguration;
@Inject
public MessageDigestProvider(ApplicationConfiguration applicationConfiguration) public MessageDigestProvider(ApplicationConfiguration applicationConfiguration)
{ {
this.applicationConfiguration = applicationConfiguration; this.applicationConfiguration = applicationConfiguration;
......
...@@ -2,24 +2,22 @@ package com.telephoners.krakyournet.ctf.repositories; ...@@ -2,24 +2,22 @@ package com.telephoners.krakyournet.ctf.repositories;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import com.google.inject.name.Named;
import com.telephoners.krakyournet.ctf.beans.User; import com.telephoners.krakyournet.ctf.beans.User;
import com.telephoners.krakyournet.ctf.providers.MessageDigestProvider;
import io.dropwizard.auth.basic.BasicCredentials; import io.dropwizard.auth.basic.BasicCredentials;
import org.apache.commons.codec.binary.Hex; import org.apache.commons.codec.binary.Hex;
import org.mongodb.morphia.Datastore; import org.mongodb.morphia.Datastore;
import java.security.MessageDigest;
@Singleton @Singleton
public class UsersRepository extends Repository<User> public class UsersRepository extends Repository<User>
{ {
private MessageDigest messageDigest; private MessageDigestProvider messageDigestProvider;
@Inject @Inject
public UsersRepository(Datastore datastore, final @Named("messageDigest") MessageDigest messageDigest) public UsersRepository(Datastore datastore, MessageDigestProvider messageDigestProvider)
{ {
super(datastore); super(datastore);
this.messageDigest = messageDigest; this.messageDigestProvider = messageDigestProvider;
} }
public User getUserByName(String username) public User getUserByName(String username)
...@@ -33,7 +31,7 @@ public class UsersRepository extends Repository<User> ...@@ -33,7 +31,7 @@ public class UsersRepository extends Repository<User>
{ {
return datastore.createQuery(User.class) return datastore.createQuery(User.class)
.field("name").equal(basicCredentials.getUsername()) .field("name").equal(basicCredentials.getUsername())
.field("password").equal(Hex.encodeHexString(messageDigest.digest(basicCredentials.getPassword().getBytes()))) .field("password").equal(Hex.encodeHexString(messageDigestProvider.getMessageDigest().digest(basicCredentials.getPassword().getBytes())))
.get(); .get();
} }
} }
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