Skip to content

Commit d170650

Browse files
Add support for --force-user flag for oidc auth
1 parent 4ca105e commit d170650

File tree

6 files changed

+29
-7
lines changed

6 files changed

+29
-7
lines changed

config/defaults.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict'
22

33
module.exports = {
4-
'auth': 'tls',
4+
'auth': 'oidc',
55
'configPath': './config',
66
'dbPath': './.db',
77
'port': 8443,

lib/api/authn/index.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,23 @@
11
'use strict'
22

3+
const debug = require('../../debug').authentication
4+
5+
/**
6+
* Enforces the `--force-user` server flag, hardcoding a webid for all requests,
7+
* for testing purposes.
8+
*/
9+
function overrideWith (forceUserId) {
10+
return (req, res, next) => {
11+
req.session.userId = forceUserId
12+
req.session.identified = true
13+
debug('Identified user (override): ' + forceUserId)
14+
res.set('User', forceUserId)
15+
return next()
16+
}
17+
}
18+
319
module.exports = {
420
oidc: require('./webid-oidc'),
5-
tls: require('./webid-tls')
21+
tls: require('./webid-tls'),
22+
overrideWith
623
}

lib/create-app.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,10 @@ function initAuthentication (argv, app) {
203203

204204
// Enforce authentication with WebID-OIDC on all LDP routes
205205
app.use('/', oidc.rs.authenticate())
206+
207+
if (argv.forceUser) {
208+
app.use('/', API.authn.overrideWith(argv.forceUser))
209+
}
206210
break
207211
default:
208212
throw new TypeError('Unsupported authentication scheme')

lib/models/account-manager.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -489,8 +489,6 @@ class AccountManager {
489489
.then(resetToken => {
490490
let resetUrl = this.passwordResetUrl(resetToken, returnToUrl)
491491

492-
debug('Reset URL:', resetUrl)
493-
494492
let emailData = {
495493
to: userAccount.email,
496494
webId: userAccount.webId,

test/integration/acl-tls.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ describe('ACL HTTP', function () {
3131
sslKey: path.join(__dirname, '../keys/key.pem'),
3232
sslCert: path.join(__dirname, '../keys/cert.pem'),
3333
webid: true,
34-
strictOrigin: true
34+
strictOrigin: true,
35+
auth: 'tls'
3536
})
3637

3738
before(function (done) {

test/unit/create-account-request.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,10 @@ describe('CreateAccountRequest', () => {
6868
describe('createAccount()', () => {
6969
it('should return a 400 error if account already exists', done => {
7070
let accountManager = AccountManager.from({ host })
71-
let locals = { authMethod: defaults.auth, accountManager }
72-
let aliceData = { username: 'alice' }
71+
let locals = { authMethod: defaults.auth, accountManager, oidc: { users: {} } }
72+
let aliceData = {
73+
username: 'alice', password: '1234'
74+
}
7375
let req = HttpMocks.createRequest({ app: { locals }, body: aliceData })
7476

7577
let request = CreateAccountRequest.fromParams(req, res)

0 commit comments

Comments
 (0)