WSO2 MI Docker与MI Dashboard Docker连接登录报错求助
问题排查与解决方案
从你提供的异常栈追踪来看,报错根源是Dashboard尝试从Micro-Integrator(MI)获取认证Token时,返回的Token列表为空,导致索引越界。以下是具体的排查和修复步骤:
1. 补全Dashboard的MI服务器配置
你当前仅在MI容器中配置了Dashboard的地址,但Dashboard需要明确知晓所有MI节点的地址才能建立连接。需要修改Dashboard容器内的wso2mi-dashboard/conf/deployment.toml,添加所有MI节点的信息:
[mi_servers] [[mi_servers.server]] hostname = "172.17.0.x" # 替换为第一个MI容器的IP port = 9443 username = "admin" password = "admin" [[mi_servers.server]] hostname = "172.17.0.y" # 替换为第二个MI容器的IP port = 9443 username = "admin" password = "admin"
2. 验证MI的OAuth认证可用性
登录到Dashboard容器,执行以下命令测试能否从MI获取Token(替换<MI_IP>为实际MI容器地址):
curl -k https://<MI_IP>:9443/oauth2/token -u admin:admin -d "grant_type=password&username=admin&password=admin"
- 如果返回包含
access_token的JSON响应,说明MI的OAuth服务正常; - 如果返回错误,检查MI容器的
deployment.toml是否开启了OAuth出站认证:
确认后重启MI容器。[apim.oauth_config] enable_outbound_auth = true
3. 解决SSL证书信任问题(测试环境可用)
由于默认使用自签名证书,Dashboard可能无法信任MI的证书,导致请求失败。可以在Dashboard的deployment.toml中临时禁用SSL验证(生产环境建议导入证书):
[dashboard.security] ssl_verification_enabled = false
4. 重启容器
修改配置后,分别重启所有MI容器和Dashboard容器,确保配置生效。
5. 验证网络连通性
确认Dashboard容器能正常访问MI容器的9443端口:
telnet <MI_IP> 9443
如果无法连通,检查Docker网络配置,确保所有容器在同一网络内,或端口映射正确。
内容的提问来源于stack exchange,提问作者Mina Edwar
相关产品推荐
相关产品推荐

