Fiware 使用keystone进行身份验证后,Cosmos gui应用程序崩溃

Fiware 使用keystone进行身份验证后,Cosmos gui应用程序崩溃,fiware,fiware-cosmos,Fiware,Fiware Cosmos,我有个问题。尝试使用keystone进行授权后,我的cosmos gui应用程序崩溃。 地平线应用程序正在运行, 当cosmos gui正在运行时。 我的gui配置文件如下所示: "oauth2": { "idmURL": "https://192.168.4.33", "client_id": "***********************************", "client_secret": "*********************************", "callbac

我有个问题。尝试使用keystone进行授权后,我的cosmos gui应用程序崩溃。 地平线应用程序正在运行, 当cosmos gui正在运行时。 我的gui配置文件如下所示:

"oauth2": {
"idmURL": "https://192.168.4.33",
"client_id": "***********************************",
"client_secret": "*********************************",
"callbackURL": "http://192.168.4.180:81/auth",
"response_type": "code"
},

在horizon内部,我注册了应用程序Cosmos Big data 带参数:

Description
Cosmos Big data

URL
https://192.168.4.33

Callback URL
http://192.168.4.180:81/auth
因此,之后我启动cosmos gui应用程序,单击登录后,它会将我重定向到以下url:

https://192.168.4.33/oauth2/authorize/?response_type=code&client_id=0434fdf60897479588c3c31cfc957b6d&state=xyz&redirect_uri=http://192.168.4.180:81/auth
http://192.168.4.180:81/auth?state=xyz&code=NVfyZUov1KuQ8yTw498oItHgYC2l9Z
没关系。但是,当我单击“授权”按钮时,它会将我引导到以下url:

https://192.168.4.33/oauth2/authorize/?response_type=code&client_id=0434fdf60897479588c3c31cfc957b6d&state=xyz&redirect_uri=http://192.168.4.180:81/auth
http://192.168.4.180:81/auth?state=xyz&code=NVfyZUov1KuQ8yTw498oItHgYC2l9Z
此时,cosmos gui应用程序崩溃,我从日志中得到的所有信息如下:

/home/cosmos-gui/fiware-cosmos/cosmos-gui/src/app.js:138
    req.session.access_token = results.access_token;
                                      ^
TypeError: Cannot read property 'access_token' of undefined
at /home/cosmos-gui/fiware-cosmos/cosmos-gui/src/app.js:138:43
at /home/cosmos-gui/fiware-cosmos/cosmos-gui/src/oauth2.js:168:22
at ClientRequest.<anonymous> (/home/cosmos-gui/fiware-cosmos/cosmos-  gui/src/oauth2.js:140:9)
at ClientRequest.emit (events.js:95:17)
at CleartextStream.socketErrorListener (http.js:1548:9)
at CleartextStream.emit (events.js:95:17)
at SecurePair.<anonymous> (tls.js:1400:19)
at SecurePair.emit (events.js:92:17)
at SecurePair.maybeInitFinished (tls.js:980:10)
at CleartextStream.read [as _read] (tls.js:472:13)

经过一些调试和打印参数后,这些参数进入app.get('/auth',function(req,res)

我发现了这个错误:深度\u零\u自签名\u证书

它似乎不承认自签名证书是有效的。 无论如何,作为文件中的第一行:

cosmos gui/src/app.js 我补充说


现在它正在工作。

当您在Keystone中授权Cosmos应用程序时,将调用回调URL并执行此软件:

// Handles requests from IDM with the access code

app.get('/auth', function(req, res) {
    // Using the access code goes again to the IDM to obtain the access_token
    oa.getOAuthAccessToken(req.query.code, function (e, results){
    // Stores the access_token in a session cookie
        req.session.access_token = results.access_token;
        res.redirect('/');
    });
});
也就是说,Keystone使用访问代码(软安全性)调用回调,该代码可用于检索最终访问令牌(硬安全性元素)

您的Keystone似乎正在生成访问代码,但在请求时没有返回访问令牌。您能否检查Keystone日志以查找访问令牌请求?您是否可以打印此调用返回的任何错误

oa.getOAuthAccessToken(req.query.code, function (e, results)

我没有注意到这个自我回答,对不起。那么,它修复了错误吗?是的,修复了它。:)