diff options
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/session/Authenticator.java')
-rw-r--r-- | src/main/java/org/openslx/imagemaster/session/Authenticator.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/main/java/org/openslx/imagemaster/session/Authenticator.java b/src/main/java/org/openslx/imagemaster/session/Authenticator.java index 85f56b2..0796188 100644 --- a/src/main/java/org/openslx/imagemaster/session/Authenticator.java +++ b/src/main/java/org/openslx/imagemaster/session/Authenticator.java @@ -30,20 +30,24 @@ public class Authenticator String login = username; if (username.split( "@" ).length == 2) { + log.info( "username is in username@organization format" ); // 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" ); + throw new AuthenticationException( AuthenticationError.INVALID_CREDENTIALS, "Unkown Organization." ); login = satellite.getPrefix() + "_" + username.split( "@" )[0]; + } else if (username.split( "_" ).length != 2) { + log.info( "username is not in a valid format." ); + throw new AuthenticationException(AuthenticationError.INVALID_CREDENTIALS, "Credentials must be in (username@organization) or (prefix@username)"); } - log.info( "Loggin in with: " + login ); + log.info( "Logging in with: " + login ); LdapUser user = LdapUser.forLogin( login, 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." ); + throw new AuthenticationException( AuthenticationError.GENERIC_ERROR, "Something went wrong." ); } log.debug( "Login succesful: " + username ); |