[jboss-jira] [JBoss JIRA] (WFLY-12836) Large allocations in EJBContextImpl#isCallerInRole

Ashley Abdel-Sayed (Jira) issues at jboss.org
Mon Jan 13 12:30:15 EST 2020


     [ https://issues.redhat.com/browse/WFLY-12836?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ashley Abdel-Sayed reassigned WFLY-12836:
-----------------------------------------

    Assignee: Ashley Abdel-Sayed  (was: Cheng Fang)


> Large allocations in EJBContextImpl#isCallerInRole
> --------------------------------------------------
>
>                 Key: WFLY-12836
>                 URL: https://issues.redhat.com/browse/WFLY-12836
>             Project: WildFly
>          Issue Type: Bug
>          Components: EJB, Security
>    Affects Versions: 18.0.1.Final
>            Reporter: Philippe Marschall
>            Assignee: Ashley Abdel-Sayed
>            Priority: Major
>         Attachments: elytron_allocations_redacted.PNG
>
>
> In our application we have the need to know the roles of the current user. We would like to do this using Java / Jakarta EE APIs rather than rely on WildFly implementation classes. We do this by iterating over all roles, which we know statically, and calling {{EJBContext#isCallerInRole}} for each one. This seem to be a common technique, see [How to get user roles in a JSP / Servlet|https://stackoverflow.com/questions/344117/how-to-get-user-roles-in-a-jsp-servlet].
> That's about 100 roles for us. We were expecting that would be a lookup into a {{HashMap}} or similar with O(1) complexity and almost no allocations.
> This however does not seem to be case as {{EJBContextImpl#isCallerInRole}} seems to do the role mapping for every call. This results in a large amount of allocations. In our case this completely dominates our allocation profile. See attached screenshot from JFR.



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the jboss-jira mailing list