Skip to content

Commit a1d8f42

Browse files
authored
Merge pull request finos#741 from lwhiteley/dont-leak-password
chore: dont leak password from server
2 parents ce03d71 + eecd5ce commit a1d8f42

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

src/db/mongo/users.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ exports.findUser = async function (username) {
99
exports.getUsers = async function (query) {
1010
console.log(`Getting users for query= ${JSON.stringify(query)}`);
1111
const collection = await connect(usersCollection);
12-
return collection.find(query).toArray();
12+
return collection.find(query, { password: 0 }).toArray();
1313
};
1414

1515
exports.deleteUser = async function (username) {

src/service/routes/auth.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,22 @@ router.get('/', (req, res) => {
2323

2424
router.post('/login', passport.authenticate(passportType), async (req, res) => {
2525
try {
26+
const currentUser = { ...req.user };
27+
delete currentUser.password;
2628
console.log(
2729
`serivce.routes.auth.login: user logged in, username=${
28-
req.user.username
29-
} profile=${JSON.stringify(req.user)}`,
30+
currentUser.username
31+
} profile=${JSON.stringify(currentUser)}`,
3032
);
33+
res.send({
34+
message: 'success',
35+
user: currentUser,
36+
});
3137
} catch (e) {
3238
console.log(`service.routes.auth.login: Error logging user in ${JSON.stringify(e)}`);
3339
res.status(500).send('Failed to login').end();
3440
return;
3541
}
36-
res.send({
37-
message: 'success',
38-
user: req.user,
39-
});
4042
});
4143

4244
// when login is successful, retrieve user info
@@ -115,6 +117,7 @@ router.get('/userLoggedIn', async (req, res) => {
115117
delete user.password;
116118
const login = user.username;
117119
const userVal = await db.findUser(login);
120+
delete userVal.password;
118121
res.send(userVal);
119122
} else {
120123
res.status(401).end();

test/testLogin.test.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ describe('auth', async () => {
4242
});
4343
});
4444

45+
it('should now be able to access the user login metadata', async function () {
46+
const res = await chai.request(app).get('/api/auth/userLoggedIn').set('Cookie', `${cookie}`);
47+
res.should.have.status(200);
48+
});
49+
4550
it('should now be able to access the profile', async function () {
4651
const res = await chai.request(app).get('/api/auth/profile').set('Cookie', `${cookie}`);
4752
res.should.have.status(200);

0 commit comments

Comments
 (0)