Hi Sameera,

What I meant is , when creating a  web app/api , add tags to it and
 restrict the webapp's/api's visibilty by role .

On Fri, Oct 9, 2015 at 3:17 PM, Sameera Kannangara <[email protected]>
wrote:

> There is no permission model for tags. Permission model is only associated
> with the registry resources which may have tags.
>
> I think Jena is referring [1] their own tag specific implementation,
> because tag specific permissions are not supported by registry.
>
> [1] "Create a web app with tags and restrict its visibility by role"
>
>
> On Fri, Oct 9, 2015 at 3:05 PM, Nuwan Dias <[email protected]> wrote:
>
>>
>>
>> On Fri, Oct 9, 2015 at 2:34 PM, Sameera Kannangara <[email protected]>
>> wrote:
>>
>>> Hi Nuwan,
>>>
>>> According to my knowledge tags do not have a permissions attached.
>>> But resources that are tagged with those tags have permissions.
>>> Even if a user can get all the tags, user will be able to read only the
>>> permitted resources even though they are tagged.
>>>
>>> As the reported exception related to retrieving a resource path
>>> (/_system/governance/appmgt/applicationdata/provider/admin/myapp/1/webapp)
>>> by an unauthorized user (anonymous),
>>> Resource retrieving process here should check permission before
>>> retrieving the resource.
>>>
>>
>> Are you expecting the client code (APIM, APPM and all others) to check
>> permissions before retrieving an artifact?
>>
>>>
>>> Caused by:
>>> org.wso2.carbon.registry.core.secure.AuthorizationFailedException: User
>>> wso2.anonymous.user is not authorized to read the resource
>>> /_system/governance/appmgt/applicationdata/provider/admin/myapp/1/webapp.
>>>
>>> Thank you,
>>> SameeraK.
>>>
>>>
>>>
>>> On Fri, Oct 9, 2015 at 2:07 PM, Nuwan Dias <[email protected]> wrote:
>>>
>>>> You means tags have permissions? Since tags are attached to artifacts,
>>>> shouldn't it inherit the permissions of the artifact instead of having its
>>>> own?
>>>>
>>>> On Fri, Oct 9, 2015 at 1:34 PM, Sameera Kannangara <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi Jena,
>>>>>
>>>>> I assume that anon user does not have access to these tags.
>>>>> If so why does process try to retrieve tags which are not allowed to
>>>>> be read by anon user?
>>>>> Above exception is expected when a user tries to perform a restricted
>>>>> operation.
>>>>>
>>>>> Problem seems to be trying to access a restricted resource using anon
>>>>> user.
>>>>> If that back end error occurs as soon as you log out, then may be the
>>>>> log out operation redirects user (who is anon since he just logged out) to
>>>>> a page containing a restricted operation.
>>>>> If this is the situation, solution would be to redirect user to a
>>>>> common page like landing page when logged out, or add a permission check
>>>>> before performing the restricted operation (in here the read operation).
>>>>>
>>>>> Thank you,
>>>>> SameeraK.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Oct 9, 2015 at 1:17 PM, Jenananthan Yogendran <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi All,
>>>>>>
>>>>>> I am getting following exception when try to view the web app as
>>>>>> anonymous user in app manger(1.1.0 snapshot) store
>>>>>>
>>>>>> Steps to reproduce
>>>>>> 1 . Create a web app with tags and restrict its visibility by role
>>>>>> 2.  log in to store with user who has correct role and list the
>>>>>> webapps (tags are retrieved without any problem)
>>>>>> 3.  log out and view the web apps as anonymous user -> exception
>>>>>> thrown in the backend
>>>>>>
>>>>>>
>>>>>> In the tag retrieving process,
>>>>>>
>>>>>> 1. get all the tags
>>>>>> 2. get resource(uuid) by tag
>>>>>> 3. get webapp artifact related to uuid -> this will return null if
>>>>>> user is not authorized to access that artifact. based on that only tags
>>>>>> associated to visible webapps will be filtered.
>>>>>>
>>>>>>
>>>>>> caching the artifact path in getArtifactPath(Registry registry,
>>>>>> String artifactId) [1] method seems to cause this issue,
>>>>>>
>>>>>> 1. When authorized user access the store, path of artifact which is
>>>>>> restricted by role will be cached in the tag retrieving process.
>>>>>> 2. So when anonymous user try to view the store, in the tag
>>>>>> retrieving process artifact path of role restricted artifact will be 
>>>>>> return
>>>>>> from cache and exception will be thrown when try to get the artifact from
>>>>>> this path.since anonymous user is not authorized to access that path.
>>>>>>
>>>>>> This issue was not there in appm1.0.0 which
>>>>>> uses org.wso2.carbon.governance.api_4.2.1 ,which doesn't have this 
>>>>>> caching
>>>>>> mechanism. So when try to get the   artifact path of role restricted
>>>>>> artifact based on uuid, registry query written will return null and rest 
>>>>>> of
>>>>>> the
>>>>>> logic will return null for artifact..
>>>>>>
>>>>>> wso2appm-1.1.0-SNAPSHOT uses org.wso2.carbon.governance.api_4.5.1.
>>>>>> Same issue is observed in APIM  wso2am-1.10.0-SNAPSHOT. where it
>>>>>> uses org.wso2.carbon.governance.api_4.5.8.
>>>>>>
>>>>>>
>>>>>>
>>>>>> 1 .
>>>>>> https://github.com/wso2/carbon-governance/blob/release-4.5.9/components/governance/org.wso2.carbon.governance.api/src/main/java/org/wso2/carbon/governance/api/util/GovernanceUtils.java
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> [2015-10-09 11:55:42,502] ERROR - GovernanceUtils Error in retrieving
>>>>>> governance artifact by path. path:
>>>>>> /appmgt/applicationdata/provider/admin/myapp/1/webapp.
>>>>>> org.wso2.carbon.registry.core.secure.AuthorizationFailedException:
>>>>>> User wso2.anonymous.user is not authorized to read the resource
>>>>>> /_system/governance/appmgt/applicationdata/provider/admin/myapp/1/webapp.
>>>>>> at
>>>>>> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.get(CacheBackedRegistry.java:164)
>>>>>> at
>>>>>> org.wso2.carbon.registry.core.session.UserRegistry.getInternal(UserRegistry.java:613)
>>>>>> at
>>>>>> org.wso2.carbon.registry.core.session.UserRegistry.access$400(UserRegistry.java:60)
>>>>>> at
>>>>>> org.wso2.carbon.registry.core.session.UserRegistry$5.run(UserRegistry.java:596)
>>>>>> at
>>>>>> org.wso2.carbon.registry.core.session.UserRegistry$5.run(UserRegistry.java:593)
>>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>>> at
>>>>>> org.wso2.carbon.registry.core.session.UserRegistry.get(UserRegistry.java:593)
>>>>>> at
>>>>>> org.wso2.carbon.governance.api.util.GovernanceUtils.retrieveGovernanceArtifactByPath(GovernanceUtils.java:938)
>>>>>> at
>>>>>> org.wso2.carbon.governance.api.util.GovernanceUtils.retrieveGovernanceArtifactById(GovernanceUtils.java:908)
>>>>>> at
>>>>>> org.wso2.carbon.governance.api.common.GovernanceArtifactManager.getGovernanceArtifact(GovernanceArtifactManager.java:503)
>>>>>> at
>>>>>> org.wso2.carbon.governance.api.generic.GenericArtifactManager.getGenericArtifact(GenericArtifactManager.java:239)
>>>>>> at
>>>>>> org.wso2.carbon.appmgt.impl.APIConsumerImpl.getAPIsWithTag(APIConsumerImpl.java:194)
>>>>>> at
>>>>>> org.wso2.carbon.appmgt.impl.APIConsumerImpl.getAllTags(APIConsumerImpl.java:749)
>>>>>> at
>>>>>> org.wso2.carbon.appmgt.impl.UserAwareAPIConsumer.getAllTags(UserAwareAPIConsumer.java:35)
>>>>>> at
>>>>>> org.wso2.carbon.appmgt.hostobjects.APIStoreHostObject.jsFunction_getAllTags(APIStoreHostObject.java:864)
>>>>>> 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.FunctionObject.call(FunctionObject.java:386)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.modules.c1._c_anonymous_31(/store/modules/store.js:426)
>>>>>> at org.jaggeryjs.rhino.store.modules.c1.call(/store/modules/store.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.pages.c0._c_anonymous_8(/store/extensions/assets/webapp/pages/assets.jag:360)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.pages.c0.call(/store/extensions/assets/webapp/pages/assets.jag)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.callProp0(OptRuntime.java:85)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0._c_anonymous_23(<caramel>/scripts/caramel.handlebars.js:372)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0.call(<caramel>/scripts/caramel.handlebars.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0._c_anonymous_3(<caramel>/scripts/caramel.handlebars.js:35)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0.call(<caramel>/scripts/caramel.handlebars.js)
>>>>>> 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.Interpreter.interpretLoop(Interpreter.java:1473)
>>>>>> at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:815)
>>>>>> at
>>>>>> org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:109)
>>>>>> 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.callN(OptRuntime.java:52)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<handlebars>.scripts.c0._c_anonymous_129(<handlebars>/scripts/handlebars.js:1512)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<handlebars>.scripts.c0.call(<handlebars>/scripts/handlebars.js)
>>>>>> 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.callN(OptRuntime.java:52)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<handlebars>.scripts.c0._c_anonymous_126(<handlebars>/scripts/handlebars.js:1483)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<handlebars>.scripts.c0.call(<handlebars>/scripts/handlebars.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0._c_anonymous_31(<caramel>/scripts/caramel.handlebars.js:623)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0.call(<caramel>/scripts/caramel.handlebars.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.themes.store.renderers.extensions.assets.webapp.pages.c0._c_anonymous_1(/store/extensions/assets/webapp/themes/store/renderers/extensions/assets/webapp/pages/assets.js:36)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.themes.store.renderers.extensions.assets.webapp.pages.c0.call(/store/extensions/assets/webapp/themes/store/renderers/extensions/assets/webapp/pages/assets.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0._c_anonymous_28(<caramel>/scripts/caramel.handlebars.js:453)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0.call(<caramel>/scripts/caramel.handlebars.js)
>>>>>> 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.callN(OptRuntime.java:52)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.themes.store.c0._c_anonymous_21(/store/themes/store/theme.js:162)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.themes.store.c0.call(/store/themes/store/theme.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0._c_anonymous_13(<caramel>/scripts/caramel-core.js:212)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0.call(<caramel>/scripts/caramel-core.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.pages.c0._c_anonymous_1(/store/extensions/assets/webapp/pages/assets.jag:341)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.pages.c0.call(/store/extensions/assets/webapp/pages/assets.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.store.modules.c1._c_anonymous_70(/store/modules/store.js:1155)
>>>>>> at org.jaggeryjs.rhino.store.modules.c1.call(/store/modules/store.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<store>.scripts.c0._c_anonymous_17(<store>/scripts/server.js:266)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<store>.scripts.c0.call(<store>/scripts/server.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.modules.c1._c_anonymous_69(/store/modules/store.js:1150)
>>>>>> at org.jaggeryjs.rhino.store.modules.c1.call(/store/modules/store.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.pages.c0._c_script_0(/store/extensions/assets/webapp/pages/assets.jag:34)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.pages.c0.call(/store/extensions/assets/webapp/pages/assets.jag)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.pages.c0.exec(/store/extensions/assets/webapp/pages/assets.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.executeScript(WebAppManager.java:308)
>>>>>> at
>>>>>> org.jaggeryjs.jaggery.core.manager.WebAppManager.include(WebAppManager.java:148)
>>>>>> at sun.reflect.GeneratedMethodAccessor93.invoke(Unknown Source)
>>>>>> 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.FunctionObject.call(FunctionObject.java:386)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.controllers.routers.c0._c_anonymous_1(/store/controllers/routers/assets.jag:40)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.controllers.routers.c0.call(/store/controllers/routers/assets.jag)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.controllers.routers.c0._c_script_0(/store/controllers/routers/assets.jag:3)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.controllers.routers.c0.call(/store/controllers/routers/assets.jag)
>>>>>> at
>>>>>> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
>>>>>> at
>>>>>> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.controllers.routers.c0.call(/store/controllers/routers/assets.jag)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.controllers.routers.c0.exec(/store/controllers/routers/assets.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.exec(WebAppManager.java:587)
>>>>>> at
>>>>>> org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:507)
>>>>>> at
>>>>>> org.jaggeryjs.jaggery.core.JaggeryServlet.doGet(JaggeryServlet.java:24)
>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:378)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)
>>>>>> at
>>>>>> org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>> at
>>>>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>>>>>> at
>>>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
>>>>>> at
>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>>>>>> at
>>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
>>>>>> at
>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
>>>>>> at
>>>>>> org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)
>>>>>> at
>>>>>> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
>>>>>> at
>>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
>>>>>> at
>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
>>>>>> at
>>>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
>>>>>> at
>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>>>>>> at
>>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
>>>>>> at
>>>>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
>>>>>> at
>>>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
>>>>>> at
>>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739)
>>>>>> at
>>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1698)
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>>>>> at
>>>>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>> [2015-10-09 11:55:42,506] ERROR - UserAwareAPIConsumer Failed to get
>>>>>> WebApp for tag role
>>>>>> org.wso2.carbon.governance.api.exception.GovernanceException: Error
>>>>>> in retrieving governance artifact by path. path:
>>>>>> /appmgt/applicationdata/provider/admin/myapp/1/webapp.
>>>>>> at
>>>>>> org.wso2.carbon.governance.api.util.GovernanceUtils.retrieveGovernanceArtifactByPath(GovernanceUtils.java:1069)
>>>>>> at
>>>>>> org.wso2.carbon.governance.api.util.GovernanceUtils.retrieveGovernanceArtifactById(GovernanceUtils.java:908)
>>>>>> at
>>>>>> org.wso2.carbon.governance.api.common.GovernanceArtifactManager.getGovernanceArtifact(GovernanceArtifactManager.java:503)
>>>>>> at
>>>>>> org.wso2.carbon.governance.api.generic.GenericArtifactManager.getGenericArtifact(GenericArtifactManager.java:239)
>>>>>> at
>>>>>> org.wso2.carbon.appmgt.impl.APIConsumerImpl.getAPIsWithTag(APIConsumerImpl.java:194)
>>>>>> at
>>>>>> org.wso2.carbon.appmgt.impl.APIConsumerImpl.getAllTags(APIConsumerImpl.java:749)
>>>>>> at
>>>>>> org.wso2.carbon.appmgt.impl.UserAwareAPIConsumer.getAllTags(UserAwareAPIConsumer.java:35)
>>>>>> at
>>>>>> org.wso2.carbon.appmgt.hostobjects.APIStoreHostObject.jsFunction_getAllTags(APIStoreHostObject.java:864)
>>>>>> 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.FunctionObject.call(FunctionObject.java:386)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.modules.c1._c_anonymous_31(/store/modules/store.js:426)
>>>>>> at org.jaggeryjs.rhino.store.modules.c1.call(/store/modules/store.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.pages.c0._c_anonymous_8(/store/extensions/assets/webapp/pages/assets.jag:360)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.pages.c0.call(/store/extensions/assets/webapp/pages/assets.jag)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.callProp0(OptRuntime.java:85)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0._c_anonymous_23(<caramel>/scripts/caramel.handlebars.js:372)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0.call(<caramel>/scripts/caramel.handlebars.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0._c_anonymous_3(<caramel>/scripts/caramel.handlebars.js:35)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0.call(<caramel>/scripts/caramel.handlebars.js)
>>>>>> 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.Interpreter.interpretLoop(Interpreter.java:1473)
>>>>>> at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:815)
>>>>>> at
>>>>>> org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:109)
>>>>>> 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.callN(OptRuntime.java:52)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<handlebars>.scripts.c0._c_anonymous_129(<handlebars>/scripts/handlebars.js:1512)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<handlebars>.scripts.c0.call(<handlebars>/scripts/handlebars.js)
>>>>>> 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.callN(OptRuntime.java:52)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<handlebars>.scripts.c0._c_anonymous_126(<handlebars>/scripts/handlebars.js:1483)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<handlebars>.scripts.c0.call(<handlebars>/scripts/handlebars.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0._c_anonymous_31(<caramel>/scripts/caramel.handlebars.js:623)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0.call(<caramel>/scripts/caramel.handlebars.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.themes.store.renderers.extensions.assets.webapp.pages.c0._c_anonymous_1(/store/extensions/assets/webapp/themes/store/renderers/extensions/assets/webapp/pages/assets.js:36)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.themes.store.renderers.extensions.assets.webapp.pages.c0.call(/store/extensions/assets/webapp/themes/store/renderers/extensions/assets/webapp/pages/assets.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0._c_anonymous_28(<caramel>/scripts/caramel.handlebars.js:453)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0.call(<caramel>/scripts/caramel.handlebars.js)
>>>>>> 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.callN(OptRuntime.java:52)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.themes.store.c0._c_anonymous_21(/store/themes/store/theme.js:162)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.themes.store.c0.call(/store/themes/store/theme.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0._c_anonymous_13(<caramel>/scripts/caramel-core.js:212)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<caramel>.scripts.c0.call(<caramel>/scripts/caramel-core.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.pages.c0._c_anonymous_1(/store/extensions/assets/webapp/pages/assets.jag:341)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.pages.c0.call(/store/extensions/assets/webapp/pages/assets.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.store.modules.c1._c_anonymous_70(/store/modules/store.js:1155)
>>>>>> at org.jaggeryjs.rhino.store.modules.c1.call(/store/modules/store.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<store>.scripts.c0._c_anonymous_17(<store>/scripts/server.js:266)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.<store>.scripts.c0.call(<store>/scripts/server.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.modules.c1._c_anonymous_69(/store/modules/store.js:1150)
>>>>>> at org.jaggeryjs.rhino.store.modules.c1.call(/store/modules/store.js)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.pages.c0._c_script_0(/store/extensions/assets/webapp/pages/assets.jag:34)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.pages.c0.call(/store/extensions/assets/webapp/pages/assets.jag)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.extensions.assets.webapp.pages.c0.exec(/store/extensions/assets/webapp/pages/assets.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.executeScript(WebAppManager.java:308)
>>>>>> at
>>>>>> org.jaggeryjs.jaggery.core.manager.WebAppManager.include(WebAppManager.java:148)
>>>>>> at sun.reflect.GeneratedMethodAccessor93.invoke(Unknown Source)
>>>>>> 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.FunctionObject.call(FunctionObject.java:386)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.controllers.routers.c0._c_anonymous_1(/store/controllers/routers/assets.jag:40)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.controllers.routers.c0.call(/store/controllers/routers/assets.jag)
>>>>>> at
>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.controllers.routers.c0._c_script_0(/store/controllers/routers/assets.jag:3)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.controllers.routers.c0.call(/store/controllers/routers/assets.jag)
>>>>>> at
>>>>>> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
>>>>>> at
>>>>>> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.controllers.routers.c0.call(/store/controllers/routers/assets.jag)
>>>>>> at
>>>>>> org.jaggeryjs.rhino.store.controllers.routers.c0.exec(/store/controllers/routers/assets.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.exec(WebAppManager.java:587)
>>>>>> at
>>>>>> org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:507)
>>>>>> at
>>>>>> org.jaggeryjs.jaggery.core.JaggeryServlet.doGet(JaggeryServlet.java:24)
>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:378)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)
>>>>>> at
>>>>>> org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>> at
>>>>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>>>>>> at
>>>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
>>>>>> at
>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>>>>>> at
>>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
>>>>>> at
>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
>>>>>> at
>>>>>> org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)
>>>>>> at
>>>>>> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
>>>>>> at
>>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
>>>>>> at
>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
>>>>>> at
>>>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
>>>>>> at
>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>>>>>> at
>>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
>>>>>> at
>>>>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
>>>>>> at
>>>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
>>>>>> at
>>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739)
>>>>>> at
>>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1698)
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>>>>> at
>>>>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>> Caused by:
>>>>>> org.wso2.carbon.registry.core.secure.AuthorizationFailedException: User
>>>>>> wso2.anonymous.user is not authorized to read the resource
>>>>>> /_system/governance/appmgt/applicationdata/provider/admin/myapp/1/webapp.
>>>>>> at
>>>>>> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.get(CacheBackedRegistry.java:164)
>>>>>> at
>>>>>> org.wso2.carbon.registry.core.session.UserRegistry.getInternal(UserRegistry.java:613)
>>>>>> at
>>>>>> org.wso2.carbon.registry.core.session.UserRegistry.access$400(UserRegistry.java:60)
>>>>>> at
>>>>>> org.wso2.carbon.registry.core.session.UserRegistry$5.run(UserRegistry.java:596)
>>>>>> at
>>>>>> org.wso2.carbon.registry.core.session.UserRegistry$5.run(UserRegistry.java:593)
>>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>>> at
>>>>>> org.wso2.carbon.registry.core.session.UserRegistry.get(UserRegistry.java:593)
>>>>>> at
>>>>>> org.wso2.carbon.governance.api.util.GovernanceUtils.retrieveGovernanceArtifactByPath(GovernanceUtils.java:938)
>>>>>> ... 141 more
>>>>>>
>>>>>> --
>>>>>> Jenananthan Yogendran
>>>>>> *Software Engineer,*
>>>>>> *WSO2 inc., http://wso2.com <http://wso2.com>*
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Dev mailing list
>>>>>> [email protected]
>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Sameera Kannangara*
>>>>> Software Engineer
>>>>> Platform TG; WSO2 Inc. http://wso2.com
>>>>> Contact:
>>>>> phone: +94719541577
>>>>> Lean . Enterprise . Middleware
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Nuwan Dias
>>>>
>>>> Technical Lead - WSO2, Inc. http://wso2.com
>>>> email : [email protected]
>>>> Phone : +94 777 775 729
>>>>
>>>
>>>
>>>
>>> --
>>> *Sameera Kannangara*
>>> Software Engineer
>>> Platform TG; WSO2 Inc. http://wso2.com
>>> Contact:
>>> phone: +94719541577
>>> Lean . Enterprise . Middleware
>>>
>>
>>
>>
>> --
>> Nuwan Dias
>>
>> Technical Lead - WSO2, Inc. http://wso2.com
>> email : [email protected]
>> Phone : +94 777 775 729
>>
>
>
>
> --
> *Sameera Kannangara*
> Software Engineer
> Platform TG; WSO2 Inc. http://wso2.com
> Contact:
> phone: +94719541577
> Lean . Enterprise . Middleware
>



-- 
Jenananthan Yogendran
*Software Engineer,*
*WSO2 inc., http://wso2.com <http://wso2.com>*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to