Hi Rajkumar, You have mentioned that,
because the very first request to API Store will land on jaggery_acs.jag > and since SSO properties are not there in SSO relaying party object, you > will get NPE like below. What do you mean by very first request? Is it before login to IDP? I guess, Before login to IDP, users shouldn't be allowed to access a protected resource if IDP initiated SSO is configured. Can you clarify? On Thu, Jan 12, 2017 at 4:38 PM, Rajkumar Rajaratnam <rajkum...@wso2.com> wrote: > Hi Abimaran, > > I'm sorry I couldn't understand the context of what you are saying. I was > reporting that IDP initiated SSO is not working (login to IDP first and let > IDP to redirect user to SP). > > Thanks. > > On Thu, Jan 12, 2017 at 1:59 AM Abimaran Kugathasan <abima...@wso2.com> > wrote: > >> Hi Rajkumar, >> >> On Wed, Jan 11, 2017 at 11:08 PM, Rajkumar Rajaratnam <rajkum...@wso2.com >> > wrote: >> >> IDP initiated SSO for Store is also not working. Should be the same case >> with Publisher. Reason for this issue is as below. >> >> For SP initiated SSO, we read SSO properties from site.json and set them >> to SSO relaying party object in sso/filter [1]. >> >> For IDP initiated SSO, the same thing should be done in jaggery_acs.jag. >> Why?, because the very first request to API Store will land on >> jaggery_acs.jag and since SSO properties are not there in SSO relaying >> party object, you will get NPE like below. >> >> >> >> >> Why should someone allowed to hit SP, if IDP initiated SSO configured? I >> do understand the annonymous access API Manager should allowed for API >> Srore, but, when someone requested to login, don't we redirect to IDP login? >> >> >> >> >> [2017-01-11 12:34:07,151] ERROR - Util Error when getting key store of >> tenant carbon.super >> java.lang.NullPointerException >> at java.io.File.<init>(File.java:277) >> at org.wso2.carbon.hostobjects.sso.internal.util.Util. >> validateSignature(Util.java:281) >> at org.wso2.carbon.hostobjects.sso.SAMLSSORelyingPartyObject. >> jsFunction_validateSignature(SAMLSSORelyingPartyObject.java:168) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at sun.reflect.NativeMethodAccessorImpl.invoke( >> NativeMethodAccessorImpl.java:62) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke( >> DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:498) >> 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.jagg.c0._c_anonymous_1(/store/ >> jagg/jaggery_acs.jag:70) >> at org.jaggeryjs.rhino.store.jagg.c0.call(/store/jagg/jaggery_acs.jag) >> at org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23) >> at org.jaggeryjs.rhino.store.jagg.c0._c_script_0(/store/ >> jagg/jaggery_acs.jag:5) >> at org.jaggeryjs.rhino.store.jagg.c0.call(/store/jagg/jaggery_acs.jag) >> at org.mozilla.javascript.ContextFactory.doTopCall( >> ContextFactory.java:394) >> at org.mozilla.javascript.ScriptRuntime.doTopCall( >> ScriptRuntime.java:3091) >> at org.jaggeryjs.rhino.store.jagg.c0.call(/store/jagg/jaggery_acs.jag) >> at org.jaggeryjs.rhino.store.jagg.c0.exec(/store/jagg/jaggery_acs.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:588) >> at org.jaggeryjs.jaggery.core.manager.WebAppManager.execute( >> WebAppManager.java:508) >> at org.jaggeryjs.jaggery.core.JaggeryServlet.doPost( >> JaggeryServlet.java:29) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >> 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:747) >> at org.apache.catalina.core.ApplicationDispatcher.processRequest( >> ApplicationDispatcher.java:485) >> at org.apache.catalina.core.ApplicationDispatcher.doForward( >> ApplicationDispatcher.java:377) >> at org.apache.catalina.core.ApplicationDispatcher.forward( >> ApplicationDispatcher.java:337) >> 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.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventio >> nFilter.doFilter(ContentTypeBasedCachePreventionFilter.java:53) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( >> ApplicationFilterChain.java:241) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter( >> ApplicationFilterChain.java:208) >> at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter( >> HttpHeaderSecurityFilter.java:120) >> 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:218) >> at org.apache.catalina.core.StandardContextValve.invoke( >> StandardContextValve.java:122) >> at org.apache.catalina.authenticator.AuthenticatorBase.invoke( >> AuthenticatorBase.java:505) >> at org.apache.catalina.core.StandardHostValve.invoke( >> StandardHostValve.java:169) >> 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.event.receiver.core.internal.tenantmgt. >> TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:48) >> 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.CarbonStuckThreadDetectionValv >> e.invoke(CarbonStuckThreadDetectionValve.java:159) >> at org.apache.catalina.valves.AccessLogValve.invoke( >> AccessLogValve.java:958) >> 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:452) >> at org.apache.coyote.http11.AbstractHttp11Processor.process( >> AbstractHttp11Processor.java:1087) >> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler. >> process(AbstractProtocol.java:637) >> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor. >> doRun(NioEndpoint.java:1756) >> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor. >> run(NioEndpoint.java:1715) >> at java.util.concurrent.ThreadPoolExecutor.runWorker( >> ThreadPoolExecutor.java:1142) >> at java.util.concurrent.ThreadPoolExecutor$Worker.run( >> ThreadPoolExecutor.java:617) >> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( >> TaskThread.java:61) >> at java.lang.Thread.run(Thread.java:745) >> [2017-01-11 12:34:07,159] ERROR - WebAppManager >> org.mozilla.javascript.WrappedException: >> Wrapped org.wso2.carbon.hostobjects.sso.SignatureVerificationException >> (/store/jagg/jaggery_acs.jag#70) >> org.jaggeryjs.scriptengine.exceptions.ScriptException: >> org.mozilla.javascript.WrappedException: Wrapped >> org.wso2.carbon.hostobjects.sso.SignatureVerificationException >> (/store/jagg/jaggery_acs.jag#70) >> at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript( >> RhinoEngine.java:571) >> at org.jaggeryjs.scriptengine.engine.RhinoEngine.exec( >> RhinoEngine.java:273) >> at org.jaggeryjs.jaggery.core.manager.WebAppManager.exec( >> WebAppManager.java:588) >> at org.jaggeryjs.jaggery.core.manager.WebAppManager.execute( >> WebAppManager.java:508) >> at org.jaggeryjs.jaggery.core.JaggeryServlet.doPost( >> JaggeryServlet.java:29) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >> 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:747) >> at org.apache.catalina.core.ApplicationDispatcher.processRequest( >> ApplicationDispatcher.java:485) >> at org.apache.catalina.core.ApplicationDispatcher.doForward( >> ApplicationDispatcher.java:377) >> at org.apache.catalina.core.ApplicationDispatcher.forward( >> ApplicationDispatcher.java:337) >> 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.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventio >> nFilter.doFilter(ContentTypeBasedCachePreventionFilter.java:53) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( >> ApplicationFilterChain.java:241) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter( >> ApplicationFilterChain.java:208) >> at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter( >> HttpHeaderSecurityFilter.java:120) >> 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:218) >> at org.apache.catalina.core.StandardContextValve.invoke( >> StandardContextValve.java:122) >> at org.apache.catalina.authenticator.AuthenticatorBase.invoke( >> AuthenticatorBase.java:505) >> at org.apache.catalina.core.StandardHostValve.invoke( >> StandardHostValve.java:169) >> 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.event.receiver.core.internal.tenantmgt. >> TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:48) >> 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.CarbonStuckThreadDetectionValv >> e.invoke(CarbonStuckThreadDetectionValve.java:159) >> at org.apache.catalina.valves.AccessLogValve.invoke( >> AccessLogValve.java:958) >> 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:452) >> at org.apache.coyote.http11.AbstractHttp11Processor.process( >> AbstractHttp11Processor.java:1087) >> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler. >> process(AbstractProtocol.java:637) >> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor. >> doRun(NioEndpoint.java:1756) >> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor. >> run(NioEndpoint.java:1715) >> at java.util.concurrent.ThreadPoolExecutor.runWorker( >> ThreadPoolExecutor.java:1142) >> at java.util.concurrent.ThreadPoolExecutor$Worker.run( >> ThreadPoolExecutor.java:617) >> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( >> TaskThread.java:61) >> at java.lang.Thread.run(Thread.java:745) >> Caused by: org.mozilla.javascript.WrappedException: Wrapped >> org.wso2.carbon.hostobjects.sso.SignatureVerificationException >> (/store/jagg/jaggery_acs.jag#70) >> at org.mozilla.javascript.Context.throwAsScriptRuntimeEx( >> Context.java:1754) >> at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:148) >> at org.mozilla.javascript.FunctionObject.call(FunctionObject.java:386) >> at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32) >> at org.jaggeryjs.rhino.store.jagg.c0._c_anonymous_1(/store/ >> jagg/jaggery_acs.jag:70) >> at org.jaggeryjs.rhino.store.jagg.c0.call(/store/jagg/jaggery_acs.jag) >> at org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23) >> at org.jaggeryjs.rhino.store.jagg.c0._c_script_0(/store/ >> jagg/jaggery_acs.jag:5) >> at org.jaggeryjs.rhino.store.jagg.c0.call(/store/jagg/jaggery_acs.jag) >> at org.mozilla.javascript.ContextFactory.doTopCall( >> ContextFactory.java:394) >> at org.mozilla.javascript.ScriptRuntime.doTopCall( >> ScriptRuntime.java:3091) >> at org.jaggeryjs.rhino.store.jagg.c0.call(/store/jagg/jaggery_acs.jag) >> at org.jaggeryjs.rhino.store.jagg.c0.exec(/store/jagg/jaggery_acs.jag) >> at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript( >> RhinoEngine.java:567) >> ... 45 more >> Caused by: org.wso2.carbon.hostobjects.sso.SignatureVerificationException >> at org.wso2.carbon.hostobjects.sso.internal.util.Util. >> validateSignature(Util.java:332) >> at org.wso2.carbon.hostobjects.sso.SAMLSSORelyingPartyObject. >> jsFunction_validateSignature(SAMLSSORelyingPartyObject.java:168) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at sun.reflect.NativeMethodAccessorImpl.invoke( >> NativeMethodAccessorImpl.java:62) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke( >> DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:498) >> at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126) >> ... 57 more >> Caused by: java.lang.NullPointerException >> at java.io.File.<init>(File.java:277) >> at org.wso2.carbon.hostobjects.sso.internal.util.Util. >> validateSignature(Util.java:281) >> >> >> [1] https://github.com/wso2/carbon-apimgt/blob/master/ >> features/apimgt/org.wso2.carbon.apimgt.store.feature/ >> src/main/resources/store/site/themes/wso2/templates/sso/ >> filter/template.jag >> >> >> Fix with RC3 please. >> >> Thanks, >> Raj. >> >> On Wed, Jan 11, 2017 at 8:10 AM, Malintha Amarasinghe <malint...@wso2.com >> > wrote: >> >> Hi all, >> >> We are calling off the vote due to the problems found in stat graphs. We >> will do a RC3 soon. >> >> Thanks! >> Malintha >> >> On Wed, Jan 11, 2017 at 12:01 PM, Abimaran Kugathasan <abima...@wso2.com> >> wrote: >> >> Tested Endpoints, Throttling and general API invocations scenarios >> >> [+] Stable - go ahead and release >> >> On Wed, Jan 11, 2017 at 11:20 AM, Praminda Jayawardana <prami...@wso2.com >> > wrote: >> >> Tested client SDK generation for super tenant, non admin, tenant and self >> signup users. >> >> [+] Stable - go ahead and release >> >> On Wed, Jan 11, 2017 at 10:56 AM, Arshardh Ifthikar <arsha...@wso2.com> >> wrote: >> >> Tested the Websocket API feature >> >> [+] Stable - go ahead and release >> >> On Wed, Jan 11, 2017 at 10:52 AM, Tharindu Dharmarathna < >> tharin...@wso2.com> wrote: >> >> Tested the Blocking condition and Advance throtting feature >> >> [+] Stable - go ahead and release >> >> >> On Wed, Jan 11, 2017 at 10:50 AM, Chamila Adhikarinayake < >> chami...@wso2.com> wrote: >> >> Tested workflows for API lifecycle state change feature. >> >> [+] Stable - go ahead and release >> >> On Tue, Jan 10, 2017 at 4:35 PM, Malintha Amarasinghe <malint...@wso2.com >> > wrote: >> >> Hi All, >> >> This is the 2nd Release Candidate of WSO2 API Manager 2.1.0 >> >> Please download, test the product and vote. The vote will be open for 72 >> hours or as needed. >> >> Source and distribution >> >> Run-time : https://github.com/wso2/product-apim/releases/ >> download/v2.1.0-rc2/wso2am-2.1.0-RC2.zip >> Analytics : https://github.com/wso2/analytics-apim/releases/ >> download/v2.1.0-rc2/wso2am-analytics-2.1.0-RC2.zip >> Tooling : https://github.com/wso2/devstudio-tooling-apim/ >> releases/tag/v2.1.0-rc2 >> >> >> This release fixes the following issues: >> Runtime : https://wso2.org/jira/issues/?filter=13623 >> Analytics : https://wso2.org/jira/issues/?filter=13624 >> Tooling : https://wso2.org/jira/browse/DEVTOOLAPI-1 >> >> >> Please vote as follows. >> [+] Stable - go ahead and release >> [-] Broken - do not release (explain why) >> >> >> Thanks, >> - WSO2 API Manager Team - >> >> -- >> Malintha Amarasinghe >> Software Engineer >> *WSO2, Inc. - lean | enterprise | middleware* >> http://wso2.com/ >> >> Mobile : +94 712383306 <+94%2071%20238%203306> >> >> >> >> >> >> _______________________________________________ >> >> >> Architecture mailing list >> >> >> architect...@wso2.org >> >> >> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >> >> >> >> >> >> >> -- >> Regards, >> Chamila Adhikarinayake >> Software Engineer >> WSO2, Inc. >> Mobile - +94712346437 <+94%2071%20234%206437> >> Email - chami...@wso2.com >> Blog - http://helpfromadhi.blogspot.com/ >> >> >> >> >> >> _______________________________________________ >> >> >> Architecture mailing list >> >> >> architect...@wso2.org >> >> >> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >> >> >> >> >> >> >> -- >> >> *Tharindu Dharmarathna*Software Engineer >> >> >> WSO2 Inc.; http://wso2.com >> lean.enterprise.middleware >> >> >> >> mobile: *+94779109091 <+94%2077%20910%209091>* >> >> >> >> >> >> _______________________________________________ >> >> >> Architecture mailing list >> >> >> architect...@wso2.org >> >> >> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >> >> >> >> >> >> >> -- >> *Arshardh Ifthikar* >> Trainee Software Engineer >> WSO2, Inc. >> Mobile: +94719806525 <+94%2071%20980%206525> >> >> >> >> >> >> _______________________________________________ >> >> >> Dev mailing list >> >> >> Dev@wso2.org >> >> >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> >> >> >> >> >> -- >> >> *Praminda Jayawardana* >> Software Engineer >> WSO2 Inc.; http://wso2.com >> Mobile : +94 (0) 716 590918 <+94%2071%20659%200918> >> >> >> >> >> >> _______________________________________________ >> >> >> Architecture mailing list >> >> >> architect...@wso2.org >> >> >> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >> >> >> >> >> >> >> -- >> Thanks >> Abimaran Kugathasan >> Senior Software Engineer - API Technologies >> >> Email : abima...@wso2.com >> Mobile : +94 773922820 <+94%2077%20392%202820> >> >> <http://stackoverflow.com/users/515034> >> <http://lk.linkedin.com/in/abimaran> >> <http://www.lkabimaran.blogspot.com/> <https://github.com/abimarank> >> <https://twitter.com/abimaran> >> >> >> >> >> >> >> _______________________________________________ >> >> >> Dev mailing list >> >> >> Dev@wso2.org >> >> >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> >> >> >> >> >> -- >> Malintha Amarasinghe >> Software Engineer >> *WSO2, Inc. - lean | enterprise | middleware* >> http://wso2.com/ >> >> Mobile : +94 712383306 <+94%2071%20238%203306> >> >> >> >> >> >> _______________________________________________ >> >> >> Dev mailing list >> >> >> Dev@wso2.org >> >> >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> >> >> >> >> >> -- >> Rajkumar Rajaratnam >> Committer & PMC Member, Apache Stratos >> Senior Software Engineer, WSO2 >> >> LinkedIn : https://lk.linkedin.com/in/rajuu >> Mobile : +94777568639 <+94%2077%20756%208639> >> >> >> >> >> >> _______________________________________________ >> >> >> Dev mailing list >> >> >> Dev@wso2.org >> >> >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> >> >> >> >> >> -- >> Thanks >> Abimaran Kugathasan >> Senior Software Engineer - API Technologies >> >> Email : abima...@wso2.com >> Mobile : +94 773922820 <+94%2077%20392%202820> >> >> <http://stackoverflow.com/users/515034> >> <http://lk.linkedin.com/in/abimaran> >> <http://www.lkabimaran.blogspot.com/> <https://github.com/abimarank> >> <https://twitter.com/abimaran> >> >> >> >> -- Thanks Abimaran Kugathasan Senior Software Engineer - API Technologies Email : abima...@wso2.com Mobile : +94 773922820 <http://stackoverflow.com/users/515034> <http://lk.linkedin.com/in/abimaran> <http://www.lkabimaran.blogspot.com/> <https://github.com/abimarank> <https://twitter.com/abimaran>
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev