Skip to content

Commit b265658

Browse files
✨ feat(frontend): Change login to get (#106)
1 parent 4f72f3e commit b265658

File tree

3 files changed

+33
-29
lines changed

3 files changed

+33
-29
lines changed

src/frontend/site.js

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -67,20 +67,20 @@ function showGlobalTimeline(req, res) {
6767
req.MICROBLOG_API.get('/timeline'),
6868
getMembershipOfLoggedInUser(req)
6969
])).
70-
then(([timeline, membership]) => {
71-
insertLikeCountIntoPostArray(req, timeline.data).then(postArray => {
72-
let data = extendRenderData({
73-
data: postArray,
74-
title: 'Timeline',
75-
username: getJwtUser(req.cookies),
76-
isAdManager: hasJwtRole(req.cookies, roles.AD_MANAGER),
77-
baseData: baseRequestFactory.baseData,
78-
membership: membership.data
70+
then(([timeline, membership]) => {
71+
insertLikeCountIntoPostArray(req, timeline.data).then(postArray => {
72+
let data = extendRenderData({
73+
data: postArray,
74+
title: 'Timeline',
75+
username: getJwtUser(req.cookies),
76+
isAdManager: hasJwtRole(req.cookies, roles.AD_MANAGER),
77+
baseData: baseRequestFactory.baseData,
78+
membership: membership.data
7979

80-
}, req);
81-
res.render('index.njk', data)
82-
}, (err) => displayError(err, res))
80+
}, req);
81+
res.render('index.njk', data)
8382
}, (err) => displayError(err, res))
83+
}, (err) => displayError(err, res))
8484
}
8585

8686
function showUsers(req, res) {
@@ -108,7 +108,7 @@ function showUsers(req, res) {
108108
searchRoles: req.query.roles,
109109
shouldRoleBeChecked: (role) => {
110110
return (typeof req.query.roles == "string" && req.query.roles == role.name) // only one checkbox checked
111-
|| (typeof req.query.roles == "object" && req.query.roles.includes(role.name)) // multiple checkboxes checked
111+
|| (typeof req.query.roles == "object" && req.query.roles.includes(role.name)) // multiple checkboxes checked
112112
},
113113
username: getJwtUser(req.cookies),
114114
isAdManager: hasJwtRole(req.cookies, roles.AD_MANAGER),
@@ -302,9 +302,11 @@ function doLogin(req, res) {
302302
}
303303

304304
fetchUsingDeploymentBase(req, () => req.USER_AUTH_API
305-
.post("/user/login", {
306-
"username": usernameToLogin,
307-
"password": passwordToLogin
305+
.get("/user/login", {
306+
params: {
307+
"username": usernameToLogin,
308+
"password": passwordToLogin
309+
}
308310
}))
309311
.then(response => {
310312
if (response.data.jwt) {
@@ -325,9 +327,11 @@ function registerUser(req, res) {
325327
}
326328

327329
fetchUsingDeploymentBase(req, () => req.USER_AUTH_API
328-
.post("/user/register", {
329-
"username": usernameToLogin,
330-
"password": passwordToLogin
330+
.get("/user/register", {
331+
params: {
332+
"username": usernameToLogin,
333+
"password": passwordToLogin
334+
}
331335
}))
332336
.then(_ => res.redirect(extendURL('/login')), (err) => displayError(err, res));
333337
}
@@ -469,8 +473,8 @@ function postBio(req, res) {
469473
.then((_) => {
470474
res.redirect(extendURL(`/user/${getJwtUser(req.cookies)}`));
471475
}).catch(error => {
472-
res.status(statusCodeForError(error)).render('error.njk', handleError(error));
473-
});
476+
res.status(statusCodeForError(error)).render('error.njk', handleError(error));
477+
});
474478
}
475479

476480
function insertLikeCountIntoPostArray(req, posts) {
@@ -480,7 +484,7 @@ function insertLikeCountIntoPostArray(req, posts) {
480484
let likeCount = likeData.likeCounts.find(likeCount => likeCount.postId == post.postId)?.likeCount ?? 0;
481485
let userLiked = likeData.likedPosts.some(like => like.postId == post.postId);
482486
return {...post, likeCount: likeCount, userLiked: userLiked};
483-
}));
487+
}));
484488
}
485489

486490

src/malicious-load-generator/locustfile.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ def post_sql_login_injection_nodejs(self):
180180
parameters = {'name': random.choice(SQL_CMDS_LOGIN_USERNAME), 'password': 'user'}
181181

182182
# post with the malicious SQL command
183-
self.client.post("/login", params=parameters, headers=self.get_random_x_forwarded_for_header())
183+
self.client.post("/login", data=parameters, headers=self.get_random_x_forwarded_for_header())
184184
time.sleep(1)
185185

186186
@task()

src/user-auth-service/routes/user.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ const jwt = require('jwt-simple');
2323

2424
const ALPHANUMERIC_REGEX = /^\w+$/;
2525

26-
router.post('/register', async function (req, res) {
27-
const username = req.body.username;
28-
const password = req.body.password;
26+
router.get('/register', async function (req, res) {
27+
const username = req.query.username;
28+
const password = req.query.password;
2929

3030
if (!ALPHANUMERIC_REGEX.test(username)) {
3131
res.status(400).json({ message: "Only numbers, underscores, upper- and lowercase letters are allowed in the username." })
@@ -55,9 +55,9 @@ router.post('/register', async function (req, res) {
5555
});
5656
});
5757

58-
router.post('/login', async function (req, res) {
59-
const username = req.body.username;
60-
const password = req.body.password;
58+
router.get('/login', async function (req, res) {
59+
const username = req.query.username;
60+
const password = req.query.password;
6161

6262
// check if user exists
6363
// vulnerable to sql injection because prepared statements are not used

0 commit comments

Comments
 (0)