summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/session/Authenticator.java
diff options
context:
space:
mode:
authorSimon Rettberg2014-03-28 17:51:24 +0100
committerSimon Rettberg2014-03-28 17:51:24 +0100
commitfbbfee0a32ce83f5bfe36d78eddafed7226a041c (patch)
treef3d44e8b9e2bca678165cb3dd97ec1aa1380f244 /src/main/java/org/openslx/imagemaster/session/Authenticator.java
downloadmasterserver-fbbfee0a32ce83f5bfe36d78eddafed7226a041c.tar.gz
masterserver-fbbfee0a32ce83f5bfe36d78eddafed7226a041c.tar.xz
masterserver-fbbfee0a32ce83f5bfe36d78eddafed7226a041c.zip
Initial Commit
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/session/Authenticator.java')
-rw-r--r--src/main/java/org/openslx/imagemaster/session/Authenticator.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/imagemaster/session/Authenticator.java b/src/main/java/org/openslx/imagemaster/session/Authenticator.java
new file mode 100644
index 0000000..f730c72
--- /dev/null
+++ b/src/main/java/org/openslx/imagemaster/session/Authenticator.java
@@ -0,0 +1,31 @@
+package org.openslx.imagemaster.session;
+
+import org.apache.log4j.Logger;
+import org.openslx.imagemaster.db.DbUser;
+import org.openslx.imagemaster.thrift.iface.AuthenticationError;
+import org.openslx.imagemaster.thrift.iface.AuthenticationException;
+import org.openslx.imagemaster.util.Sha512Crypt;
+
+public class Authenticator
+{
+ private static Logger log = Logger.getLogger( Authenticator.class );
+
+ /**
+ * Authenticate the user against whatever backend... currently MySQL only
+ * @param username
+ * @param password
+ * @return
+ * @throws AuthenticationException
+ */
+ public static User authenticate( String username, String password ) throws AuthenticationException
+ {
+ DbUser user = DbUser.forLogin( username );
+ if ( user == null || !Sha512Crypt.verifyPassword( password, user.password ) ) {
+ log.debug( "Login failed: " + username );
+ throw new AuthenticationException( AuthenticationError.INVALID_CREDENTIALS, "Invalid username or password!" );
+ }
+ log.debug( "Login successful: " + username );
+ return user;
+ }
+ //
+}