Skip to content

Commit 5a2142e

Browse files
authored
Merge pull request #241 from maykinmedia/attribute-consuming-service-index
Attribute consuming service index
2 parents d2114ed + 332ea51 commit 5a2142e

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,11 @@ This is the ``settings.json`` file:
256256
// attributeConsumingService. nameFormat, attributeValue and
257257
// friendlyName can be ommited
258258
"attributeConsumingService": {
259+
// OPTIONAL: only specifiy if SP requires this.
260+
// index is an integer which identifies the attributeConsumingService used
261+
// to the SP. OneLogin toolkit supports configuring only one attributeConsumingService
262+
// but in certain cases the SP requires a different value. Defaults to '1'.
263+
// "index": '1',
259264
"serviceName": "SP test",
260265
"serviceDescription": "Test Service",
261266
"requestedAttributes": [

src/onelogin/saml2/authn_request.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ def __init__(self, settings, force_authn=False, is_passive=False, set_nameid_pol
108108

109109
attr_consuming_service_str = ''
110110
if 'attributeConsumingService' in sp_data and sp_data['attributeConsumingService']:
111-
attr_consuming_service_str = "\n AttributeConsumingServiceIndex=\"1\""
111+
attr_consuming_service_str = "\n AttributeConsumingServiceIndex=\"%s\"" % sp_data['attributeConsumingService'].get('index', '1')
112112

113113
request = OneLogin_Saml2_Templates.AUTHN_REQUEST % \
114114
{

src/onelogin/saml2/metadata.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,14 +162,15 @@ def builder(cls, sp, authnsign=False, wsign=False, valid_until=None, cache_durat
162162

163163
requested_attribute_data.append(requested_attribute)
164164

165-
str_attribute_consuming_service = """ <md:AttributeConsumingService index="1">
165+
str_attribute_consuming_service = """ <md:AttributeConsumingService index="%(attribute_consuming_service_index)s">
166166
<md:ServiceName xml:lang="en">%(service_name)s</md:ServiceName>
167167
%(attr_cs_desc)s%(requested_attribute_str)s
168168
</md:AttributeConsumingService>
169169
""" % \
170170
{
171171
'service_name': sp['attributeConsumingService']['serviceName'],
172172
'attr_cs_desc': attr_cs_desc_str,
173+
'attribute_consuming_service_index': sp['attributeConsumingService'].get('index', '1'),
173174
'requested_attribute_str': '\n'.join(requested_attribute_data)
174175
}
175176

0 commit comments

Comments
 (0)