Bug 779513 (SOA-1896)

Summary: User appears to be able to delete root, uddi, esbpublisher admin accounts in jUDDI console
Product: [JBoss] JBoss Enterprise SOA Platform 5 Reporter: Len DiMaggio <ldimaggi>
Component: Documentation, Tooling, jUDDI - within SOAAssignee: Kurt Stam <kurt.stam>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 5.0.0 ER7   
Target Milestone: ---   
Target Release: 5.1.0 GA   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/SOA-1896
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-02-18 02:16:17 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
Screenshot.png none

Description Len DiMaggio 2010-01-27 21:13:23 UTC
Affects: Documentation (Ref Guide, User Guide, etc.), Release Notes
Date of First Response: 2010-01-28 02:32:14
project_key: SOA

User appears to be able to delete root, uddi, esbpublisher admin accounts in jUDDI console

After one of these accounts is deleted, the exception listed below is logged - see attached screenshot for 'null' dialog displayed. 

There is no permanent harm, as a server reboot restores the UI display - but we should block the attempts to delete these accounts in the UI.

16:05:43,271 ERROR [JUDDIApiServiceImpl] Could not obtain publishers. null
java.lang.reflect.UndeclaredThrowableException
        at $Proxy229.deletePublisher(Unknown Source)
        at org.apache.juddi.portlets.server.service.JUDDIApiServiceImpl.deletePublisher(JUDDIApiServiceImpl.java:142)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:164)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
        at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
        at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:636)
Caused by: java.util.concurrent.ExecutionException: java.lang.reflect.InvocationTargetException
        at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
        at java.util.concurrent.FutureTask.get(FutureTask.java:111)
        at org.jboss.internal.soa.esb.registry.server.JuddiInVMServerTransport$TaskHandler.invoke(JuddiInVMServerTransport.java:448)
        ... 32 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.jboss.internal.soa.esb.registry.server.JuddiInVMServerTransport$TaskHandler$1.call(JuddiInVMServerTransport.java:444)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        ... 1 more
Caused by: org.apache.juddi.v3.error.UnknownUserException: The user provided does not have a publishing account:  root
        at org.apache.juddi.v3.auth.JUDDIAuthenticator.identify(JUDDIAuthenticator.java:86)
        at org.apache.juddi.api.impl.AuthenticatedService.getEntityPublisher(AuthenticatedService.java:51)
        at org.apache.juddi.api.impl.JUDDIApiImpl.deletePublisher(JUDDIApiImpl.java:138)
        ... 10 more
16:06:43,172 ERROR [JUDDIApiServiceImpl] Could not obtain publishers. null
java.lang.reflect.UndeclaredThrowableException
        at $Proxy229.getPublisherDetail(Unknown Source)
        at org.apache.juddi.portlets.server.service.JUDDIApiServiceImpl.getPublishers(JUDDIApiServiceImpl.java:67)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:164)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
        at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
        at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:636)
Caused by: java.util.concurrent.ExecutionException: java.lang.reflect.InvocationTargetException
        at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
        at java.util.concurrent.FutureTask.get(FutureTask.java:111)
        at org.jboss.internal.soa.esb.registry.server.JuddiInVMServerTransport$TaskHandler.invoke(JuddiInVMServerTransport.java:448)
        ... 32 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.jboss.internal.soa.esb.registry.server.JuddiInVMServerTransport$TaskHandler$1.call(JuddiInVMServerTransport.java:444)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        ... 1 more
Caused by: org.apache.juddi.v3.error.UnknownUserException: The user provided does not have a publishing account:  root
        at org.apache.juddi.v3.auth.JUDDIAuthenticator.identify(JUDDIAuthenticator.java:86)
        at org.apache.juddi.api.impl.AuthenticatedService.getEntityPublisher(AuthenticatedService.java:51)
        at org.apache.juddi.api.impl.JUDDIApiImpl.getPublisherDetail(JUDDIApiImpl.java:170)
        ... 10 more

Comment 1 Len DiMaggio 2010-01-27 21:16:04 UTC
Attachment: Added: Screenshot.png


Comment 2 Marek Baluch 2010-01-28 07:32:14 UTC
Just for completeness ... this exception will not be thrown unless you delete the publisher whose authToken is used to delete the publisher accounts.  If you log in as "root" then you may delete all other publisher accounts without consequences. Only if you delete the "root" publisher account then you can see the exception.

Comment 3 Len DiMaggio 2010-01-28 15:40:10 UTC
Affects: Added: [Documentation (Ref Guide, User Guide, etc.), Release Notes]


Comment 4 Anne-Louise Tangring 2010-09-21 19:22:17 UTC
Candidate for SOA 5.1.0. Not committed.

Comment 5 Anne-Louise Tangring 2010-12-02 16:31:15 UTC
John to talk to Kurt.

Comment 7 Dana Mison 2011-01-05 00:12:25 UTC
Writer: Added: Darrin


Comment 8 Dana Mison 2011-01-27 10:22:34 UTC
Should this be documented as a known issue for SOA 5.1.0 ?

Comment 9 Dana Mison 2011-02-18 02:16:17 UTC
Release Notes Docs Status: Added: Documented as Known Issue
Release Notes Text: Added: https://issues.jboss.org/browse/SOA-1895
The jUDDI Console does not prevent users from attempting to delete accounts that they should not be able to.  The interface makes it seem that any user can delete the root, uddi, and esbpublisher admin accounts in the jUDDI console but the accounts will not be deleted unless they actually have the correct permissions to do so.  Also if the root user attempts to delete itself then an exception (UndeclaredThrowableException) is thrown.  No permanent harm is caused and the display of the console is restored after a server restart.