<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:08:36 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>[AAA-87] AAA sometimes falsely authorizes user to restricted endpoint</title>
                <link>https://jira.opendaylight.org/browse/AAA-87</link>
                <project id="10102" key="AAA">aaa</project>
                    <description>&lt;p&gt;AAA Authorization may falsely authorize user to a Shiro-restricted endpoint.  In the current design, there is a cached User since it was incorrectly assumed that &quot;doGetAuthorizationInfo()&quot; was called directly after &quot;doGetAuthenticationInfo()&quot; for a given request.  However, since multiple threads may access the TokenAuthRealm, there is a case for interleaving.  This should be fixed by modifying the Principal object returned by &quot;doGetAuthenticationInfo()&quot; to return appropriate information.&lt;/p&gt;

&lt;p&gt;This is an unpolished script that shows this behavior:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;ryan@awesomeo ~&amp;#93;&lt;/span&gt;$ cat test.py &lt;br/&gt;
import Queue&lt;br/&gt;
import threading&lt;br/&gt;
import requests&lt;/p&gt;

&lt;p&gt;url = &apos;http://localhost:8181/restconf/modules/&apos;&lt;br/&gt;
class myThread (threading.Thread):&lt;br/&gt;
    def _&lt;em&gt;init&lt;/em&gt;_(self, user, password):&lt;br/&gt;
        threading.Thread._&lt;em&gt;init&lt;/em&gt;_(self)&lt;br/&gt;
        self.user = user&lt;br/&gt;
        self.password = password&lt;br/&gt;
    def run(self):&lt;br/&gt;
        self.doget()&lt;br/&gt;
    def doget(self):&lt;br/&gt;
        resp = requests.get(url, auth=(self.user,self.password))&lt;br/&gt;
        if self.user==&apos;admin&apos;:&lt;br/&gt;
            if resp.status_code != 200:&lt;br/&gt;
                print &quot;error &quot; + str(resp.status_code)&lt;br/&gt;
        else:&lt;br/&gt;
            if resp.status_code != 401:&lt;br/&gt;
                print &quot;error2 &quot; + str(resp.status_code)&lt;/p&gt;


&lt;p&gt;if _&lt;em&gt;name&lt;/em&gt;&lt;em&gt;==&apos;&lt;/em&gt;&lt;em&gt;main&lt;/em&gt;_&apos;:&lt;br/&gt;
    threads = []&lt;br/&gt;
    q = Queue.Queue()&lt;br/&gt;
    for i in range(0,100):&lt;br/&gt;
        thread = myThread( &apos;admin&apos;, &apos;admin&apos; )&lt;br/&gt;
        thread2 = myThread( &apos;user&apos;, &apos;user&apos; )&lt;br/&gt;
        thread3 = myThread(&apos;admin&apos;,&apos;admin&apos;)&lt;br/&gt;
        thread.start()&lt;br/&gt;
        thread2.start()&lt;br/&gt;
        thread3.start()&lt;br/&gt;
        threads.append(thread)&lt;br/&gt;
        threads.append(thread2)&lt;br/&gt;
        threads.append(thread3)&lt;br/&gt;
    for t in threads:&lt;br/&gt;
        t.join()&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ryan@awesomeo ~&amp;#93;&lt;/span&gt;$ &lt;/p&gt;


&lt;p&gt;In the future, this script should be added to CSIT, but due to time constraints was tested manually.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="22338">AAA-87</key>
            <summary>AAA sometimes falsely authorizes user to restricted endpoint</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="rgoulding">Ryan Goulding</assignee>
                                    <reporter username="rgoulding">Ryan Goulding</reporter>
                        <labels>
                    </labels>
                <created>Wed, 20 Jan 2016 16:31:57 +0000</created>
                <updated>Thu, 21 Mar 2019 11:56:45 +0000</updated>
                            <resolved>Tue, 26 Jan 2016 20:02:34 +0000</resolved>
                                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>0</watches>
                                                                                                                <comments>
                            <comment id="42327" author="rgoulding" created="Wed, 20 Jan 2016 16:39:17 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/33109/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/33109/&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5033</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=5033]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i0240n:</customfieldvalue>

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