2016-10-18 50 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 。我应该更新哪些内容才能解决此问题? –

相关问题