Any ideas guys?
Regards, Hanen On Fri, Nov 18, 2016 at 4:38 PM, Hanen Ben Rhouma <[email protected]> wrote: > Hello, > > The tutorial doesn't answer the question "how can I interface with a REST > API", there are many examples around custom JDBC stores but for REST calls > I couldn't find anything. > There are other examples about transforming WSO2 OSGi bundles into REST > APIs but this not what I'm looking for. > The idea is to inherit from AbstractUserStoreManager and override its > methods in order to communicate with a third party REST API to retrieve > user details and roles without having to mention a JDBC or LDAP store > properties in user-mgt.xml. > > Is this feasible guys? > > > > Regards, > Hanen > > On Thu, Nov 3, 2016 at 9:53 AM, Hanen Ben Rhouma <[email protected]> > wrote: > >> Thanks Gayan, >> >> I followed the blog entry but now I'm receiving another kind of error >> related to domain name: >> >> [2016-11-03 09:50:15,556] ERROR {org.wso2.carbon.identity.user >> .store.configuration.UserStoreConfigAdminService} - Error occurred >> during the transformation process of C:\Users\rhoumah\DOCUME~1\LMR\ >> WSO2\WSO2IS~1.0\bin\..\repository\deployment\server\userstores\custom.xml >> org.wso2.carbon.identity.user.store.configuration.utils.IdentityUserStoreMgtException: >> Error occurred during the transformation process of >> C:\Users\rhoumah\DOCUME~1\LMR\WSO2\WSO2IS~1.0\bin\..\reposit >> ory\deployment\server\userstores\custom.xml >> at org.wso2.carbon.identity.user.store.configuration.UserStoreC >> onfigAdminService.writeUserMgtXMLFile(UserStoreConfigAdminSe >> rvice.java:831) >> at org.wso2.carbon.identity.user.store.configuration.UserStoreC >> onfigAdminService.addUserStore(UserStoreConfigAdminService.java:270) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce >> ssorImpl.java:62) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe >> thodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:498) >> at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass( >> RPCUtil.java:212) >> at org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver.invo >> keBusinessLogic(RPCInOnlyMessageReceiver.java:66) >> at org.apache.axis2.receivers.AbstractMessageReceiver.receive(A >> bstractMessageReceiver.java:110) >> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java: >> 180) >> at org.apache.axis2.transport.local.LocalTransportReceiver.proc >> essMessage(LocalTransportReceiver.java:169) >> at org.apache.axis2.transport.local.LocalTransportReceiver.proc >> essMessage(LocalTransportReceiver.java:82) >> at org.wso2.carbon.core.transports.local.CarbonLocalTransportSe >> nder.finalizeSendWithToAddress(CarbonLocalTransportSender.java:45) >> at org.apache.axis2.transport.local.LocalTransportSender.invoke >> (LocalTransportSender.java:77) >> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442) >> at org.apache.axis2.description.OutInAxisOperationClient.send(O >> utInAxisOperation.java:430) >> at org.apache.axis2.description.OutInAxisOperationClient.execut >> eImpl(OutInAxisOperation.java:225) >> at org.apache.axis2.client.OperationClient.execute(OperationCli >> ent.java:149) >> at org.wso2.carbon.identity.user.store.configuration.stub.UserS >> toreConfigAdminServiceStub.addUserStore(UserStoreConfigAd >> minServiceStub.java:889) >> at org.wso2.carbon.identity.user.store.configuration.ui.client. >> UserStoreConfigAdminServiceClient.addUserStore(UserStoreConf >> igAdminServiceClient.java:95) >> at org.apache.jsp.userstore_005fconfig.userstore_002dconfig_ >> 002dfinish_002dajaxprocessor_jsp._jspService(userstore_002d >> config_002dfinish_002dajaxprocessor_jsp.java:198) >> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase. >> java:70) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >> at org.apache.jasper.servlet.JspServletWrapper.service(JspServl >> etWrapper.java:439) >> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServl >> et.java:395) >> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java >> :339) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >> at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:155) >> at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet. >> java:80) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >> at org.eclipse.equinox.http.helper.ContextPathServletAdaptor.se >> rvice(ContextPathServletAdaptor.java:37) >> at org.eclipse.equinox.http.servlet.internal.ServletRegistratio >> n.service(ServletRegistration.java:61) >> at org.eclipse.equinox.http.servlet.internal.ProxyServlet.proce >> ssAlias(ProxyServlet.java:128) >> at org.eclipse.equinox.http.servlet.internal.ProxyServlet.servi >> ce(ProxyServlet.java:68) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >> at org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service >> (DelegationServlet.java:68) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:303) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:208) >> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilte >> r.java:52) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:241) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:208) >> at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilte >> r(HttpHeaderSecurityFilter.java:120) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:241) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:208) >> at org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilte >> r(CharacterSetFilter.java:61) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:241) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:208) >> at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilte >> r(HttpHeaderSecurityFilter.java:120) >> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >> lter(ApplicationFilterChain.java:241) >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >> licationFilterChain.java:208) >> at org.apache.catalina.core.StandardWrapperValve.invoke(Standar >> dWrapperValve.java:218) >> at org.apache.catalina.core.StandardContextValve.invoke(Standar >> dContextValve.java:122) >> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(A >> uthenticatorBase.java:505) >> at org.apache.catalina.core.StandardHostValve.invoke(StandardHo >> stValve.java:169) >> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepo >> rtValve.java:103) >> at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInv >> ocation(CompositeValve.java:99) >> at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke >> (CarbonTomcatValve.java:47) >> at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(Tena >> ntLazyLoaderValve.java:57) >> at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invok >> eValves(TomcatValveContainer.java:47) >> at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(Comp >> ositeValve.java:62) >> at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetection >> Valve.invoke(CarbonStuckThreadDetectionValve.java:159) >> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogVa >> lve.java:956) >> at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve. >> invoke(CarbonContextCreatorValve.java:57) >> at org.apache.catalina.core.StandardEngineValve.invoke(Standard >> EngineValve.java:116) >> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd >> apter.java:442) >> at org.apache.coyote.http11.AbstractHttp11Processor.process(Abs >> tractHttp11Processor.java:1082) >> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler >> .process(AbstractProtocol.java:623) >> 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(ThreadPool >> Executor.java:1142) >> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo >> lExecutor.java:617) >> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable. >> run(TaskThread.java:61) >> at java.lang.Thread.run(Thread.java:745) >> Caused by: javax.xml.transform.TransformerException: >> java.io.FileNotFoundException: C:\Users\rhoumah\DOCUME%7E1\LM >> R\WSO2\WSO2IS%7E1.0\bin\..\repository\deployment\server\userstores\custom.xml >> (The system cannot find the path specified) >> at org.apache.xalan.transformer.TransformerIdentityImpl.createR >> esultContentHandler(TransformerIdentityImpl.java:297) >> at org.apache.xalan.transformer.TransformerIdentityImpl.transfo >> rm(TransformerIdentityImpl.java:330) >> at org.wso2.carbon.identity.user.store.configuration.UserStoreC >> onfigAdminService.writeUserMgtXMLFile(UserStoreConfigAdminSe >> rvice.java:825) >> >> >> How can I configure the domain in order for WSO2 IS to generate the >> required XML file? >> >> >> Regards, >> >> >> *Hanen Ben Rhouma* >> *Java Tech Lead* >> >> On Wed, Nov 2, 2016 at 7:14 PM, Gayan Gunawardana <[email protected]> wrote: >> >>> >>> >>> On Wed, Nov 2, 2016 at 8:53 PM, Hanen Ben Rhouma <[email protected]> >>> wrote: >>> >>>> Thanks for the reply Gayan, >>>> >>>> Actually I'm facing an issue while trying to deploy the custom user >>>> store jar file under WSO2 IS, though I put it in >>>> <PRODUCT_HOME>/repository/components/dropins and changed >>>> <PRODUCT_HOME>/repository/conf/user-mgt.xml according to the >>>> documentation I'm receiving a ClassNotFound error: >>>> >>>> [2016-11-02 16:16:03,660] ERROR >>>> {org.wso2.carbon.user.core.common.DefaultRealm} >>>> - com.wso2.custom.usermgt.CustomUserStoreManager cannot be found by >>>> org.wso2.carbon.user.core_4.4.9Type class >>>> java.lang.ClassNotFoundException >>>> org.wso2.carbon.user.core.UserStoreException: >>>> com.wso2.custom.usermgt.CustomUserStoreManager cannot be found by >>>> org.wso2.carbon.user.core_4.4.9Type class >>>> java.lang.ClassNotFoundException >>>> at org.wso2.carbon.user.core.common.DefaultRealm.createObjectWi >>>> thOptions(DefaultRealm.java:401) >>>> at org.wso2.carbon.user.core.common.DefaultRealm.initializeObje >>>> cts(DefaultRealm.java:222) >>>> at org.wso2.carbon.user.core.common.DefaultRealm.init(DefaultRe >>>> alm.java:127) >>>> at org.wso2.carbon.user.core.common.DefaultRealmService.initial >>>> izeRealm(DefaultRealmService.java:263) >>>> at org.wso2.carbon.user.core.common.DefaultRealmService.<init>( >>>> DefaultRealmService.java:100) >>>> at org.wso2.carbon.user.core.common.DefaultRealmService.<init>( >>>> DefaultRealmService.java:113) >>>> at org.wso2.carbon.user.core.internal.Activator.startDeploy(Act >>>> ivator.java:68) >>>> at org.wso2.carbon.user.core.internal.BundleCheckActivator.star >>>> t(BundleCheckActivator.java:61) >>>> at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1 >>>> .run(BundleContextImpl.java:711) >>>> at java.security.AccessController.doPrivileged(Native Method) >>>> at org.eclipse.osgi.framework.internal.core.BundleContextImpl.s >>>> tartActivator(BundleContextImpl.java:702) >>>> at org.eclipse.osgi.framework.internal.core.BundleContextImpl.s >>>> tart(BundleContextImpl.java:683) >>>> at org.eclipse.osgi.framework.internal.core.BundleHost.startWor >>>> ker(BundleHost.java:381) >>>> at org.eclipse.osgi.framework.internal.core.AbstractBundle.resu >>>> me(AbstractBundle.java:390) >>>> at org.eclipse.osgi.framework.internal.core.Framework.resumeBun >>>> dle(Framework.java:1176) >>>> at org.eclipse.osgi.framework.internal.core.StartLevelManager.r >>>> esumeBundles(StartLevelManager.java:559) >>>> at org.eclipse.osgi.framework.internal.core.StartLevelManager.r >>>> esumeBundles(StartLevelManager.java:544) >>>> at org.eclipse.osgi.framework.internal.core.StartLevelManager.i >>>> ncFWSL(StartLevelManager.java:457) >>>> at org.eclipse.osgi.framework.internal.core.StartLevelManager.d >>>> oSetStartLevel(StartLevelManager.java:243) >>>> at org.eclipse.osgi.framework.internal.core.StartLevelManager.d >>>> ispatchEvent(StartLevelManager.java:438) >>>> at org.eclipse.osgi.framework.internal.core.StartLevelManager.d >>>> ispatchEvent(StartLevelManager.java:1) >>>> at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEve >>>> nt(EventManager.java:230) >>>> at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread >>>> .run(EventManager.java:340) >>>> Caused by: java.lang.ClassNotFoundException: >>>> com.wso2.custom.usermgt.CustomUserStoreManager cannot be found by >>>> org.wso2.carbon.user.core_4.4.9 >>>> at org.eclipse.osgi.internal.loader.BundleLoader.findClassInter >>>> nal(BundleLoader.java:501) >>>> at org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund >>>> leLoader.java:421) >>>> at org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund >>>> leLoader.java:412) >>>> at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa >>>> dClass(DefaultClassLoader.java:107) >>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) >>>> at java.lang.Class.forName0(Native Method) >>>> at java.lang.Class.forName(Class.java:264) >>>> at org.wso2.carbon.user.core.common.DefaultRealm.createObjectWi >>>> thOptions(DefaultRealm.java:345) >>>> >>>> >>>> Is there a missing config step in order to load the new jar? >>>> >>> According to exception I guess >>> com.wso2.custom.usermgt.CustomUserStoreManager >>> was not added to OSGI environment. You have to register >>> CustomUserStoreManager as an OSGI service. >>> >>> CustomUserStoreManager customUserStoreManager = new >>> CustomUserStoreManager(); >>> ctxt.getBundleContext().registerService(UserStoreManager.class.getName(), >>> customUserStoreManager, props); >>> >>> Please try sample code provided in [1]. >>> >>> [1]http://isurad.blogspot.com/2016/03/how-to-write-custom-us >>> er-store-manager.html >>> >>> >>> >>>> >>>> >>>> >>>> Regards, >>>> >>>> >>>> *Hanen Ben Rhouma* >>>> *Java Tech Lead* >>>> >>>> On Tue, Nov 1, 2016 at 2:10 AM, Gayan Gunawardana <[email protected]> >>>> wrote: >>>> >>>>> Hi Hanen, >>>>> >>>>> On Mon, Oct 31, 2016 at 9:57 PM, Hanen Ben Rhouma <[email protected]> >>>>> wrote: >>>>> >>>>>> Thanks guys for your help but I guess I didn't explain it well; >>>>>> Actually, I'm looking for a step by step configuration that allows me to >>>>>> create an identity provider which jumps to our DB or any other inhouse >>>>>> endpoint (it can be a REST endpoint) in order to retrieve user details >>>>>> and >>>>>> aggregate them within the SAML token. Is there a way to do it through >>>>>> WSO2 >>>>>> IS? >>>>>> >>>>> You can write custom user store manager according to [1] and override >>>>> doAuthenticate, >>>>> doGetUserClaimValue methods to jump into your DB or REST endpoint. >>>>> Once you have custom user store, you can configure a service provider >>>>> in WSO2 IS with SAML inbound protocol. >>>>> >>>>> [1] https://docs.wso2.com/display/IS520/Writing+a+Custom+User+St >>>>> ore+Manager >>>>> >>>>>> >>>>>> >>>>>> Thanks, >>>>>> Hanen >>>>>> >>>>>> >>>>>> >>>>>> On Fri, Oct 28, 2016 at 8:07 PM, Gayan Gunawardana <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Fri, Oct 28, 2016 at 2:54 PM, Lakshani Gamage <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi Hanen, >>>>>>>> >>>>>>>> This article [1] contains how to communicate Identity server with >>>>>>>> REST APIs. It will be a help to your POC. >>>>>>>> >>>>>>>> [1] http://wso2.com/library/articles/2016/10/article-exposing-ws >>>>>>>> o2-identity-server-admin-services-the-rest-way/ >>>>>>>> >>>>>>>> Regards, >>>>>>>> Lakshani >>>>>>>> >>>>>>>> On Fri, Oct 28, 2016 at 1:22 PM, Ben Rhouma, Hanen (FircoSoft) < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hello, >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> We’re working on a POC related to Authentication and Identity >>>>>>>>> Management using WSO2. We’re looking for a way to configure the >>>>>>>>> Identity >>>>>>>>> Provider to communicate with a REST API or even a database in order to >>>>>>>>> retrieve more details about the user trying to authenticate so that >>>>>>>>> those >>>>>>>>> details can be used to generate the token. >>>>>>>>> >>>>>>>> What sort of token you expect to generate ? >>>>>>> If you are looking for REST way to get authenticated user >>>>>>> information OIDC might help[1]. If you can explain exact use case we can >>>>>>> help you more. >>>>>>> >>>>>>> [1]https://docs.wso2.com/display/IS520/OpenID+Connect >>>>>>> >>>>>>>> Is there a tutorial or a documentation part which can point us >>>>>>>>> directly to such use case implementation? >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> >>>>>>>>> Hanen >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Dev mailing list >>>>>>>>> [email protected] >>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Lakshani Gamage >>>>>>>> >>>>>>>> *Software Engineer, WSO2* >>>>>>>> >>>>>>>> *Mobile : +94 71 5478184 <%2B94%20%280%29%20773%20451194>* >>>>>>>> *Blog : http://lakshanigamage.blogspot.com/ >>>>>>>> <http://lakshanigamage.blogspot.com/>* >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Gayan Gunawardana >>>>>>> Software Engineer; WSO2 Inc.; http://wso2.com/ >>>>>>> Email: [email protected] >>>>>>> Mobile: +94 (71) 8020933 >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Dev mailing list >>>>>>> [email protected] >>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Gayan Gunawardana >>>>> Software Engineer; WSO2 Inc.; http://wso2.com/ >>>>> Email: [email protected] >>>>> Mobile: +94 (71) 8020933 >>>>> >>>> >>>> >>> >>> >>> -- >>> Gayan Gunawardana >>> Software Engineer; WSO2 Inc.; http://wso2.com/ >>> Email: [email protected] >>> Mobile: +94 (71) 8020933 >>> >> >> >
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
