diff options
author | Nils Schwabe | 2014-05-05 14:56:24 +0200 |
---|---|---|
committer | Nils Schwabe | 2014-05-05 14:56:24 +0200 |
commit | 65cd27a324a80a4ed956aaf68fe68ed8a939a3af (patch) | |
tree | 4ee402305cf17ab6dbff23c3e994dc0f280bc868 /src/main/java/org/openslx/imagemaster/session/Authenticator.java | |
parent | Removed todo from LDAPUser (diff) | |
download | masterserver-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.java | 13 |
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." ); |