import java.io.IOException;
import java.security.Principal;
+import java.util.Set;
import javax.security.auth.Subject;
import javax.security.auth.callback.Callback;
log.debug("Successfully authenticated user {}", username);
Subject subject = jaasLoginCtx.getSubject();
- Principal principal = subject.getPrincipals().iterator().next();
- if (DatatypeHelper.isEmpty(principal.getName())) {
+ Set<Principal> principals = subject.getPrincipals();
+
+ if(principals.isEmpty()){
request.setAttribute(LoginHandler.PRINCIPAL_NAME_KEY, username);
- } else {
- request.setAttribute(LoginHandler.PRINCIPAL_NAME_KEY, principal.getName());
+ }else{
+ Principal principal = principals.iterator().next();
+ String principalName = DatatypeHelper.safeTrimOrNullString(principal.getName());
+ if(principalName == null){
+ request.setAttribute(LoginHandler.PRINCIPAL_NAME_KEY, username);
+ }else{
+ request.setAttribute(LoginHandler.PRINCIPAL_NAME_KEY, principal.getName());
+ }
+ request.setAttribute(LoginHandler.SUBJECT_KEY, jaasLoginCtx.getSubject());
}
- request.setAttribute(LoginHandler.SUBJECT_KEY, jaasLoginCtx.getSubject());
-
return true;
} catch (LoginException e) {
log.debug("User authentication failed", e);