提交 9bf04827 编写于 作者: M MaxKey

SAML SubjectGenerator

上级 3eb72ae2
...@@ -50,24 +50,27 @@ public class SubjectGenerator { ...@@ -50,24 +50,27 @@ public class SubjectGenerator {
int validInSeconds, int validInSeconds,
UserInfo userInfo) { UserInfo userInfo) {
String nameIdValue = userInfo.getUsername(); String nameIdValue = userInfo.getUsername();
String nameIDType = NameIDType.UNSPECIFIED;
if(saml20Details.getNameidFormat().equalsIgnoreCase("persistent")) { if(saml20Details.getNameidFormat().equalsIgnoreCase("persistent")) {
nameIDType = NameIDType.PERSISTENT;
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("transient")) { }else if(saml20Details.getNameidFormat().equalsIgnoreCase("transient")) {
nameIDType = NameIDType.TRANSIENT;
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("unspecified")) { }else if(saml20Details.getNameidFormat().equalsIgnoreCase("unspecified")) {
nameIDType = NameIDType.UNSPECIFIED;
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("emailAddress")) { }else if(saml20Details.getNameidFormat().equalsIgnoreCase("emailAddress")) {
if(userInfo.getEmail()!=null && !userInfo.getEmail().equals("")) { if(userInfo.getEmail()!=null && !userInfo.getEmail().equals("")) {
nameIdValue = userInfo.getEmail(); nameIdValue = userInfo.getEmail();
} }
nameIDType = NameIDType.EMAIL;
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("X509SubjectName")) { }else if(saml20Details.getNameidFormat().equalsIgnoreCase("X509SubjectName")) {
nameIDType = NameIDType.X509_SUBJECT;
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("WindowsDomainQualifiedName")) { }else if(saml20Details.getNameidFormat().equalsIgnoreCase("WindowsDomainQualifiedName")) {
if(userInfo.getWindowsAccount()!=null && !userInfo.getWindowsAccount().equals("")) { if(userInfo.getWindowsAccount()!=null && !userInfo.getWindowsAccount().equals("")) {
nameIdValue = userInfo.getWindowsAccount(); nameIdValue = userInfo.getWindowsAccount();
} }
nameIDType = NameIDType.WIN_DOMAIN_QUALIFIED;
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("entity")) { }else if(saml20Details.getNameidFormat().equalsIgnoreCase("entity")) {
nameIDType = NameIDType.ENTITY;
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("custom")) { }else if(saml20Details.getNameidFormat().equalsIgnoreCase("custom")) {
}else if(saml20Details.getNameidFormat().equalsIgnoreCase("Mobile")) { }else if(saml20Details.getNameidFormat().equalsIgnoreCase("Mobile")) {
...@@ -92,7 +95,7 @@ public class SubjectGenerator { ...@@ -92,7 +95,7 @@ public class SubjectGenerator {
//do nothing //do nothing
} }
NameID nameID =builderNameID(nameIdValue,assertionConsumerURL); NameID nameID = builderNameID(nameIdValue,assertionConsumerURL,nameIDType);
Subject subject =builderSubject(nameID); Subject subject =builderSubject(nameID);
String clientAddress=WebContext.getRequestIpAddress(WebContext.getRequest()); String clientAddress=WebContext.getRequestIpAddress(WebContext.getRequest());
...@@ -107,12 +110,12 @@ public class SubjectGenerator { ...@@ -107,12 +110,12 @@ public class SubjectGenerator {
return subject; return subject;
} }
public NameID builderNameID(String value,String strSPNameQualifier){ public NameID builderNameID(String value,String strSPNameQualifier,String nameIDType){
//Response/Assertion/Subject/NameID //Response/Assertion/Subject/NameID
NameID nameID = new NameIDBuilder().buildObject(); NameID nameID = new NameIDBuilder().buildObject();
nameID.setValue(value); nameID.setValue(value);
//nameID.setFormat(NameIDType.PERSISTENT); //nameID.setFormat(NameIDType.PERSISTENT);
nameID.setFormat(NameIDType.UNSPECIFIED); nameID.setFormat(nameIDType);
//nameID.setSPNameQualifier(strSPNameQualifier); //nameID.setSPNameQualifier(strSPNameQualifier);
return nameID; return nameID;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册