<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:11:06 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[MDSAL-839] Integrate java.security.Principal into request APIs</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-839</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;We completely lack security awareness in our APIs. We should do better. &lt;/p&gt;

&lt;p&gt;Our current APIs completely ignore the question of who is making the request, leaving validation to upper layers, exposed outside requests.&lt;/p&gt;

&lt;p&gt;This makes for quite some trouble for implementations. Let us say our AAA project wants to expose an requestor-sensitive DataBroker (performing, for example netconf-acm-based request filtering) and our NETCONF project wants to use this DataBroker, off-loading the AAA decisions.&lt;/p&gt;

&lt;p&gt;restconf-nb does have the access to javax.ws.rs.core.SecurityContext, which exposes the requesting user as a java.security.Principal, but it has no way of communicating it to the DataBroker instance it is using.&lt;/p&gt;

&lt;p&gt;From solution space, we want to cause minimum churn to downstream users, while extending introducing this awareness.&lt;/p&gt;

&lt;p&gt;I think we want to introduce intermediate DataBrokerFactory, RpcConsumerRegistryFactory, ActionServiceFactory and others as the baseline interfaces. Users would inject these through OSGi DS and then either use them directly (RESTCONF) or provide an explicit application-specific Principal to get DataBroker, RpcConsumerRegistry or ActionService.&lt;/p&gt;

&lt;p&gt;For such application-level Principals, each application would describe its access model &amp;#8211; i.e. which data it reads, which data it writes, which RPCs it implements and which notifications it produces/consumes &amp;#8211; and get an DataBroker (or other interface) based on that description.&lt;/p&gt;

&lt;p&gt;Proposed factories would then produce DataBroker et al. interfaces which check each access to conform with the specification, perhaps somehow exposing a java.security.Permission to the actual invocation.&lt;/p&gt;</description>
                <environment></environment>
        <key id="37400">MDSAL-839</key>
            <summary>Integrate java.security.Principal into request APIs</summary>
                <type id="10103" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10311&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="1" iconUrl="https://jira.opendaylight.org/images/icons/priorities/blocker.svg">Highest</priority>
                        <status id="10003" iconUrl="https://jira.opendaylight.org/images/icons/status_generic.gif" description="">Confirmed</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                            <label>pt</label>
                    </labels>
                <created>Mon, 18 Sep 2023 22:24:40 +0000</created>
                <updated>Tue, 9 Jan 2024 09:10:09 +0000</updated>
                                                            <fixVersion>14.0.0</fixVersion>
                                    <component>Binding API</component>
                    <component>DOM API</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                        <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i046j3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>