Hi DIlan, Could you provide the states involved in the transition?
Thank You, Sameera On Wed, Oct 22, 2014 at 4:27 PM, Chathura Dilan <[email protected]> wrote: > Hi, > > I'm getting the following exception when changing the life-cycle state ( > to Approve or Reject) in mobile publisher with reviewer role. > > JaggeryTravellingPermissionLifeCycle > org.wso2.carbon.registry.core.secure.AuthorizationFailedException: Resource > update failed. User rev is not authorized to update the resource > /_system/governance/mobileapps/pub/android/WSO2 App/1.0. > [2014-10-22 15:33:27,966] ERROR - GovernanceArtifactImpl Invoking > lifecycle action "Approve" failed > org.wso2.carbon.registry.core.exceptions.RegistryException: Resource > update failed. User rev is not authorized to update the resource > /_system/governance/mobileapps/pub/android/WSO2 App/1.0. > at > org.wso2.jaggery.scxml.aspects.JaggeryTravellingPermissionLifeCycle.invoke(JaggeryTravellingPermissionLifeCycle.java:510) > at > org.wso2.carbon.governance.registry.eventing.handlers.GovernanceEventingHandler.invokeAspect(GovernanceEventingHandler.java:243) > at > org.wso2.carbon.registry.core.jdbc.handlers.HandlerManager.invokeAspect(HandlerManager.java:2792) > at > org.wso2.carbon.registry.core.jdbc.handlers.HandlerLifecycleManager.invokeAspect(HandlerLifecycleManager.java:531) > at > org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.invokeAspect(EmbeddedRegistry.java:2550) > at > org.wso2.carbon.registry.core.caching.CacheBackedRegistry.invokeAspect(CacheBackedRegistry.java:427) > at > org.wso2.carbon.registry.core.session.UserRegistry.invokeAspect(UserRegistry.java:1930) > at > org.wso2.carbon.governance.api.common.dataobjects.GovernanceArtifactImpl.invokeAction(GovernanceArtifactImpl.java:625) > at > org.wso2.carbon.governance.api.common.dataobjects.GovernanceArtifactImpl.invokeAction(GovernanceArtifactImpl.java:605) > 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:606) > at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126) > at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:225) > at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32) > at org.mozilla.javascript.gen.artifacts_17._c_anonymous_21(artifacts:283) > at org.mozilla.javascript.gen.artifacts_17.call(artifacts) > at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42) > at > org.jaggeryjs.rhino.publisher.apis.v_1.c4._c_mobileAppsLifeCycleChange_24(/publisher/apis/v1/lifecycle_api_router.jag:473) > at > org.jaggeryjs.rhino.publisher.apis.v_1.c4.call(/publisher/apis/v1/lifecycle_api_router.jag) > at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63) > at > org.jaggeryjs.rhino.publisher.apis.v_1.c4._c_anonymous_9(/publisher/apis/v1/lifecycle_api_router.jag:138) > at > org.jaggeryjs.rhino.publisher.apis.v_1.c4.call(/publisher/apis/v1/lifecycle_api_router.jag) > at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32) > at > org.jaggeryjs.rhino.publisher.modules.c4._c_anonymous_12(/publisher/modules/router-g.js:183) > at > org.jaggeryjs.rhino.publisher.modules.c4.call(/publisher/modules/router-g.js) > at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42) > at > org.jaggeryjs.rhino.publisher.apis.v_1.c4._c_anonymous_1(/publisher/apis/v1/lifecycle_api_router.jag:438) > at > org.jaggeryjs.rhino.publisher.apis.v_1.c4.call(/publisher/apis/v1/lifecycle_api_router.jag) > at > org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430) > at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269) > at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97) > at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42) > at > org.jaggeryjs.rhino.publisher.modules.c6._c_anonymous_17(/publisher/modules/publisher.js:438) > at > org.jaggeryjs.rhino.publisher.modules.c6.call(/publisher/modules/publisher.js) > at org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23) > at > org.mozilla.javascript.gen._store__server_js_8._c_anonymous_17([store]/server.js:271) > at org.mozilla.javascript.gen._store__server_js_8.call([store]/server.js) > at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42) > at > org.jaggeryjs.rhino.publisher.modules.c6._c_anonymous_16(/publisher/modules/publisher.js:433) > at > org.jaggeryjs.rhino.publisher.modules.c6.call(/publisher/modules/publisher.js) > at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52) > at > org.jaggeryjs.rhino.publisher.apis.v_1.c4._c_script_0(/publisher/apis/v1/lifecycle_api_router.jag:24) > at > org.jaggeryjs.rhino.publisher.apis.v_1.c4.call(/publisher/apis/v1/lifecycle_api_router.jag) > at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394) > at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091) > at > org.jaggeryjs.rhino.publisher.apis.v_1.c4.call(/publisher/apis/v1/lifecycle_api_router.jag) > at > org.jaggeryjs.rhino.publisher.apis.v_1.c4.exec(/publisher/apis/v1/lifecycle_api_router.jag) > at > org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:567) > at org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273) > at > org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:536) > at org.jaggeryjs.jaggery.core.JaggeryServlet.doPut(JaggeryServlet.java:39) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:758) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > at > org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749) > at > org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487) > at > org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379) > at > org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339) > at org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) > at > org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178) > at > org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47) > at > org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56) > at > org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47) > at > org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141) > at > org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) > at > org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) > at > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) > at > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > > > > > > > > > > > > > > Here the user rev is assigned to both publisher and reviewer role in the > publisher. I also applied the patches which is in ES 1.2.0, but no luck. > > Here is the mobile life cycle > > > > > > > > > > > > <aspect name="MobileAppLifeCycle" > class="org.wso2.jaggery.scxml.aspects.JaggeryTravellingPermissionLifeCycle"> > <configuration type="literal"> > <lifecycle> > <scxml xmlns="http://www.w3.org/2005/07/scxml" > version="1.0" > initialstate="Initial"> > <state id='Initial'> > <datamodel> > <data name="transitionExecution"> > <execution forEvent="Create" > class="org.wso2.jaggery.scxml.generic.GenericExecutor"> > <parameter name="PERMISSION:get" > value=" > http://www.wso2.org/projects/registry/actions/get"/> > <parameter name="PERMISSION:add" > value=" > http://www.wso2.org/projects/registry/actions/add"/> > <parameter name="PERMISSION:delete" > value=" > http://www.wso2.org/projects/registry/actions/delete"/> > <parameter name="PERMISSION:authorize" > value="authorize"/> > > <parameter name="STATE_RULE1:Created" > > value="Internal/private_{asset_author}:+add,+delete,+authorize"/> > <parameter name="STATE_RULE2:Created" > value="Internal/everyone:-add,-delete,-authorize"/> > </execution> > </data> > </datamodel> > <transition event="Create" target="Created"/> > </state> > <state id="Created"> > <datamodel> > <data name="transitionExecution"> > <execution forEvent="Submit" > class="org.wso2.jaggery.scxml.generic.GenericExecutor"> > <parameter name="PERMISSION:get" > value=" > http://www.wso2.org/projects/registry/actions/get"/> > <parameter name="PERMISSION:add" > value=" > http://www.wso2.org/projects/registry/actions/add"/> > <parameter name="PERMISSION:delete" > value=" > http://www.wso2.org/projects/registry/actions/delete"/> > <parameter name="PERMISSION:authorize" > value="authorize"/> > > <parameter name="STATE_RULE1:In-Review" > > value="Internal/private_{asset_author}:-add,-delete,-authorize"/> > <parameter name="STATE_RULE2:In-Review" > value="Internal/reviewer:+add,-delete,+authorize"/> > <parameter name="STATE_RULE3:In-Review" > value="Internal/everyone:-add,-delete,-authorize"/> > </execution> > </data> > </datamodel> > <transition event="Submit" target="In-Review"/> > </state> > <state id="In-Review"> > <datamodel> > <data name="transitionExecution"> > <execution forEvent="Approve" > class="org.wso2.jaggery.scxml.generic.GenericExecutor"> > <parameter name="PERMISSION:get" > value=" > http://www.wso2.org/projects/registry/actions/get"/> > <parameter name="PERMISSION:add" > value=" > http://www.wso2.org/projects/registry/actions/add"/> > <parameter name="PERMISSION:delete" > value=" > http://www.wso2.org/projects/registry/actions/delete"/> > <parameter name="PERMISSION:authorize" > value="authorize"/> > > <parameter name="STATE_RULE1:Approved" > > value="Internal/private_{asset_author}:+get,+add,-delete,+authorize"/> > <parameter name="STATE_RULE2:Approved" > value="Internal/reviewer:+add,+delete,+authorize"/> > <parameter name="STATE_RULE3:Approved" > value="Internal/everyone:-add,-delete,-authorize"/> > </execution> > <execution forEvent="Reject" > class="org.wso2.jaggery.scxml.generic.GenericExecutor"> > <parameter name="PERMISSION:get" > value=" > http://www.wso2.org/projects/registry/actions/get"/> > <parameter name="PERMISSION:add" > value=" > http://www.wso2.org/projects/registry/actions/add"/> > <parameter name="PERMISSION:delete" > value=" > http://www.wso2.org/projects/registry/actions/delete"/> > <parameter name="PERMISSION:authorize" > value="authorize"/> > > <parameter name="STATE_RULE1:Rejected" > > value="Internal/private_{asset_author}:+add,+delete,+authorize"/> > <parameter name="STATE_RULE2:Rejected" > value="Internal/reviewer:+add,+delete,+authorize"/> > <parameter name="STATE_RULE3:Rejected" > value="Internal/everyone:-add,-delete,-authorize"/> > </execution> > </data> > </datamodel> > <transition event="Approve" target="Approved"/> > <transition event="Reject" target="Rejected"/> > </state> > <state id="Approved"> > <datamodel> > <data name="transitionExecution"> > <execution forEvent="Publish" > class="org.wso2.jaggery.scxml.generic.GenericExecutor"> > <parameter name="PERMISSION:get" > value=" > http://www.wso2.org/projects/registry/actions/get"/> > <parameter name="PERMISSION:add" > value=" > http://www.wso2.org/projects/registry/actions/add"/> > <parameter name="PERMISSION:delete" > value=" > http://www.wso2.org/projects/registry/actions/delete"/> > <parameter name="PERMISSION:authorize" > value="authorize"/> > > <parameter name="STATE_RULE1:Published" > > value="Internal/private_{asset_author}:+add,+delete,+authorize"/> > <parameter name="STATE_RULE2:Published" > > value="Internal/reviewer:-add,-delete,-authorize"/> > <parameter name="STATE_RULE3:Published" > > value="Internal/everyone:-add,-delete,-authorize"/> > <parameter name="STATE_RULE3:Published" > value="system/wso2.anonymous.role:+get" /> > </execution> > </data> > </datamodel> > <transition event="Publish" target="Published"/> > </state> > <state id="Rejected"> > <datamodel> > <data name="transitionExecution"> > <execution forEvent="Re-Submit" > class="org.wso2.jaggery.scxml.generic.GenericExecutor"> > <parameter name="PERMISSION:get" > value=" > http://www.wso2.org/projects/registry/actions/get"/> > <parameter name="PERMISSION:add" > value=" > http://www.wso2.org/projects/registry/actions/add"/> > <parameter name="PERMISSION:delete" > value=" > http://www.wso2.org/projects/registry/actions/delete"/> > <parameter name="PERMISSION:authorize" > value="authorize"/> > > <parameter name="STATE_RULE1:In-Review" > > value="Internal/private_{asset_author}:-add,-delete,-authorize"/> > <parameter name="STATE_RULE2:In-Review" > value="Internal/reviewer:+add,-delete,+authorize"/> > <parameter name="STATE_RULE3:In-Review" > value="Internal/everyone:-add,-delete,-authorize"/> > </execution> > </data> > </datamodel> > <transition event="Re-Submit" target="In-Review"/> > </state> > <state id="Published"> > <datamodel> > <data name="transitionExecution"> > <execution forEvent="Unpublish" > class="org.wso2.jaggery.scxml.generic.GenericExecutor"> > <parameter name="PERMISSION:get" > value=" > http://www.wso2.org/projects/registry/actions/get"/> > <parameter name="PERMISSION:add" > value=" > http://www.wso2.org/projects/registry/actions/add"/> > <parameter name="PERMISSION:delete" > value=" > http://www.wso2.org/projects/registry/actions/delete"/> > <parameter name="PERMISSION:authorize" > value="authorize"/> > > <parameter name="STATE_RULE1:Unpublished" > > value="Internal/private_{asset_author}:+add,-delete,+authorize"/> > <parameter name="STATE_RULE2:Unpublished" > > value="Internal/reviewer:-add,-delete,-authorize"/> > <parameter name="STATE_RULE3:Unpublished" > > value="Internal/everyone:-add,-delete,-authorize"/> > <parameter name="STATE_RULE3:Published" > value="system/wso2.anonymous.role:-get" /> > </execution> > <execution forEvent="Deprecate" > class="org.wso2.jaggery.scxml.generic.GenericExecutor"> > <parameter name="PERMISSION:get" > value=" > http://www.wso2.org/projects/registry/actions/get"/> > <parameter name="PERMISSION:add" > value=" > http://www.wso2.org/projects/registry/actions/add"/> > <parameter name="PERMISSION:delete" > value=" > http://www.wso2.org/projects/registry/actions/delete"/> > <parameter name="PERMISSION:authorize" > value="authorize"/> > > <parameter name="STATE_RULE1:Deprecated" > > value="Internal/private_{asset_author}:+add,-delete,+authorize"/> > <parameter name="STATE_RULE2:Deprecated" > > value="Internal/reviewer:-add,-delete,-authorize"/> > <parameter name="STATE_RULE3:Deprecated" > > value="Internal/everyone:-add,-delete,-authorize"/> > <parameter name="STATE_RULE3:Published" > value="system/wso2.anonymous.role:-get" /> > </execution> > </data> > </datamodel> > <transition event="Unpublish" target="Unpublished"/> > <transition event="Deprecate" target="Deprecated"/> > </state> > <state id="Unpublished"> > <datamodel> > <data name="transitionExecution"> > <execution forEvent="Publish" > class="org.wso2.jaggery.scxml.generic.GenericExecutor"> > <parameter name="PERMISSION:get" > value=" > http://www.wso2.org/projects/registry/actions/get"/> > <parameter name="PERMISSION:add" > value=" > http://www.wso2.org/projects/registry/actions/add"/> > <parameter name="PERMISSION:delete" > value=" > http://www.wso2.org/projects/registry/actions/delete"/> > <parameter name="PERMISSION:authorize" > value="authorize"/> > > <parameter name="STATE_RULE1:Published" > > value="Internal/private_{asset_author}:+add,-delete,+authorize"/> > <parameter name="STATE_RULE2:Published" > > value="Internal/reviewer:-add,-delete,-authorize"/> > <parameter name="STATE_RULE3:Published" > > value="Internal/everyone:-add,-delete,-authorize"/> > <parameter name="STATE_RULE3:Published" > value="system/wso2.anonymous.role:+get" /> > </execution> > <execution forEvent="Retire" > class="org.wso2.jaggery.scxml.generic.GenericExecutor"> > <parameter name="PERMISSION:get" > value=" > http://www.wso2.org/projects/registry/actions/get"/> > <parameter name="PERMISSION:add" > value=" > http://www.wso2.org/projects/registry/actions/add"/> > <parameter name="PERMISSION:delete" > value=" > http://www.wso2.org/projects/registry/actions/delete"/> > <parameter name="PERMISSION:authorize" > value="authorize"/> > > <parameter name="STATE_RULE1:Retired" > > value="Internal/private_{asset_author}:-add,+delete,-authorize"/> > <parameter name="STATE_RULE2:Retired" > value="Internal/reviewer:-add,-delete,-authorize"/> > <parameter name="STATE_RULE3:Retired" > value="Internal/everyone:-add,-delete,-authorize"/> > <parameter name="STATE_RULE3:Published" > value="system/wso2.anonymous.role:-get" /> > </execution> > </data> > </datamodel> > <transition event="Publish" target="Published"/> > <transition event="Retire" target="Retired"/> > </state> > <state id="Deprecated"> > <datamodel> > <data name="transitionExecution"> > <execution forEvent="Retire" > class="org.wso2.jaggery.scxml.generic.GenericExecutor"> > <parameter name="PERMISSION:get" > value=" > http://www.wso2.org/projects/registry/actions/get"/> > <parameter name="PERMISSION:add" > value=" > http://www.wso2.org/projects/registry/actions/add"/> > <parameter name="PERMISSION:delete" > value=" > http://www.wso2.org/projects/registry/actions/delete"/> > <parameter name="PERMISSION:authorize" > value="authorize"/> > > <parameter name="STATE_RULE1:Retired" > > value="Internal/private_{asset_author}:-add,+delete,-authorize"/> > <parameter name="STATE_RULE2:Retired" > value="Internal/reviewer:-add,-delete,-authorize"/> > <parameter name="STATE_RULE3:Retired" > value="Internal/everyone:-add,-delete,-authorize"/> > </execution> > </data> > </datamodel> > <transition event="Retire" target="Retired"/> > </state> > <state id="Retired"/> > </scxml> > </lifecycle> > </configuration> > </aspect> > > > > > Any idea? > > > -- > Regards, > > Chatura Dilan Perera > *(Senior Software Engineer** - WSO2 Inc.* * [Mobile])* > www.dilan.me > -- Sameera Medagammaddegedara Software Engineer Contact: Email: [email protected] Mobile: + 94 077 255 3005
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
