-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathkibana-express-session.js
37 lines (33 loc) · 1.18 KB
/
kibana-express-session.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const expressSessionHapi = require('express-session-hapi');
const PLUGIN_NAME = 'kibana-express-session';
module.exports = function (kibana) {
return new kibana.Plugin({
config(Joi) {
return Joi.object({
cookieName: Joi.string(),
enabled: Joi.boolean().default(true),
redirectTo: Joi.string().default('/login'),
redis: Joi.object().keys({
host: Joi.string(),
port: Joi.number().default(6379)
}),
secret: Joi.string(),
sessionIDPrefix: Joi.string(),
userProp: Joi.string().default('user'),
}).default()
},
init: function (server) {
const config = server.config();
server.register(expressSessionHapi, function () {
server.auth.strategy('session', 'cookie', 'required', {
cookieName: config.get(`${PLUGIN_NAME}.cookieName`),
redirectTo: config.get(`${PLUGIN_NAME}.redirectTo`),
redis: config.get(`${PLUGIN_NAME}.redis`),
secret: config.get(`${PLUGIN_NAME}.secret`),
sessionIDPrefix: config.get(`${PLUGIN_NAME}.sessionIDPrefix`),
userProp: config.get(`${PLUGIN_NAME}.userProp`),
});
});
}
});
};