Hi. We use the JIRA SOAP API both in our own scripts, and through the IntelliJ connector. Both these routes seem to be generating errors.
The IntelliJ connector can perform some operations - for example, it is correctly populating the 'recently viewed issues' list. However, it fails trying to get the list of projects (see exception below).
The user is an administrator. I've tried turning on all the logs that I can find, but nothing seems to generate any hints. The data in the JIRA instance has been upgraded a few times to the current 5.0.2 version.
-- update --
This works for newly created users authenticated in the JIRA user directory, but not for my user (which is an admin user) authenticated in Crowd.
--
com.atlassian.connector.commons.jira.rss.JIRAException: com.atlassian.jira.rpc.exception.RemotePermissionException: No permission to perform operation.
at com.atlassian.connector.commons.jira.JIRAServerFacade2Impl.getProjects(JIRAServerFacade2Impl.java:236)
at com.atlassian.theplugin.commons.jira.IntelliJJiraServerFacade.getProjects(IntelliJJiraServerFacade.java:89)
at com.atlassian.theplugin.commons.jira.cache.JIRAServerCache.getProjects(JIRAServerCache.java:123)
at com.atlassian.theplugin.commons.jira.cache.JIRAServerModelImpl.getProjects(JIRAServerModelImpl.java:160)
at com.atlassian.theplugin.idea.jira.IssueListToolWindowPanel$LocalJiraIssueListModelListener$ModelChangedRunnable.run(IssueListToolWindowPanel.java:1573)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:677)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:647)
at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:699)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:538)
at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:420)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:378)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: com.atlassian.theplugin.commons.remoteapi.RemoteApiException: com.atlassian.jira.rpc.exception.RemotePermissionException: No permission to perform operation.
at com.atlassian.connector.commons.jira.soap.JIRASessionImpl.getProjects(JIRASessionImpl.java:432)
at com.atlassian.connector.commons.jira.JIRAServerFacade2Impl.getProjects(JIRAServerFacade2Impl.java:221)
... 22 more
Caused by: com.atlassian.jira.rpc.exception.RemotePermissionException: No permission to perform operation.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at shadow.org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:104)
at shadow.org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:90)
at com.atlassian.connector.commons.jira.soap.axis.RemotePermissionException.getDeserializer(RemotePermissionException.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at shadow.org.apache.axis.encoding.ser.BaseDeserializerFactory.getSpecialized(BaseDeserializerFactory.java:154)
at shadow.org.apache.axis.encoding.ser.BaseDeserializerFactory.getDeserializerAs(BaseDeserializerFactory.java:84)
at shadow.org.apache.axis.encoding.DeserializationContext.getDeserializer(DeserializationContext.java:464)
at shadow.org.apache.axis.encoding.DeserializationContext.getDeserializerForType(DeserializationContext.java:547)
at shadow.org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(SOAPFaultDetailsBuilder.java:157)
at shadow.org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at shadow.org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at shadow.org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at shadow.org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at shadow.org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at shadow.org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at shadow.org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at shadow.org.apache.axis.client.Call.invoke(Call.java:2767)
at shadow.org.apache.axis.client.Call.invoke(Call.java:2443)
at shadow.org.apache.axis.client.Call.invoke(Call.java:2366)
at shadow.org.apache.axis.client.Call.invoke(Call.java:1812)
at com.atlassian.connector.commons.jira.soap.axis.JirasoapserviceV2SoapBindingStub.getProjectsNoSchemes(JirasoapserviceV2SoapBindingStub.java:8261)
at com.atlassian.connector.commons.jira.soap.JIRASessionImpl.getProjects(JIRASessionImpl.java:413)
... 23 more
Your user needs the Browse Project permission - admins don't necessarily have this permission, jira users get this ermisssion by default which explains why new users are OK.
Is there a specific configuration for that?
Our JIRA has several permission schemes; the 'browse projects' permission is granted to the group 'jira-users' in each, of which the user for which it's broken is a member of (as well as jira-developers and jira-administrators).
Or should I be looking somewhere else?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I'd suggest a few experiments.
First off use REST with the same user credentials and try http://example.com:8080/jira/rest/api/2/project to see what projects, if any, are returned for the problem user. I usually just use the RestClient plugin for Firefox to do this.
You can also get the permissions that apply to your user by issuing http://example.com:8080/rest/api/2/mypermissions
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.