11package com .onelogin .saml2 .settings ;
22
3+ import static com .onelogin .saml2 .util .Util .toXml ;
4+
35import java .net .URL ;
46import java .util .Arrays ;
57import java .util .Calendar ;
@@ -146,7 +148,7 @@ private StrSubstitutor generateSubstitutor(Saml2Settings settings) throws Certif
146148 Map <String , String > valueMap = new HashMap <String , String >();
147149 Boolean wantsEncrypted = settings .getWantAssertionsEncrypted () || settings .getWantNameIdEncrypted ();
148150
149- valueMap .put ("id" , Util .generateUniqueID (settings .getUniqueIDPrefix ()));
151+ valueMap .put ("id" , Util .toXml ( Util . generateUniqueID (settings .getUniqueIDPrefix () )));
150152 String validUntilTimeStr = "" ;
151153 if (validUntilTime != null ) {
152154 String validUntilTimeValue = Util .formatDateTime (validUntilTime .getTimeInMillis ());
@@ -161,12 +163,12 @@ private StrSubstitutor generateSubstitutor(Saml2Settings settings) throws Certif
161163 }
162164 valueMap .put ("cacheDurationStr" , cacheDurationStr );
163165
164- valueMap .put ("spEntityId" , settings .getSpEntityId ());
166+ valueMap .put ("spEntityId" , Util . toXml ( settings .getSpEntityId () ));
165167 valueMap .put ("strAuthnsign" , String .valueOf (settings .getAuthnRequestsSigned ()));
166168 valueMap .put ("strWsign" , String .valueOf (settings .getWantAssertionsSigned ()));
167- valueMap .put ("spNameIDFormat" , settings .getSpNameIDFormat ());
168- valueMap .put ("spAssertionConsumerServiceBinding" , settings .getSpAssertionConsumerServiceBinding ());
169- valueMap .put ("spAssertionConsumerServiceUrl" , settings .getSpAssertionConsumerServiceUrl ().toString ());
169+ valueMap .put ("spNameIDFormat" , Util . toXml ( settings .getSpNameIDFormat () ));
170+ valueMap .put ("spAssertionConsumerServiceBinding" , Util . toXml ( settings .getSpAssertionConsumerServiceBinding () ));
171+ valueMap .put ("spAssertionConsumerServiceUrl" , Util . toXml ( settings .getSpAssertionConsumerServiceUrl ().toString () ));
170172 valueMap .put ("sls" , toSLSXml (settings .getSpSingleLogoutServiceUrl (), settings .getSpSingleLogoutServiceBinding ()));
171173
172174 valueMap .put ("strAttributeConsumingService" , getAttributeConsumingServiceXml ());
@@ -218,10 +220,10 @@ private String getAttributeConsumingServiceXml() {
218220
219221 attributeConsumingServiceXML .append ("<md:AttributeConsumingService index=\" 1\" >" );
220222 if (serviceName != null && !serviceName .isEmpty ()) {
221- attributeConsumingServiceXML .append ("<md:ServiceName xml:lang=\" en\" >" + serviceName + "</md:ServiceName>" );
223+ attributeConsumingServiceXML .append ("<md:ServiceName xml:lang=\" en\" >" + Util . toXml ( serviceName ) + "</md:ServiceName>" );
222224 }
223225 if (serviceDescription != null && !serviceDescription .isEmpty ()) {
224- attributeConsumingServiceXML .append ("<md:ServiceDescription xml:lang=\" en\" >" + serviceDescription + "</md:ServiceDescription>" );
226+ attributeConsumingServiceXML .append ("<md:ServiceDescription xml:lang=\" en\" >" + Util . toXml ( serviceDescription ) + "</md:ServiceDescription>" );
225227 }
226228 if (requestedAttributes != null && !requestedAttributes .isEmpty ()) {
227229 for (RequestedAttribute requestedAttribute : requestedAttributes ) {
@@ -234,15 +236,15 @@ private String getAttributeConsumingServiceXml() {
234236 String contentStr = "<md:RequestedAttribute" ;
235237
236238 if (name != null && !name .isEmpty ()) {
237- contentStr += " Name=\" " + name + "\" " ;
239+ contentStr += " Name=\" " + Util . toXml ( name ) + "\" " ;
238240 }
239241
240242 if (nameFormat != null && !nameFormat .isEmpty ()) {
241- contentStr += " NameFormat=\" " + nameFormat + "\" " ;
243+ contentStr += " NameFormat=\" " + Util . toXml ( nameFormat ) + "\" " ;
242244 }
243245
244246 if (friendlyName != null && !friendlyName .isEmpty ()) {
245- contentStr += " FriendlyName=\" " + friendlyName + "\" " ;
247+ contentStr += " FriendlyName=\" " + Util . toXml ( friendlyName ) + "\" " ;
246248 }
247249
248250 if (isRequired != null ) {
@@ -252,7 +254,7 @@ private String getAttributeConsumingServiceXml() {
252254 if (attrValues != null && !attrValues .isEmpty ()) {
253255 contentStr += ">" ;
254256 for (String attrValue : attrValues ) {
255- contentStr += "<saml:AttributeValue xmlns:saml=\" urn:oasis:names:tc:SAML:2.0:assertion\" >" + attrValue + "</saml:AttributeValue>" ;
257+ contentStr += "<saml:AttributeValue xmlns:saml=\" urn:oasis:names:tc:SAML:2.0:assertion\" >" + Util . toXml ( attrValue ) + "</saml:AttributeValue>" ;
256258 }
257259 attributeConsumingServiceXML .append (contentStr + "</md:RequestedAttribute>" );
258260 } else {
@@ -276,9 +278,9 @@ private String toContactsXml(List<Contact> contacts) {
276278 StringBuilder contactsXml = new StringBuilder ();
277279
278280 for (Contact contact : contacts ) {
279- contactsXml .append ("<md:ContactPerson contactType=\" " + contact .getContactType () + "\" >" );
280- contactsXml .append ("<md:GivenName>" + contact .getGivenName () + "</md:GivenName>" );
281- contactsXml .append ("<md:EmailAddress>" + contact .getEmailAddress () + "</md:EmailAddress>" );
281+ contactsXml .append ("<md:ContactPerson contactType=\" " + Util . toXml ( contact .getContactType () ) + "\" >" );
282+ contactsXml .append ("<md:GivenName>" + Util . toXml ( contact .getGivenName () ) + "</md:GivenName>" );
283+ contactsXml .append ("<md:EmailAddress>" + Util . toXml ( contact .getEmailAddress () ) + "</md:EmailAddress>" );
282284 contactsXml .append ("</md:ContactPerson>" );
283285 }
284286
@@ -296,10 +298,10 @@ private String toOrganizationXml(Organization organization) {
296298
297299 if (organization != null ) {
298300 String lang = organization .getOrgLangAttribute ();
299- orgXml = "<md:Organization><md:OrganizationName xml:lang=\" " + lang + "\" >" + organization .getOrgName ()
300- + "</md:OrganizationName><md:OrganizationDisplayName xml:lang=\" " + lang + "\" >"
301- + organization .getOrgDisplayName () + "</md:OrganizationDisplayName><md:OrganizationURL xml:lang=\" "
302- + lang + "\" >" + organization .getOrgUrl () + "</md:OrganizationURL></md:Organization>" ;
301+ orgXml = "<md:Organization><md:OrganizationName xml:lang=\" " + Util . toXml ( lang ) + "\" >" + Util . toXml ( organization .getOrgName () )
302+ + "</md:OrganizationName><md:OrganizationDisplayName xml:lang=\" " + Util . toXml ( lang ) + "\" >"
303+ + Util . toXml ( organization .getOrgDisplayName () ) + "</md:OrganizationDisplayName><md:OrganizationURL xml:lang=\" "
304+ + Util . toXml ( lang ) + "\" >" + Util . toXml ( organization .getOrgUrl () ) + "</md:OrganizationURL></md:Organization>" ;
303305 }
304306 return orgXml ;
305307 }
@@ -363,8 +365,8 @@ private String toSLSXml(URL spSingleLogoutServiceUrl, String spSingleLogoutServi
363365 StringBuilder slsXml = new StringBuilder ();
364366
365367 if (spSingleLogoutServiceUrl != null ) {
366- slsXml .append ("<md:SingleLogoutService Binding=\" " + spSingleLogoutServiceBinding + "\" " );
367- slsXml .append (" Location=\" " + spSingleLogoutServiceUrl .toString () + "\" />" );
368+ slsXml .append ("<md:SingleLogoutService Binding=\" " + Util . toXml ( spSingleLogoutServiceBinding ) + "\" " );
369+ slsXml .append (" Location=\" " + Util . toXml ( spSingleLogoutServiceUrl .toString () ) + "\" />" );
368370 }
369371 return slsXml .toString ();
370372 }
0 commit comments