2016-10-18 48 views
0

我最近將環境從WSO2 IS 5.0.0更新爲WSO2 IS 5.2.0。我的環境由兩臺創建集羣的機器組成(使用啓用了粘性會話的WKA成員資格模式和負載平衡器(AWS ELB))。我正在使用MySQL(不是默認的H2數據庫)。部署IS的機器是Windows Server 2012 R2(EC2 AWS機器)。無法重用從WSO2 IS 5.0.0遷移到WSO2 IS 5.2.0租戶

我也使用WSO2 IS多租戶。當我用的就是5.0.0我有幾個租戶,我以爲我已經按照中提到的說明正確遷移:
https://docs.wso2.com/display/IS510/Upgrading+from+a+Previous+Release
https://docs.wso2.com/display/IS520/Upgrading+from+a+Previous+Release

不幸的是,當我試圖用的一個使用密碼交付式租戶之一中的配置文件收到以下響應:
{
「error」:「server_error」,
「error_description」:「內部服務器錯誤」。
}
代替接收有效的訪問令牌。在控制檯日誌中的錯誤是

[2016-10-21 15:41:34,941] ERROR {org.wso2.carbon.identity.oauth2.OAuth2Service} - Error occurred while issuing the access token for Client ID : klaFcti7TeDeEqFbzZr_HYKEEBga, User ID [email protected]@test 
and Grant Type : password 
java.lang.NullPointerException 
at org.wso2.carbon.identity.openidconnect.DefaultIDTokenBuilder.buildIDToken(DefaultIDTokenBuilder.java:147) 
at org.wso2.carbon.identity.oauth2.token.AccessTokenIssuer.issue(AccessTokenIssuer.java:268) 
at org.wso2.carbon.identity.oauth2.OAuth2Service.issueAccessToken(OAuth2Service.java:219) 
at org.wso2.carbon.identity.oauth.endpoint.token.OAuth2TokenEndpoint.getAccessToken(OAuth2TokenEndpoint.java:246) 
at org.wso2.carbon.identity.oauth.endpoint.token.OAuth2TokenEndpoint.issueAccessToken(OAuth2TokenEndpoint.java:110) 
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.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:188) 
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:104) 
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:204) 
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:101) 
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) 
at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:94) 
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) 
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) 
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:249) 
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248) 
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222) 
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153) 
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171) 
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:289) 
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:209) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) 
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:265) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
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.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.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:956) 
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:442) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.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(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) 

然後我試圖創造全新的租戶,也做了同樣的情況,但是這一次我能得到有效的訪問令牌的用戶。

而且,當我嘗試登錄時,通過管理控制檯從5.0.0租戶遷移,我收到以下錯誤:
[IS] {錯誤} org.wso2.carbon.core.deployment.DeploymentInterceptor - 而在STSDeploymentInterceptor 產生java.io.IOException更新wso2carbon-STS錯誤:無效的密鑰庫格式
請附上日誌文件:
https://www.dropbox.com/s/jwstx6my3jcdjiz/Invalid%20keystore%20format.log?dl=0
似乎出於某種原因5.2.0正在考慮這些密鑰庫爲無效的。我認爲這些密鑰庫是在創建租戶時創建的,所以我不太清楚是什麼導致了這種行爲,以及爲什麼WSO2 IS 5.2.0將WSO2 IS 5.0.0租戶的密鑰庫視爲無效。
存在密鑰庫。

您是否認爲這與某些錯誤配置或問題有關,而這些租戶是從5.0.0遷移到5.2.0的?有沒有辦法解決這種行爲,而不是失去租戶?

在此先感謝

+0

您是否可以在wso2carbon.log文件中看到任何錯誤。如果您能看到,請附上日誌文件 –

+0

已更新該帖子,其中包含指向描述不同場景中不同錯誤的文件的鏈接。以下是整個console.log的鏈接: https://www.dropbox.com/s/vpndhfvgh3xn76x/TenantErrorsConsole.log?dl = 0 我希望你覺得這些信息很有幫助。 謝謝。 –

回答

0

根據該錯誤,它找不到註冊表項存儲。您可以瀏覽租戶註冊表並檢查密鑰存儲是否存在。

密鑰庫位置:/ _ system/governance/repository/security/key-stores。

如果密鑰存儲不存在,請檢查註冊表數據庫配置。

謝謝
Isura。

+0

感謝您的回覆。這是否意味着註冊表數據庫的遷移最終不會成功(5.0.0到5.1.0)?在哪些表格中我應該仔細檢查是否填寫了必要的信息? –

+0

我檢查了註冊表數據庫配置,實際上我不得不修改一個文件。在我這樣做後,情況好轉了一點。當我登錄租戶的管理控制檯時,我可以看到所有圖像,並且不會在日誌文件中獲得有關.css文件的錯誤。但是,我收到「錯誤,同時更新STSDeploymentInterceptor 中的wso2carbon-sts java.io.IOException:無效的密鑰存儲格式」錯誤:https://www.dropbox.com/s/jwstx6my3jcdjiz/Invalid%20keystore%20format.log?dl=0 。我應該更新哪些內容才能解決此問題? –

相關問題