increased input validation for login
parent
eaa28441ac
commit
ad423113ac
|
|
@ -24,8 +24,8 @@ router
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.post(async (request, response) => {
|
.post(async (request, response) => {
|
||||||
const userName = request.body.userName;
|
const userName = (typeof request.body.userName === "string" ? request.body.userName : "");
|
||||||
const passwordPlain = request.body.password;
|
const passwordPlain = (typeof request.body.password === "string" ? request.body.password : "");
|
||||||
const unsafeRedirectURL = request.body.redirect;
|
const unsafeRedirectURL = request.body.redirect;
|
||||||
const redirectURL = authenticationFunctions.getSafeRedirectURL(typeof unsafeRedirectURL === "string" ? unsafeRedirectURL : "");
|
const redirectURL = authenticationFunctions.getSafeRedirectURL(typeof unsafeRedirectURL === "string" ? unsafeRedirectURL : "");
|
||||||
let isAuthenticated = false;
|
let isAuthenticated = false;
|
||||||
|
|
@ -37,7 +37,7 @@ router
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else if (userName !== "" && passwordPlain !== "") {
|
||||||
isAuthenticated = await authenticationFunctions.authenticate(userName, passwordPlain);
|
isAuthenticated = await authenticationFunctions.authenticate(userName, passwordPlain);
|
||||||
}
|
}
|
||||||
let userObject;
|
let userObject;
|
||||||
|
|
@ -52,12 +52,12 @@ router
|
||||||
const canUpdate = configFunctions
|
const canUpdate = configFunctions
|
||||||
.getProperty("users.canUpdate")
|
.getProperty("users.canUpdate")
|
||||||
.some((currentUserName) => {
|
.some((currentUserName) => {
|
||||||
return (userNameLowerCase === currentUserName.toLowerCase());
|
return userNameLowerCase === currentUserName.toLowerCase();
|
||||||
});
|
});
|
||||||
const isAdmin = configFunctions
|
const isAdmin = configFunctions
|
||||||
.getProperty("users.isAdmin")
|
.getProperty("users.isAdmin")
|
||||||
.some((currentUserName) => {
|
.some((currentUserName) => {
|
||||||
return (userNameLowerCase === currentUserName.toLowerCase());
|
return userNameLowerCase === currentUserName.toLowerCase();
|
||||||
});
|
});
|
||||||
const apiKey = await getApiKey(userNameLowerCase);
|
const apiKey = await getApiKey(userNameLowerCase);
|
||||||
userObject = {
|
userObject = {
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,7 @@ export const router = Router();
|
||||||
router
|
router
|
||||||
.route("/")
|
.route("/")
|
||||||
.get((request, response) => {
|
.get((request, response) => {
|
||||||
const sessionCookieName =
|
const sessionCookieName = configFunctions.getProperty("session.cookieName");
|
||||||
configFunctions.getProperty("session.cookieName");
|
|
||||||
|
|
||||||
if (request.session.user && request.cookies[sessionCookieName]) {
|
if (request.session.user && request.cookies[sessionCookieName]) {
|
||||||
const redirectURL = authenticationFunctions.getSafeRedirectURL(
|
const redirectURL = authenticationFunctions.getSafeRedirectURL(
|
||||||
|
|
@ -38,8 +37,13 @@ router
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.post(async (request, response) => {
|
.post(async (request, response) => {
|
||||||
const userName = request.body.userName as string;
|
const userName = (
|
||||||
const passwordPlain = request.body.password as string;
|
typeof request.body.userName === "string" ? request.body.userName : ""
|
||||||
|
) as string;
|
||||||
|
|
||||||
|
const passwordPlain = (
|
||||||
|
typeof request.body.password === "string" ? request.body.password : ""
|
||||||
|
) as string;
|
||||||
|
|
||||||
const unsafeRedirectURL = request.body.redirect;
|
const unsafeRedirectURL = request.body.redirect;
|
||||||
|
|
||||||
|
|
@ -51,16 +55,13 @@ router
|
||||||
|
|
||||||
if (userName.charAt(0) === "*") {
|
if (userName.charAt(0) === "*") {
|
||||||
if (useTestDatabases && userName === passwordPlain) {
|
if (useTestDatabases && userName === passwordPlain) {
|
||||||
|
|
||||||
isAuthenticated = configFunctions.getProperty("users.testing").includes(userName);
|
isAuthenticated = configFunctions.getProperty("users.testing").includes(userName);
|
||||||
|
|
||||||
if (isAuthenticated) {
|
if (isAuthenticated) {
|
||||||
debug("Authenticated testing user: " + userName);
|
debug("Authenticated testing user: " + userName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (userName !== "" && passwordPlain !== "") {
|
||||||
} else {
|
|
||||||
|
|
||||||
isAuthenticated = await authenticationFunctions.authenticate(userName, passwordPlain);
|
isAuthenticated = await authenticationFunctions.authenticate(userName, passwordPlain);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -79,17 +80,13 @@ router
|
||||||
const canUpdate = configFunctions
|
const canUpdate = configFunctions
|
||||||
.getProperty("users.canUpdate")
|
.getProperty("users.canUpdate")
|
||||||
.some((currentUserName) => {
|
.some((currentUserName) => {
|
||||||
return (
|
return userNameLowerCase === currentUserName.toLowerCase();
|
||||||
userNameLowerCase === currentUserName.toLowerCase()
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const isAdmin = configFunctions
|
const isAdmin = configFunctions
|
||||||
.getProperty("users.isAdmin")
|
.getProperty("users.isAdmin")
|
||||||
.some((currentUserName) => {
|
.some((currentUserName) => {
|
||||||
return (
|
return userNameLowerCase === currentUserName.toLowerCase();
|
||||||
userNameLowerCase === currentUserName.toLowerCase()
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const apiKey = await getApiKey(userNameLowerCase);
|
const apiKey = await getApiKey(userNameLowerCase);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue