Setup a new tyk 1.9 install on Centos 7.
Trying to use directory based middleware and running into a problem trying to use session data.
Our basic test script works when not using session data:
location: /opt/tyk-gateway/middleware/68f54535167c427053ac163865af8a97/post/insertVersionMiddleware.js
// Create a middleware object
var insertVersionMiddleware = new TykJS.TykMiddleware.NewMiddleware({});
insertVersionMiddleware.NewProcessRequest(function(request, session)
{
log(request.Body);
if (session.meta_data)
{
log("Got a session.meta_data object!!!");
}
return insertVersionMiddleware.ReturnData(request,{});
});
log(“insertVersion middleware initialised”);
When we try to use session data, we make the following changes:
rename file to insertVersionMiddleware_with_session.js
modified the return statement to:
return insertVersionMiddleware.ReturnData(request,session.meta_data);
After a reload using “192.168.10.146:8080/tyk/reload/group” the middleware loads successfully, however, we receive the following errors when trying to use it:
##Reload##
Mar 1 15:15:58 localhost tyk: time="2016-03-01T15:15:58-05:00" level=info msg="Group reload: sending to channel"
Mar 1 15:15:58 localhost tyk: time="2016-03-01T15:15:58-05:00" level=info msg="Reload signal received, reloading endpoints"
Mar 1 15:15:58 localhost tyk: time="2016-03-01T15:15:58-05:00" level=info msg="Reloaded URL Structure - Success"
##API detected and loaded##
Mar 1 15:16:08 localhost tyk: time="2016-03-01T15:16:08-05:00" level=info msg="Detected 1 APIs"
Mar 1 15:16:08 localhost tyk: time="2016-03-01T15:16:08-05:00" level=info msg="--> Loading API: SecureMail Stage"
Mar 1 15:16:08 localhost tyk: time="2016-03-01T15:16:08-05:00" level=info msg="----> Tracking: (no host)"
Mar 1 15:16:08 localhost tyk: time="2016-03-01T15:16:08-05:00" level=info msg="Loading JS File: /opt/tyk-gateway/middleware/68f54535167c427053ac163865af8a97/post/insertVersionMiddleware_with_session.js"
Mar 1 15:16:08 localhost tyk: time="2016-03-01T15:16:08-05:00" level=info msg="[JSVM] [LOG]: insertVersion middleware initialised"
Mar 1 15:16:08 localhost tyk: time="2016-03-01T15:16:08-05:00" level=info msg="----> Checking security policy: Token"
Mar 1 15:16:08 localhost tyk: time="2016-03-01T15:16:08-05:00" level=info msg="Loading uptime tests..."
Mar 1 15:16:08 localhost tyk: time="2016-03-01T15:16:08-05:00" level=info msg="Loaded 0 policies "
Mar 1 15:16:08 localhost tyk: time="2016-03-01T15:16:08-05:00" level=info msg="API reload complete"
##Error thrown when API accessed##
Mar 1 15:16:17 localhost tyk: time="2016-03-01T15:16:17-05:00" level=error msg="Failed to decode middleware request data on return from VM: invalid character 'u' looking for beginning of value"
Mar 1 15:16:22 localhost tyk: time="2016-03-01T15:16:22-05:00" level=error msg="http: proxy error: http: invalid Read on closed Body"
Note, we are using APIs using developer keys (Not Open APIs).
THanks!
Thomas