Skip to content

Commit b085717

Browse files
sunshineoGordon Sun
and
Gordon Sun
authored
Allow set user mapped from JWT directly on request (#6411)
* Use user mapped from JWT for Auth * Add a test for userFromJWT bypass Co-authored-by: Gordon Sun <[email protected]>
1 parent 81b22b2 commit b085717

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

spec/Middlewares.spec.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,4 +356,15 @@ describe('middlewares', () => {
356356
middlewares.DEFAULT_ALLOWED_HEADERS
357357
);
358358
});
359+
360+
it('should use user provided on field userFromJWT', done => {
361+
AppCache.put(fakeReq.body._ApplicationId, {
362+
masterKey: 'masterKey',
363+
});
364+
fakeReq.userFromJWT = 'fake-user';
365+
middlewares.handleParseHeaders(fakeReq, fakeRes, () => {
366+
expect(fakeReq.auth.user).toEqual('fake-user');
367+
done();
368+
});
369+
});
359370
});

src/middlewares.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,17 @@ export function handleParseHeaders(req, res, next) {
183183
delete info.sessionToken;
184184
}
185185

186+
if (req.userFromJWT) {
187+
req.auth = new auth.Auth({
188+
config: req.config,
189+
installationId: info.installationId,
190+
isMaster: false,
191+
user: req.userFromJWT,
192+
});
193+
next();
194+
return;
195+
}
196+
186197
if (!info.sessionToken) {
187198
req.auth = new auth.Auth({
188199
config: req.config,

0 commit comments

Comments
 (0)