SAML SubjectGenerator
This commit is contained in:
@@ -50,24 +50,27 @@ public class SubjectGenerator {
|
||||
int validInSeconds,
|
||||
UserInfo userInfo) {
|
||||
String nameIdValue = userInfo.getUsername();
|
||||
String nameIDType = NameIDType.UNSPECIFIED;
|
||||
if(saml20Details.getNameidFormat().equalsIgnoreCase("persistent")) {
|
||||
|
||||
nameIDType = NameIDType.PERSISTENT;
|
||||
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("transient")) {
|
||||
|
||||
nameIDType = NameIDType.TRANSIENT;
|
||||
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("unspecified")) {
|
||||
|
||||
nameIDType = NameIDType.UNSPECIFIED;
|
||||
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("emailAddress")) {
|
||||
if(userInfo.getEmail()!=null && !userInfo.getEmail().equals("")) {
|
||||
nameIdValue = userInfo.getEmail();
|
||||
}
|
||||
nameIDType = NameIDType.EMAIL;
|
||||
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("X509SubjectName")) {
|
||||
|
||||
nameIDType = NameIDType.X509_SUBJECT;
|
||||
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("WindowsDomainQualifiedName")) {
|
||||
if(userInfo.getWindowsAccount()!=null && !userInfo.getWindowsAccount().equals("")) {
|
||||
nameIdValue = userInfo.getWindowsAccount();
|
||||
}
|
||||
nameIDType = NameIDType.WIN_DOMAIN_QUALIFIED;
|
||||
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("entity")) {
|
||||
|
||||
nameIDType = NameIDType.ENTITY;
|
||||
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("custom")) {
|
||||
|
||||
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("Mobile")) {
|
||||
@@ -92,7 +95,7 @@ public class SubjectGenerator {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
NameID nameID =builderNameID(nameIdValue,assertionConsumerURL);
|
||||
NameID nameID = builderNameID(nameIdValue,assertionConsumerURL,nameIDType);
|
||||
Subject subject =builderSubject(nameID);
|
||||
|
||||
String clientAddress=WebContext.getRequestIpAddress(WebContext.getRequest());
|
||||
@@ -107,12 +110,12 @@ public class SubjectGenerator {
|
||||
return subject;
|
||||
}
|
||||
|
||||
public NameID builderNameID(String value,String strSPNameQualifier){
|
||||
public NameID builderNameID(String value,String strSPNameQualifier,String nameIDType){
|
||||
//Response/Assertion/Subject/NameID
|
||||
NameID nameID = new NameIDBuilder().buildObject();
|
||||
nameID.setValue(value);
|
||||
//nameID.setFormat(NameIDType.PERSISTENT);
|
||||
nameID.setFormat(NameIDType.UNSPECIFIED);
|
||||
nameID.setFormat(nameIDType);
|
||||
//nameID.setSPNameQualifier(strSPNameQualifier);
|
||||
|
||||
return nameID;
|
||||
|
||||
Reference in New Issue
Block a user