Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-61241

PermissionManager doesn't handle the wildcard "anyone" group

    XMLWordPrintable

Details

    Description

      This bug applies to the com.atlassian.jira.security.PermissionManager

      1. Create a project with key "TEST"
      2. Update the Permission Scheme of that project so that the "Anyone" wildcard group has Work On Issue permissions (see attached image)
      3. Execute the following code (using the ScriptRunner console or stick the code below in an add-on):

      import com.atlassian.jira.component.ComponentAccessor
      import com.atlassian.jira.security.PermissionManager
      import com.atlassian.jira.project.ProjectManager
      import com.atlassian.jira.security.Permissions
      import com.atlassian.crowd.embedded.api.Group
      
      ProjectManager projectManager = ComponentAccessor.getProjectManager();
      PermissionManager permissionManager = ComponentAccessor.getPermissionManager();
      Collection<Group> availableGroups = permissionManager.getAllGroups(Permissions.WORK_ISSUE, projectManager.getProjectByCurrentKey("TEST"));
      

      You'll get the following stack trace:

      [INFO] [talledLocalContainer] java.lang.NullPointerException: name argument cannot be null
      [INFO] [talledLocalContainer] 	at org.apache.commons.lang3.Validate.notNull(Validate.java:222)
      [INFO] [talledLocalContainer] 	at com.atlassian.crowd.directory.AbstractInternalDirectory.findGroupByName(AbstractInternalDirectory.java:786)
      [INFO] [talledLocalContainer] 	at com.atlassian.crowd.directory.AbstractInternalDirectory.findGroupByName(AbstractInternalDirectory.java:64)
      [INFO] [talledLocalContainer] 	at com.atlassian.crowd.manager.directory.DirectoryManagerGeneric.findGroupByName(DirectoryManagerGeneric.java:484)
      [INFO] [talledLocalContainer] 	at com.atlassian.crowd.manager.application.ApplicationServiceGeneric.findGroupByName(ApplicationServiceGeneric.java:890)
      [INFO] [talledLocalContainer] 	at com.atlassian.crowd.embedded.core.CrowdServiceImpl.getGroup(CrowdServiceImpl.java:128)
      [INFO] [talledLocalContainer] 	at com.atlassian.crowd.embedded.core.DelegatingCrowdService.getGroup(DelegatingCrowdService.java:55)
      [INFO] [talledLocalContainer] 	at com.atlassian.crowd.embedded.core.FilteredCrowdServiceImpl.getGroup(FilteredCrowdServiceImpl.java:80)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.security.groups.DefaultGroupManager.getGroup(DefaultGroupManager.java:103)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.security.groups.RequestCachingGroupManager.getGroup(RequestCachingGroupManager.java:78)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.permission.DefaultPermissionSchemeManager.getGroups(DefaultPermissionSchemeManager.java:553)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.permission.DefaultPermissionSchemeManager.getGroups(DefaultPermissionSchemeManager.java:529)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.security.DefaultPermissionManager.getAllGroups(DefaultPermissionManager.java:307)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.security.ApplicationRequiredPermissionManager.getAllGroups(ApplicationRequiredPermissionManager.java:165)
      [INFO] [talledLocalContainer] 	at com.atlassian.util.profiling.object.ObjectProfiler.profiledInvoke(ObjectProfiler.java:83)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:25)
      [INFO] [talledLocalContainer] 	at com.sun.proxy.$Proxy7.getAllGroups(Unknown Source)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.security.PermissionManager$getAllGroups$0.call(Unknown Source)
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            53106592bb6d Jon Bevan [Adaptavist]
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: