Skip to content

Commit 25ae372

Browse files
committed
mess with logging, remove redundant header adding
1 parent f8bd1c5 commit 25ae372

9 files changed

Lines changed: 45 additions & 37 deletions

File tree

OpenFlow/package.json

Lines changed: 0 additions & 5 deletions
This file was deleted.

OpenFlow/src/Config.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ export class Config {
3030
Config.log_login_provider = Config.parseBoolean(Config.getEnv("log_login_provider", "false"));
3131
Config.log_websocket = Config.parseBoolean(Config.getEnv("log_websocket", "false"));
3232
Config.log_oauth = Config.parseBoolean(Config.getEnv("log_oauth", "false"));
33+
Config.log_webserver = Config.parseBoolean(Config.getEnv("log_webserver", "false"));
34+
Config.log_database = Config.parseBoolean(Config.getEnv("log_database", "false"));
3335

3436
Config.amqp_allow_replyto_empty_queuename = Config.parseBoolean(Config.getEnv("amqp_allow_replyto_empty_queuename", "false"));
3537

@@ -200,6 +202,9 @@ export class Config {
200202
public static log_with_trace: boolean = Config.parseBoolean(Config.getEnv("log_with_trace", "false"));
201203
public static log_websocket: boolean = Config.parseBoolean(Config.getEnv("log_websocket", "false"));
202204
public static log_oauth: boolean = Config.parseBoolean(Config.getEnv("log_oauth", "false"));
205+
public static log_webserver: boolean = Config.parseBoolean(Config.getEnv("log_webserver", "false"));
206+
public static log_database: boolean = Config.parseBoolean(Config.getEnv("log_database", "false"));
207+
203208

204209
public static amqp_allow_replyto_empty_queuename: boolean = Config.parseBoolean(Config.getEnv("amqp_allow_replyto_empty_queuename", "false"));
205210

OpenFlow/src/DatabaseConnection.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1099,7 +1099,7 @@ export class DatabaseConnection extends events.EventEmitter {
10991099
Logger.otel.endTimer(ot_end, DatabaseConnection.mongodb_aggregate, { collection: collectionname });
11001100
DatabaseConnection.traversejsondecode(items);
11011101
Logger.instanse.debug("DatabaseConnection", "aggregate", "[" + user.username + "][" + collectionname + "] aggregate gave " + items.length + " results ");
1102-
Logger.instanse.debug("DatabaseConnection", "aggregate", aggregatesjson);
1102+
Logger.instanse.silly("DatabaseConnection", "aggregate", aggregatesjson);
11031103
return items;
11041104
} catch (error) {
11051105
Logger.instanse.error("DatabaseConnection", "aggregate", error);
@@ -1404,13 +1404,15 @@ export class DatabaseConnection extends events.EventEmitter {
14041404
if (NoderedUtil.IsNullEmpty(u.username)) { throw new Error("Username is mandatory"); }
14051405
if (NoderedUtil.IsNullEmpty(u.name)) { throw new Error("Name is mandatory"); }
14061406
span?.addEvent("FindByUsername");
1407+
Logger.DBHelper.clearCache("check for dublicates");
14071408
const exists = await Logger.DBHelper.FindByUsername(u.username, null, span);
14081409
if (exists != null) { throw new Error("Access denied, user '" + u.username + "' already exists"); }
14091410
}
14101411
if (collectionname === "users" && item._type === "role") {
14111412
const r: Role = (item as any);
14121413
if (NoderedUtil.IsNullEmpty(r.name)) { throw new Error("Name is mandatory"); }
14131414
span?.addEvent("FindByUsername");
1415+
Logger.DBHelper.clearCache("check for dublicates");
14141416
const exists2 = await Logger.DBHelper.FindRoleByName(r.name, span);
14151417
if (exists2 != null) { throw new Error("Access denied, role '" + r.name + "' already exists"); }
14161418
}

OpenFlow/src/Logger.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,13 @@ export class Logger {
4545
let Yellow = Console.Reset + Console.Bright + Console.FgYellow;
4646
let darkYellow = Console.Reset + Console.Dim + Console.FgYellow;
4747
let Blue = Console.Reset + Console.Bright + Console.FgBlue;
48+
let Cyan = Console.Reset + Console.Bright + Console.FgCyan;
4849
let dt = new Date();
4950
if (cls == "cli" || cls == "cli-lic" || cls == "cliutil") cls = "";
5051
let prefix = "";
51-
let color = Blue;
52-
if (lvl == level.Debug || lvl == level.Verbose || lvl == level.Silly) color = Grey;
52+
let color = Cyan;
53+
if (lvl == level.Debug) color = Blue;
54+
if (lvl == level.Verbose || lvl == level.Silly) color = Grey;
5355
if (lvl == level.Error) color = Red;
5456
if (lvl == level.Warning) color = darkYellow;
5557
if (cls != "") {
@@ -128,6 +130,9 @@ export class Logger {
128130
if (Config.log_websocket) Logger.enabled["WebSocketServer"] = level.Verbose;
129131
if (Config.log_websocket) Logger.enabled["WebSocketServerClient"] = level.Verbose;
130132
if (Config.log_oauth) Logger.enabled["OAuthProvider"] = level.Verbose;
133+
if (Config.log_webserver) Logger.enabled["WebServer"] = level.Verbose;
134+
if (Config.log_database) Logger.enabled["DatabaseConnection"] = level.Verbose;
135+
131136

132137

133138
if (Config.otel_debug_log) Logger.enabled["WebSocketServerClient"] = level.Verbose;

OpenFlow/src/LoginProvider.ts

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ export class LoginProvider {
138138
done(null, user._id);
139139
});
140140
passport.deserializeUser(async function (userid: string, done: any): Promise<void> {
141-
Logger.instanse.info("LoginProvider", "deserializeUser", "userid " + userid);
141+
Logger.instanse.silly("LoginProvider", "deserializeUser", "userid " + userid);
142142
if (NoderedUtil.IsNullEmpty(userid)) return done('missing userid', null);
143143
if (typeof userid !== 'string') userid = (userid as any)._id
144144
if (NoderedUtil.IsNullEmpty(userid)) return done('missing userid', null);
@@ -147,7 +147,7 @@ export class LoginProvider {
147147
Logger.instanse.error("LoginProvider", "deserializeUser", "Failed locating user " + userid);
148148
done(null, null);
149149
} else {
150-
Logger.instanse.info("LoginProvider", "deserializeUser", "found user " + userid + " " + _user.name);
150+
Logger.instanse.verbose("LoginProvider", "deserializeUser", "found user " + userid + " " + _user.name);
151151
done(null, _user);
152152
}
153153
// const _user = await Auth.getUser(userid, "passport");
@@ -165,25 +165,6 @@ export class LoginProvider {
165165
// done(null, _user);
166166
// }
167167
});
168-
169-
app.use(function (req, res, next) {
170-
const origin: string = (req.headers.origin as any);
171-
if (NoderedUtil.IsNullEmpty(origin)) {
172-
res.header('Access-Control-Allow-Origin', '*');
173-
} else {
174-
res.header('Access-Control-Allow-Origin', origin);
175-
}
176-
res.header("Access-Control-Allow-Methods", "DELETE, POST, PUT, GET, OPTIONS");
177-
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Access-Control-Allow-Headers, Authorization");
178-
res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
179-
res.header('Expires', '-1');
180-
res.header('Pragma', 'no-cache');
181-
if (req.originalUrl == "/oidc/me" && req.method == "OPTIONS") {
182-
res.send("ok");
183-
} else {
184-
next();
185-
}
186-
});
187168
app.get("/dashboardauth", async (req: any, res: any, next: any) => {
188169
const span: Span = (Config.otel_trace_dashboardauth ? Logger.otel.startSpan("LoginProvider.dashboardauth") : null);
189170
try {
@@ -278,7 +259,7 @@ export class LoginProvider {
278259
const user: User = await Logger.DBHelper.FindById(req.user._id, undefined, span);
279260
res.end(JSON.stringify(user));
280261
} else {
281-
Logger.instanse.error("LoginProvider", "/user", "return nothing, not signed in");
262+
Logger.instanse.info("LoginProvider", "/user", "return nothing, not signed in");
282263
res.end(JSON.stringify({}));
283264
}
284265
res.end();

OpenFlow/src/OAuthProvider.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export class OAuthProvider {
4242
</head>
4343
<body onload="logout()">
4444
<div>
45-
<h1>Do you want to sign-out from ${ctx.host}?</h1>
45+
<h1>Do you want to sign-out from ${ctx.hostname}?</h1>
4646
<script>
4747
function logout() {
4848
var form = document.getElementById('op.logoutForm');
@@ -81,7 +81,7 @@ export class OAuthProvider {
8181
</head>
8282
<body onload="logout()">
8383
<div>
84-
<h1>You have successfully signed out from ${ctx.host}</h1>`;
84+
<h1>You have successfully signed out from ${ctx.hostname}</h1>`;
8585
if (!NoderedUtil.IsNullEmpty(oidcrefere)) {
8686
ctx.body += `<a href="${ctx.req.cookies.oidcrefere}">Return to ${ctx.req.cookies.oidcrefere}</a> ?`;
8787
}
@@ -228,6 +228,8 @@ export class OAuthProvider {
228228
}
229229
}
230230
instance.oidc.callback(req, res);
231+
// return next();
232+
// if (req.originalUrl.indexOf('/oidc') > -1) return next();
231233
});
232234

233235
instance.app.use('/oidclogin', async (req, res, next) => {

OpenFlow/src/WebServer.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ var _hostname = "";
2020

2121

2222
const rateLimiter = (req: express.Request, res: express.Response, next: express.NextFunction): void => {
23+
if (req.originalUrl.indexOf('/oidc') > -1) return next();
24+
Logger.instanse.verbose('WebServer', 'rateLimiter', "Validate for " + req.originalUrl);
2325
WebServer.BaseRateLimiter
2426
.consume(WebServer.remoteip(req))
2527
.then((e) => {
@@ -88,20 +90,36 @@ export class WebServer {
8890

8991
// Add headers
9092
this.app.use(function (req, res, next) {
91-
93+
// Grafana hack
94+
if (req.originalUrl == "/oidc/me" && req.method == "OPTIONS") {
95+
return res.send("ok");
96+
}
97+
if (req.originalUrl.indexOf('/oidc') > -1) return next();
98+
Logger.instanse.verbose('WebServer', 'AllowOrigin', "add for " + req.originalUrl);
99+
// const origin: string = (req.headers.origin as any);
100+
// if (NoderedUtil.IsNullEmpty(origin)) {
101+
// res.header('Access-Control-Allow-Origin', '*');
102+
// } else {
103+
// res.header('Access-Control-Allow-Origin', origin);
104+
// }
92105
// Website you wish to allow to connect
93106
res.setHeader('Access-Control-Allow-Origin', '*');
94107

95108
// Request methods you wish to allow
96109
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
97110

98111
// Request headers you wish to allow
99-
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
112+
res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Access-Control-Allow-Headers, Authorization");
100113

101114
// Set to true if you need the website to include cookies in the requests sent
102115
// to the API (e.g. in case you use sessions)
103116
res.setHeader('Access-Control-Allow-Credentials', "true");
104117

118+
// Disable Caching
119+
res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
120+
res.header('Expires', '-1');
121+
res.header('Pragma', 'no-cache');
122+
105123
// Pass to next layer of middleware
106124
next();
107125
});

OpenFlowNodeRED/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/Logger.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import { i_license_data } from '../OpenFlow/src/commoninterfaces';
2323
await Logger.shutdown();
2424
}
2525
@test async 'test info'() {
26-
assert.ok(!NoderedUtil.IsNullUndefinded(Logger.myFormat), "Logger missing winston error formatter");
26+
// assert.ok(!NoderedUtil.IsNullUndefinded(Logger.myFormat), "Logger missing winston error formatter");
2727
var ofid = Logger.ofid();
2828
assert.strictEqual(NoderedUtil.IsNullEmpty(ofid), false);
2929
}

0 commit comments

Comments
 (0)