2016-06-07 78 views
2

我想集成Identity Server(IS)5.1.0和Api Manager(AM)1.10.0。 我跟着這個鏈接,https://docs.wso2.com/display/CLUSTER44x/Configuring+the+Pre-Packaged+Identity+Server+5.1.0+with+API+Manager+1.10.0集成Wso2 IS和AM後。如何利用集成?

現在我已打開Ldap和多因素身份驗證啓用並在我的身份服務器工作。我如何讓他們使用API​​管理器?

由於我集成了IS和AM,我想通過Ldap證書登錄到AM並通過多因素身份驗證。

-edit- 還有一件事,在集成之後,當我運行IS和AM時,我在兩個控制檯中都遇到了這個錯誤,但其他一切正常......這是什麼?

[2016-06-07 15:32:23,568] ERROR - ApiMgtDAO Failed to retrieve the API Context 
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'apimgt.am_api' doesn't exist 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
     at com.mysql.jdbc.Util.handleNewInstance(Util.java:389) 
     at com.mysql.jdbc.Util.getInstance(Util.java:372) 
     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:980) 
     at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3835) 
     at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3771) 
     at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435) 
     at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582) 
     at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2535) 
     at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1911) 
     at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2034) 
     at org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO.getAllAvailableContexts(ApiMgtDAO.java:7738) 
     at org.wso2.carbon.apimgt.impl.internal.APIManagerComponent.activate(APIManagerComponent.java:208) 
     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.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260) 
     at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146) 
     at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345) 
     at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620) 
     at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197) 
     at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343) 
     at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222) 
     at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107) 
     at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861) 
     at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 
     at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) 
     at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819) 
     at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771) 
     at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130) 
     at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214) 
     at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433) 
     at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451) 
     at org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:514) 
     at org.wso2.carbon.core.init.CarbonServerManager.start(CarbonServerManager.java:219) 
     at org.wso2.carbon.core.internal.CarbonCoreServiceComponent.activate(CarbonCoreServiceComponent.java:94) 
     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.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260) 
     at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146) 
     at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345) 
     at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620) 
     at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197) 
     at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343) 
     at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222) 
     at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107) 
     at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861) 
     at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 
     at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) 
     at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819) 
     at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771) 
     at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130) 
     at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214) 
     at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433) 
     at org.eclipse.equinox.http.servlet.internal.Activator.registerHttpService(Activator.java:81) 
     at org.eclipse.equinox.http.servlet.internal.Activator.addProxyServlet(Activator.java:60) 
     at org.eclipse.equinox.http.servlet.internal.ProxyServlet.init(ProxyServlet.java:40) 
     at org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.init(DelegationServlet.java:38) 
     at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284) 
     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197) 
     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087) 
     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5262) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5550) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
     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) 

-edit2-

我遇到了另一個問題,當我嘗試部署/創建API馬槽一個API,並試圖挽救它,它說,錯誤部署API整合後。

回答

0

API Manager和Identity Server都應指向相同的用戶存儲。

由於您已經將Identity Server配置爲指向Open LDAP,因此您還必須在API Manager的<APIM_HOME>/repository/conf/user-mgt.xml文件中執行同樣的操作。可以發現

更多信息here

+1

我已經這樣做了,現在Ldap也適用於API Manager,如何在Api Manager上實現多因素驗證? –

+0

所以基本上現在你想使用WSO2 IS使用多因素認證來登錄APIM? – farasath

+0

@JohnSeen,對於編輯中提到的錯誤,您是否使用了指南中提到的-Dsetup參數來啓動服務器? –

0

正如Abimaran提到,無論API Manager和Identity Server應指向同一userstore,用於安裝用戶存儲的Open LDAP。 對於編輯中提到的錯誤,您必須使用指南中提到的-Dsetup參數來啓動服務器。將IS配置爲密鑰管理器後,可能會丟失表格。

對於管理控制檯登錄的多因素身份驗證(用於生成訪問令牌的MFA不同),必須使用WSO2 IS配置API管理器的SSO,如解釋here所述。然後,您可以使用此here上發佈的其他問題中提供的鏈接。

+0

是的,我用-Dsetup啓動了服務器。之後,我也得到了錯誤。只有這個apimgt.am_api沒有被創建,其他表被創建。 我會研究MFA的東西,並嘗試它。 –

+0

看來你必須使用API​​M_HOME/dbscripts /目錄下的API Manager提供的腳本。 –