All queries getting executed
Mathew, Sunil
smathew at hbs.edu
Thu Dec 8 23:16:39 UTC 2022
Hi,
We have an issue where all queries defined in attribute-resolver.xml is getting executed even though they are not defined in attribute-filter.xml for that endpoint.
attribute-filter.xml
<!-- ============================================== -->
<!-- Canvas BETA -->
<!-- ============================================== -->
<AttributeFilterPolicy id="CanvasBeta">
<PolicyRequirementRule xsi:type="Requester" value="http://hbs.instructure.com/saml2" />
<AttributeRule attributeID="canvas_name_id" permitAny="true" />
</AttributeFilterPolicy>
attribute-filter.xml
<!-- ===================START Canvas================== -->
<AttributeDefinition xsi:type="PrincipalName" id="canvas_name_id">
<AttributeEncoder xsi:type="SAML1String" name="canvas_name_id" encodeType="false" />
<AttributeEncoder xsi:type="SAML2String" name="canvas_name_id" encodeType="false" />
</AttributeDefinition>
<!-- ===================END Canvas==================== -->
<DataConnector id="entDB" xsi:type="RelationalDatabase">
<ContainerManagedConnection resourceName="java:comp/env/jdbc/idpDS" />
<QueryTemplate>
<![CDATA[
select givenname as GIVENNAME, surname as SURNAME, surname || ', ' || givenname as FULLNAME,
nvl(HBS_EMAIL, LEFA_EMAIL) as VALUE,
SUBSTR(nvl(HBS_EMAIL, LEFA_EMAIL), 0, INSTR(nvl(HBS_EMAIL, LEFA_EMAIL), '@')-1) AS USERNAME from (
select a.pref_first_name as givenname, a.pref_last_name as surname,
(select value from BV_INET_ADDR where nvl(END_DATE,SYSDATE)>=SYSDATE
and PRIMARY_ADDR_TYPE_FLAG='T'
and HBS_FLAG='T'
and ADDR_SUBTYPE_CODE = 'EM'
AND PRSN_ID=a.prsn_id) AS HBS_EMAIL, (select value from BV_INET_ADDR where nvl(END_DATE,SYSDATE)>=SYSDATE
and PRIMARY_ADDR_TYPE_FLAG='T'
and HBS_FLAG='T'
and ADDR_SUBTYPE_CODE = 'LF'
AND PRSN_ID=a.prsn_id) AS LEFA_EMAIL
from bt_prsn a
where a.PRSN_ID= $resolutionContext.principal
)
]]>
</QueryTemplate>
<Column columnName="VALUE" attributeID="VALUE"/>
<Column columnName="GIVENNAME" attributeID="GIVENNAME"/>
<Column columnName="SURNAME" attributeID="SURNAME"/>
<Column columnName="FULLNAME" attributeID="FULLNAME" />
<Column columnName="USERNAME" attributeID="USERNAME" />
</DataConnector>
<DataConnector id="zoomPersonProfileDB" xsi:type="RelationalDatabase">
...
</DataConnector>
<DataConnector id="entMainDB" xsi:type="RelationalDatabase">
...
</DataConnector>
<DataConnector id="entPDB" xsi:type="RelationalDatabase">
...
</DataConnector>
<DataConnector id="entVDB" xsi:type="RelationalDatabase">
...
</DataConnector>
<DataConnector id="entADB" xsi:type="RelationalDatabase">
...
</DataConnector>
<DataConnector id="entRDB" xsi:type="RelationalDatabase">
...
</DataConnector>
<DataConnector id="entZoomRoleDB" xsi:type="RelationalDatabase">
...
</DataConnector>
<DataConnector id="advanceDB" xsi:type="RelationalDatabase">
...
</DataConnector>
<DataConnector id="divisionDB" xsi:type="RelationalDatabase">
...
</DataConnector>
We have a few queries for multiple endpoints. Even though Canvas does not use any of the database values, all the queries are still getting executed. How can I have only the relevant queries get executed when SSO is attempted (in the case of Canvas none).
Regards,
Sunil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/users/attachments/20221208/fd645254/attachment.htm>
More information about the users
mailing list