summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/session/Authenticator.java
diff options
context:
space:
mode:
authorNils Schwabe2014-05-05 14:56:24 +0200
committerNils Schwabe2014-05-05 14:56:24 +0200
commit65cd27a324a80a4ed956aaf68fe68ed8a939a3af (patch)
tree4ee402305cf17ab6dbff23c3e994dc0f280bc868 /src/main/java/org/openslx/imagemaster/session/Authenticator.java
parentRemoved todo from LDAPUser (diff)
downloadmasterserver-65cd27a324a80a4ed956aaf68fe68ed8a939a3af.tar.gz
masterserver-65cd27a324a80a4ed956aaf68fe68ed8a939a3af.tar.xz
masterserver-65cd27a324a80a4ed956aaf68fe68ed8a939a3af.zip
Add login can be in format prefix_userid OR userid@organization
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/session/Authenticator.java')
-rw-r--r--src/main/java/org/openslx/imagemaster/session/Authenticator.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/main/java/org/openslx/imagemaster/session/Authenticator.java b/src/main/java/org/openslx/imagemaster/session/Authenticator.java
index 9924caf..3378662 100644
--- a/src/main/java/org/openslx/imagemaster/session/Authenticator.java
+++ b/src/main/java/org/openslx/imagemaster/session/Authenticator.java
@@ -1,6 +1,7 @@
package org.openslx.imagemaster.session;
import org.apache.log4j.Logger;
+import org.openslx.imagemaster.db.DbSatellite;
import org.openslx.imagemaster.db.DbUser;
import org.openslx.imagemaster.db.LdapUser;
import org.openslx.imagemaster.thrift.iface.AuthenticationError;
@@ -26,8 +27,18 @@ public class Authenticator
// throw new AuthenticationException( AuthenticationError.INVALID_CREDENTIALS, "Invalid username or password!" );
// }
// log.debug( "Login successful: " + username );
+
+ String prefix = "";
+ if (username.split( "@" ).length == 2) {
+ // we are in userid@organization format
+ // --> get prefix
+ DbSatellite satellite = DbSatellite.fromOrganization( username.split( "@" )[1] );
+ if (satellite == null)
+ throw new AuthenticationException( AuthenticationError.INVALID_CREDENTIALS, "Unkown Organization" );
+ prefix = satellite.getPrefix();
+ }
- LdapUser user = LdapUser.forLogin( username, password ); // throws exception if credentials are invalid
+ LdapUser user = LdapUser.forLogin( prefix + "_" + username.split( "@" )[0], password ); // throws exception if credentials are invalid
if ( user == null ) {
log.debug( "Login failed: " + username );
throw new AuthenticationException( AuthenticationError.GENERIC_ERROR, "Could not login because of a weird error." );