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