} catch (HeaderMismatchException e) {
throw (LoginException) new LoginException("Header Mistmatch error").initCause(e);
}
if (headerMap.isEmpty()) {
throw new FailedLoginException();
}
if (authenticationAuthority.equalsIgnoreCase("Siteminder")) {
HeaderHandler headerHandler = new SiteminderHeaderHandler();
username = headerHandler.getUser(headerMap);
} else if (authenticationAuthority.equalsIgnoreCase("Datapower")) {
/* To be Done */
}
if (username == null || username.equals("")) {
username = null;
throw new FailedLoginException();
}
if (username != null) {
for (Map.Entry<String, Set<String>> entry : roleUsersMap.entrySet()) {
String groupName = entry.getKey();
Set<String> users = entry.getValue();
for (String user : users) {
if (username.equals(user)) {
groups.add(groupName);
break;
}
}
}
}
if (groups.isEmpty()) {
log.error("No roles associated with user " + username);
loginSucceeded = false;
throw new FailedLoginException();
} else
loginSucceeded = true;
return loginSucceeded;
}