@furystack/security 5.0.0 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/models/password-credential.d.ts.map +1 -1
- package/esm/models/password-credential.js +0 -16
- package/esm/models/password-credential.js.map +1 -1
- package/esm/models/password-reset-token.d.ts.map +1 -1
- package/esm/models/password-reset-token.js +0 -12
- package/esm/models/password-reset-token.js.map +1 -1
- package/esm/password-authenticator.d.ts +4 -4
- package/esm/password-authenticator.d.ts.map +1 -1
- package/esm/password-authenticator.js +26 -23
- package/esm/password-authenticator.js.map +1 -1
- package/esm/password-authenticator.spec.js +11 -11
- package/esm/password-authenticator.spec.js.map +1 -1
- package/esm/security-policy-manager.d.ts.map +1 -1
- package/esm/security-policy-manager.js +0 -1
- package/esm/security-policy-manager.js.map +1 -1
- package/package.json +7 -7
- package/src/models/password-credential.ts +4 -4
- package/src/models/password-reset-token.ts +3 -3
- package/src/password-authenticator.spec.ts +11 -11
- package/src/password-authenticator.ts +24 -24
- package/src/security-policy-manager.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-credential.d.ts","sourceRoot":"","sources":["../../src/models/password-credential.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,kBAAkB;IAC7B;;OAEG;
|
|
1
|
+
{"version":3,"file":"password-credential.d.ts","sourceRoot":"","sources":["../../src/models/password-credential.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,kBAAkB;IAC7B;;OAEG;IACK,QAAQ,EAAE,MAAM,CAAA;IACxB;;OAEG;IACK,YAAY,EAAE,MAAM,CAAA;IAE5B;;OAEG;IACK,IAAI,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACK,YAAY,EAAE,MAAM,CAAA;CAC7B"}
|
|
@@ -2,21 +2,5 @@
|
|
|
2
2
|
* Entry that stores credential info for password login
|
|
3
3
|
*/
|
|
4
4
|
export class PasswordCredential {
|
|
5
|
-
/**
|
|
6
|
-
* The unique name of the user
|
|
7
|
-
*/
|
|
8
|
-
userName;
|
|
9
|
-
/**
|
|
10
|
-
* The hashed password value
|
|
11
|
-
*/
|
|
12
|
-
passwordHash;
|
|
13
|
-
/**
|
|
14
|
-
* Salt value for password hashing // TODO
|
|
15
|
-
*/
|
|
16
|
-
salt;
|
|
17
|
-
/**
|
|
18
|
-
* The Creation date in ISO String format
|
|
19
|
-
*/
|
|
20
|
-
creationDate;
|
|
21
5
|
}
|
|
22
6
|
//# sourceMappingURL=password-credential.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-credential.js","sourceRoot":"","sources":["../../src/models/password-credential.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,kBAAkB;
|
|
1
|
+
{"version":3,"file":"password-credential.js","sourceRoot":"","sources":["../../src/models/password-credential.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,kBAAkB;CAmB9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-reset-token.d.ts","sourceRoot":"","sources":["../../src/models/password-reset-token.ts"],"names":[],"mappings":"AAAA,qBAAa,kBAAkB;IAC7B;;OAEG;
|
|
1
|
+
{"version":3,"file":"password-reset-token.d.ts","sourceRoot":"","sources":["../../src/models/password-reset-token.ts"],"names":[],"mappings":"AAAA,qBAAa,kBAAkB;IAC7B;;OAEG;IACK,QAAQ,EAAE,MAAM,CAAA;IACxB;;OAEG;IACK,KAAK,EAAE,MAAM,CAAA;IACrB;;OAEG;IACK,SAAS,EAAE,MAAM,CAAA;CAC1B"}
|
|
@@ -1,15 +1,3 @@
|
|
|
1
1
|
export class PasswordResetToken {
|
|
2
|
-
/**
|
|
3
|
-
* The related user name
|
|
4
|
-
*/
|
|
5
|
-
userName;
|
|
6
|
-
/**
|
|
7
|
-
* The Token value - should be some kind of generated UUID that can be included e.g. in URLs
|
|
8
|
-
*/
|
|
9
|
-
token;
|
|
10
|
-
/**
|
|
11
|
-
* The creation date in an ISO datetime format
|
|
12
|
-
*/
|
|
13
|
-
createdAt;
|
|
14
2
|
}
|
|
15
3
|
//# sourceMappingURL=password-reset-token.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-reset-token.js","sourceRoot":"","sources":["../../src/models/password-reset-token.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,kBAAkB;
|
|
1
|
+
{"version":3,"file":"password-reset-token.js","sourceRoot":"","sources":["../../src/models/password-reset-token.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,kBAAkB;CAa9B"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { SecurityPolicyManager } from './security-policy-manager.js';
|
|
2
2
|
import type { PasswordCheckResult } from './models/index.js';
|
|
3
|
+
import type { PasswordHasher } from './password-hasher.js';
|
|
3
4
|
export declare class PasswordAuthenticator {
|
|
4
|
-
private readonly
|
|
5
|
-
private readonly
|
|
6
|
-
readonly
|
|
5
|
+
private readonly passwordStore;
|
|
6
|
+
private readonly tokenStore;
|
|
7
|
+
readonly hasher: PasswordHasher;
|
|
7
8
|
/**
|
|
8
9
|
* @param userName The User's unique name
|
|
9
10
|
* @param plainPassword The plain password to check
|
|
@@ -24,7 +25,6 @@ export declare class PasswordAuthenticator {
|
|
|
24
25
|
* @param plainPassword The new password in plain string
|
|
25
26
|
*/
|
|
26
27
|
resetPasswordForUser(resetToken: string, plainPassword: string): Promise<void>;
|
|
27
|
-
private readonly injector;
|
|
28
28
|
policyManager: SecurityPolicyManager;
|
|
29
29
|
}
|
|
30
30
|
//# sourceMappingURL=password-authenticator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-authenticator.d.ts","sourceRoot":"","sources":["../src/password-authenticator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"password-authenticator.d.ts","sourceRoot":"","sources":["../src/password-authenticator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAG5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,qBACa,qBAAqB;IAChC,iBACyB,aAAa,CAA+C;IAErF,iBACyB,UAAU,CAAA;IAEnC,SAGwB,MAAM,EAAE,cAAc,CAAA;IAE9C;;;;OAIG;IACU,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAkBxG;;;;;;OAMG;IACU,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7G;;;;OAIG;IACU,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB5E,aAAa,EAAE,qBAAqB,CAAA;CACpD"}
|
|
@@ -8,29 +8,26 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
10
|
import { StoreManager } from '@furystack/core';
|
|
11
|
-
import { Injectable, Injected
|
|
11
|
+
import { Injectable, Injected } from '@furystack/inject';
|
|
12
12
|
import { SecurityPolicyManager } from './security-policy-manager.js';
|
|
13
13
|
import { UnauthenticatedError } from './errors/index.js';
|
|
14
14
|
import { PasswordCredential, PasswordResetToken } from './models/index.js';
|
|
15
15
|
import { PasswordComplexityError } from './errors/password-complexity-error.js';
|
|
16
16
|
let PasswordAuthenticator = class PasswordAuthenticator {
|
|
17
|
-
getPasswordStore = () => this.injector.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName');
|
|
18
|
-
getTokenStore = () => this.injector.getInstance(StoreManager).getStoreFor(PasswordResetToken, 'token');
|
|
19
|
-
getHasher = () => this.injector.getInstance(this.policyManager.policy.hasher);
|
|
20
17
|
/**
|
|
21
18
|
* @param userName The User's unique name
|
|
22
19
|
* @param plainPassword The plain password to check
|
|
23
20
|
* @returns An object that contains an { isValid } value that indicates if the password is valid
|
|
24
21
|
*/
|
|
25
22
|
async checkPasswordForUser(userName, plainPassword) {
|
|
26
|
-
const entry = await this.
|
|
23
|
+
const entry = await this.passwordStore.get(userName);
|
|
27
24
|
if (!entry) {
|
|
28
25
|
return {
|
|
29
26
|
isValid: false,
|
|
30
27
|
reason: 'badUsernameOrPassword',
|
|
31
28
|
};
|
|
32
29
|
}
|
|
33
|
-
const result = await this.
|
|
30
|
+
const result = await this.hasher.verifyCredential(plainPassword, entry);
|
|
34
31
|
if (result.isValid && this.policyManager.hasPasswordExpired(entry)) {
|
|
35
32
|
return {
|
|
36
33
|
isValid: false,
|
|
@@ -55,11 +52,10 @@ let PasswordAuthenticator = class PasswordAuthenticator {
|
|
|
55
52
|
if (!lastResult.isValid) {
|
|
56
53
|
throw new UnauthenticatedError();
|
|
57
54
|
}
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
await store.add(newCredential);
|
|
55
|
+
const newCredential = await this.hasher.createCredential(userName, plainPassword);
|
|
56
|
+
const existing = await this.passwordStore.get(userName);
|
|
57
|
+
existing && (await this.passwordStore.remove(existing.userName));
|
|
58
|
+
await this.passwordStore.add(newCredential);
|
|
63
59
|
}
|
|
64
60
|
/**
|
|
65
61
|
* Resets the password with a Password Reset token entry
|
|
@@ -67,31 +63,38 @@ let PasswordAuthenticator = class PasswordAuthenticator {
|
|
|
67
63
|
* @param plainPassword The new password in plain string
|
|
68
64
|
*/
|
|
69
65
|
async resetPasswordForUser(resetToken, plainPassword) {
|
|
70
|
-
const token = await this.
|
|
66
|
+
const token = await this.tokenStore.get(resetToken);
|
|
71
67
|
if (!token) {
|
|
72
68
|
throw new UnauthenticatedError();
|
|
73
69
|
}
|
|
74
70
|
if (this.policyManager.hasTokenExpired(token)) {
|
|
75
|
-
await this.
|
|
71
|
+
await this.tokenStore.remove(resetToken); // clean up token
|
|
76
72
|
throw new UnauthenticatedError();
|
|
77
73
|
}
|
|
78
74
|
const complexityResult = await this.policyManager.matchPasswordComplexityRules(plainPassword);
|
|
79
75
|
if (!complexityResult.match) {
|
|
80
76
|
throw new PasswordComplexityError(complexityResult.errors);
|
|
81
77
|
}
|
|
82
|
-
const newCredential = await this.
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
await store.add(newCredential);
|
|
78
|
+
const newCredential = await this.hasher.createCredential(token.userName, plainPassword);
|
|
79
|
+
const existing = await this.passwordStore.get(token.userName);
|
|
80
|
+
existing && (await this.passwordStore.remove(existing.userName));
|
|
81
|
+
await this.passwordStore.add(newCredential);
|
|
87
82
|
}
|
|
88
|
-
injector;
|
|
89
|
-
policyManager;
|
|
90
83
|
};
|
|
91
84
|
__decorate([
|
|
92
|
-
Injected(
|
|
93
|
-
__metadata("design:type",
|
|
94
|
-
], PasswordAuthenticator.prototype, "
|
|
85
|
+
Injected((injector) => injector.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName')),
|
|
86
|
+
__metadata("design:type", Object)
|
|
87
|
+
], PasswordAuthenticator.prototype, "passwordStore", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
Injected((injector) => injector.getInstance(StoreManager).getStoreFor(PasswordResetToken, 'token')),
|
|
90
|
+
__metadata("design:type", Object)
|
|
91
|
+
], PasswordAuthenticator.prototype, "tokenStore", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
Injected(function (injector) {
|
|
94
|
+
return injector.getInstance(this.policyManager.policy.hasher);
|
|
95
|
+
}),
|
|
96
|
+
__metadata("design:type", Function)
|
|
97
|
+
], PasswordAuthenticator.prototype, "hasher", void 0);
|
|
95
98
|
__decorate([
|
|
96
99
|
Injected(SecurityPolicyManager),
|
|
97
100
|
__metadata("design:type", SecurityPolicyManager)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-authenticator.js","sourceRoot":"","sources":["../src/password-authenticator.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"password-authenticator.js","sourceRoot":"","sources":["../src/password-authenticator.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
37
37
|
addStore(i, new InMemoryStore({ model: PasswordCredential, primaryKey: 'userName' })).addStore(new InMemoryStore({ model: User, primaryKey: 'username' }));
|
|
38
38
|
usePasswordPolicy(i, {});
|
|
39
39
|
const authenticator = i.getInstance(PasswordAuthenticator);
|
|
40
|
-
const hasher = authenticator
|
|
40
|
+
const { hasher } = authenticator;
|
|
41
41
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName');
|
|
42
42
|
const entry = await hasher.createCredential(userName, password);
|
|
43
43
|
await passwordStore.add(entry);
|
|
@@ -52,7 +52,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
52
52
|
addStore(i, new InMemoryStore({ model: PasswordCredential, primaryKey: 'userName' })).addStore(new InMemoryStore({ model: User, primaryKey: 'username' }));
|
|
53
53
|
usePasswordPolicy(i);
|
|
54
54
|
const authenticator = i.getInstance(PasswordAuthenticator);
|
|
55
|
-
const hasher = authenticator
|
|
55
|
+
const { hasher } = authenticator;
|
|
56
56
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName');
|
|
57
57
|
const entry = await hasher.createCredential(userName, password);
|
|
58
58
|
await passwordStore.add(entry);
|
|
@@ -68,7 +68,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
68
68
|
addStore(i, new InMemoryStore({ model: PasswordCredential, primaryKey: 'userName' })).addStore(new InMemoryStore({ model: User, primaryKey: 'username' }));
|
|
69
69
|
usePasswordPolicy(i);
|
|
70
70
|
const authenticator = i.getInstance(PasswordAuthenticator);
|
|
71
|
-
const hasher = authenticator
|
|
71
|
+
const { hasher } = authenticator;
|
|
72
72
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName');
|
|
73
73
|
const entry = await hasher.createCredential(userName, password);
|
|
74
74
|
await passwordStore.add(entry);
|
|
@@ -84,7 +84,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
84
84
|
addStore(i, new InMemoryStore({ model: PasswordCredential, primaryKey: 'userName' })).addStore(new InMemoryStore({ model: User, primaryKey: 'username' }));
|
|
85
85
|
usePasswordPolicy(i, { passwordExpirationDays: 1 });
|
|
86
86
|
const authenticator = i.getInstance(PasswordAuthenticator);
|
|
87
|
-
const hasher = authenticator
|
|
87
|
+
const { hasher } = authenticator;
|
|
88
88
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName');
|
|
89
89
|
const entry = await hasher.createCredential(userName, password);
|
|
90
90
|
const creationDate = new Date();
|
|
@@ -106,7 +106,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
106
106
|
addStore(i, new InMemoryStore({ model: PasswordCredential, primaryKey: 'userName' })).addStore(new InMemoryStore({ model: User, primaryKey: 'username' }));
|
|
107
107
|
usePasswordPolicy(i);
|
|
108
108
|
const authenticator = i.getInstance(PasswordAuthenticator);
|
|
109
|
-
const hasher = authenticator
|
|
109
|
+
const { hasher } = authenticator;
|
|
110
110
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName');
|
|
111
111
|
const policyManager = i.getInstance(SecurityPolicyManager);
|
|
112
112
|
const pmSpy = vi.spyOn(policyManager, 'matchPasswordComplexityRules');
|
|
@@ -132,7 +132,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
132
132
|
addStore(i, new InMemoryStore({ model: PasswordCredential, primaryKey: 'userName' })).addStore(new InMemoryStore({ model: User, primaryKey: 'username' }));
|
|
133
133
|
usePasswordPolicy(i, { passwordComplexityRules: [createMinLengthComplexityRule(3)] });
|
|
134
134
|
const authenticator = i.getInstance(PasswordAuthenticator);
|
|
135
|
-
const hasher = authenticator
|
|
135
|
+
const { hasher } = authenticator;
|
|
136
136
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName');
|
|
137
137
|
const policyManager = i.getInstance(SecurityPolicyManager);
|
|
138
138
|
const pmSpy = vi.spyOn(policyManager, 'matchPasswordComplexityRules');
|
|
@@ -159,7 +159,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
159
159
|
addStore(i, new InMemoryStore({ model: PasswordCredential, primaryKey: 'userName' })).addStore(new InMemoryStore({ model: User, primaryKey: 'username' }));
|
|
160
160
|
usePasswordPolicy(i);
|
|
161
161
|
const authenticator = i.getInstance(PasswordAuthenticator);
|
|
162
|
-
const hasher = authenticator
|
|
162
|
+
const { hasher } = authenticator;
|
|
163
163
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName');
|
|
164
164
|
const policyManager = i.getInstance(SecurityPolicyManager);
|
|
165
165
|
const pmSpy = vi.spyOn(policyManager, 'matchPasswordComplexityRules');
|
|
@@ -191,7 +191,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
191
191
|
.addStore(new InMemoryStore({ model: PasswordResetToken, primaryKey: 'token' }));
|
|
192
192
|
usePasswordPolicy(i);
|
|
193
193
|
const authenticator = i.getInstance(PasswordAuthenticator);
|
|
194
|
-
const hasher = authenticator
|
|
194
|
+
const { hasher } = authenticator;
|
|
195
195
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName');
|
|
196
196
|
const resetTokenStore = i.getInstance(StoreManager).getStoreFor(PasswordResetToken, 'token');
|
|
197
197
|
const entry = await hasher.createCredential(userName, lastPassword);
|
|
@@ -217,7 +217,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
217
217
|
.addStore(new InMemoryStore({ model: PasswordResetToken, primaryKey: 'token' }));
|
|
218
218
|
usePasswordPolicy(i, { passwordComplexityRules: [createMinLengthComplexityRule(3)] });
|
|
219
219
|
const authenticator = i.getInstance(PasswordAuthenticator);
|
|
220
|
-
const hasher = authenticator
|
|
220
|
+
const { hasher } = authenticator;
|
|
221
221
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName');
|
|
222
222
|
const resetTokenStore = i.getInstance(StoreManager).getStoreFor(PasswordResetToken, 'token');
|
|
223
223
|
const entry = await hasher.createCredential(userName, lastPassword);
|
|
@@ -243,7 +243,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
243
243
|
.addStore(new InMemoryStore({ model: PasswordResetToken, primaryKey: 'token' }));
|
|
244
244
|
usePasswordPolicy(i);
|
|
245
245
|
const authenticator = i.getInstance(PasswordAuthenticator);
|
|
246
|
-
const hasher = authenticator
|
|
246
|
+
const { hasher } = authenticator;
|
|
247
247
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName');
|
|
248
248
|
const resetTokenStore = i.getInstance(StoreManager).getStoreFor(PasswordResetToken, 'token');
|
|
249
249
|
const entry = await hasher.createCredential(userName, lastPassword);
|
|
@@ -269,7 +269,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
269
269
|
.addStore(new InMemoryStore({ model: PasswordResetToken, primaryKey: 'token' }));
|
|
270
270
|
usePasswordPolicy(i, { resetTokenExpirationSeconds: 1 });
|
|
271
271
|
const authenticator = i.getInstance(PasswordAuthenticator);
|
|
272
|
-
const hasher = authenticator
|
|
272
|
+
const { hasher } = authenticator;
|
|
273
273
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName');
|
|
274
274
|
const resetTokenStore = i.getInstance(StoreManager).getStoreFor(PasswordResetToken, 'token');
|
|
275
275
|
const entry = await hasher.createCredential(userName, lastPassword);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-authenticator.spec.js","sourceRoot":"","sources":["../src/password-authenticator.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"password-authenticator.spec.js","sourceRoot":"","sources":["../src/password-authenticator.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-policy-manager.d.ts","sourceRoot":"","sources":["../src/security-policy-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,qBACa,qBAAqB;IAChC;;;OAGG;IACU,4BAA4B,CAAC,QAAQ,EAAE,MAAM;;;qBAOzC,MAAM;kBACT,MAAM;;;;;;IAUb,kBAAkB,CAAC,UAAU,EAAE,kBAAkB;IAUjD,eAAe,CAAC,KAAK,EAAE,kBAAkB;IAUhD,
|
|
1
|
+
{"version":3,"file":"security-policy-manager.d.ts","sourceRoot":"","sources":["../src/security-policy-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,qBACa,qBAAqB;IAChC;;;OAGG;IACU,4BAA4B,CAAC,QAAQ,EAAE,MAAM;;;qBAOzC,MAAM;kBACT,MAAM;;;;;;IAUb,kBAAkB,CAAC,UAAU,EAAE,kBAAkB;IAUjD,eAAe,CAAC,KAAK,EAAE,kBAAkB;IAUhD,SACwB,MAAM,EAAE,cAAc,CAAA;CAC/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-policy-manager.js","sourceRoot":"","sources":["../src/security-policy-manager.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG9C,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChC;;;OAGG;IACI,KAAK,CAAC,4BAA4B,CAAC,QAAgB;QACxD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACzG,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAA;QACxD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO;gBACL,KAAK,EAAE,KAAc;gBACrB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAGnF;aACH,CAAA;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAa;SACrB,CAAA;IACH,CAAC;IAEM,kBAAkB,CAAC,UAA8B;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YACxC,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,oBAAoB,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QAC9D,oBAAoB,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAA;QACjG,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,OAAO,GAAG,GAAG,oBAAoB,CAAA;IACnC,CAAC;IAEM,eAAe,CAAC,KAAyB;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACjD,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAA;QAClG,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,OAAO,GAAG,GAAG,eAAe,CAAA;IAC9B,CAAC;
|
|
1
|
+
{"version":3,"file":"security-policy-manager.js","sourceRoot":"","sources":["../src/security-policy-manager.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG9C,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChC;;;OAGG;IACI,KAAK,CAAC,4BAA4B,CAAC,QAAgB;QACxD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACzG,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAA;QACxD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO;gBACL,KAAK,EAAE,KAAc;gBACrB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAGnF;aACH,CAAA;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAa;SACrB,CAAA;IACH,CAAC;IAEM,kBAAkB,CAAC,UAA8B;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YACxC,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,oBAAoB,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QAC9D,oBAAoB,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAA;QACjG,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,OAAO,GAAG,GAAG,oBAAoB,CAAA;IACnC,CAAC;IAEM,eAAe,CAAC,KAAyB;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACjD,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAA;QAClG,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,OAAO,GAAG,GAAG,eAAe,CAAA;IAC9B,CAAC;CAIF,CAAA;AADyB;IADvB,QAAQ,CAAC,cAAc,CAAC;8BACO,cAAc;qDAAA;AA5CnC,qBAAqB;IADjC,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;GACzB,qBAAqB,CA6CjC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@furystack/security",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.2",
|
|
4
4
|
"description": "Security, password management and authorization related stuff for FuryStack",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
"url": "https://github.com/furystack/furystack/issues"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@furystack/core": "^14.0.
|
|
39
|
-
"@furystack/inject": "^
|
|
40
|
-
"@furystack/utils": "^
|
|
38
|
+
"@furystack/core": "^14.0.2",
|
|
39
|
+
"@furystack/inject": "^11.0.1",
|
|
40
|
+
"@furystack/utils": "^7.0.0"
|
|
41
41
|
},
|
|
42
42
|
"homepage": "https://github.com/furystack/furystack",
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@types/node": "^20.
|
|
45
|
-
"typescript": "^5.4.
|
|
46
|
-
"vitest": "^1.
|
|
44
|
+
"@types/node": "^20.12.7",
|
|
45
|
+
"typescript": "^5.4.5",
|
|
46
|
+
"vitest": "^1.5.0"
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -5,19 +5,19 @@ export class PasswordCredential {
|
|
|
5
5
|
/**
|
|
6
6
|
* The unique name of the user
|
|
7
7
|
*/
|
|
8
|
-
userName
|
|
8
|
+
declare userName: string
|
|
9
9
|
/**
|
|
10
10
|
* The hashed password value
|
|
11
11
|
*/
|
|
12
|
-
passwordHash
|
|
12
|
+
declare passwordHash: string
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Salt value for password hashing // TODO
|
|
16
16
|
*/
|
|
17
|
-
salt
|
|
17
|
+
declare salt: string
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* The Creation date in ISO String format
|
|
21
21
|
*/
|
|
22
|
-
creationDate
|
|
22
|
+
declare creationDate: string
|
|
23
23
|
}
|
|
@@ -2,13 +2,13 @@ export class PasswordResetToken {
|
|
|
2
2
|
/**
|
|
3
3
|
* The related user name
|
|
4
4
|
*/
|
|
5
|
-
userName
|
|
5
|
+
declare userName: string
|
|
6
6
|
/**
|
|
7
7
|
* The Token value - should be some kind of generated UUID that can be included e.g. in URLs
|
|
8
8
|
*/
|
|
9
|
-
token
|
|
9
|
+
declare token: string
|
|
10
10
|
/**
|
|
11
11
|
* The creation date in an ISO datetime format
|
|
12
12
|
*/
|
|
13
|
-
createdAt
|
|
13
|
+
declare createdAt: string
|
|
14
14
|
}
|
|
@@ -45,7 +45,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
45
45
|
)
|
|
46
46
|
usePasswordPolicy(i, {})
|
|
47
47
|
const authenticator = i.getInstance(PasswordAuthenticator)
|
|
48
|
-
const hasher = authenticator
|
|
48
|
+
const { hasher } = authenticator
|
|
49
49
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName')
|
|
50
50
|
|
|
51
51
|
const entry = await hasher.createCredential(userName, password)
|
|
@@ -66,7 +66,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
66
66
|
|
|
67
67
|
usePasswordPolicy(i)
|
|
68
68
|
const authenticator = i.getInstance(PasswordAuthenticator)
|
|
69
|
-
const hasher = authenticator
|
|
69
|
+
const { hasher } = authenticator
|
|
70
70
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName')
|
|
71
71
|
|
|
72
72
|
const entry = await hasher.createCredential(userName, password)
|
|
@@ -87,7 +87,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
87
87
|
)
|
|
88
88
|
usePasswordPolicy(i)
|
|
89
89
|
const authenticator = i.getInstance(PasswordAuthenticator)
|
|
90
|
-
const hasher = authenticator
|
|
90
|
+
const { hasher } = authenticator
|
|
91
91
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName')
|
|
92
92
|
|
|
93
93
|
const entry = await hasher.createCredential(userName, password)
|
|
@@ -109,7 +109,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
109
109
|
|
|
110
110
|
usePasswordPolicy(i, { passwordExpirationDays: 1 })
|
|
111
111
|
const authenticator = i.getInstance(PasswordAuthenticator)
|
|
112
|
-
const hasher = authenticator
|
|
112
|
+
const { hasher } = authenticator
|
|
113
113
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName')
|
|
114
114
|
|
|
115
115
|
const entry = await hasher.createCredential(userName, password)
|
|
@@ -138,7 +138,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
138
138
|
)
|
|
139
139
|
usePasswordPolicy(i)
|
|
140
140
|
const authenticator = i.getInstance(PasswordAuthenticator)
|
|
141
|
-
const hasher = authenticator
|
|
141
|
+
const { hasher } = authenticator
|
|
142
142
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName')
|
|
143
143
|
const policyManager = i.getInstance(SecurityPolicyManager)
|
|
144
144
|
const pmSpy = vi.spyOn(policyManager, 'matchPasswordComplexityRules')
|
|
@@ -174,7 +174,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
174
174
|
)
|
|
175
175
|
usePasswordPolicy(i, { passwordComplexityRules: [createMinLengthComplexityRule(3)] })
|
|
176
176
|
const authenticator = i.getInstance(PasswordAuthenticator)
|
|
177
|
-
const hasher = authenticator
|
|
177
|
+
const { hasher } = authenticator
|
|
178
178
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName')
|
|
179
179
|
const policyManager = i.getInstance(SecurityPolicyManager)
|
|
180
180
|
const pmSpy = vi.spyOn(policyManager, 'matchPasswordComplexityRules')
|
|
@@ -214,7 +214,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
214
214
|
)
|
|
215
215
|
usePasswordPolicy(i)
|
|
216
216
|
const authenticator = i.getInstance(PasswordAuthenticator)
|
|
217
|
-
const hasher = authenticator
|
|
217
|
+
const { hasher } = authenticator
|
|
218
218
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName')
|
|
219
219
|
const policyManager = i.getInstance(SecurityPolicyManager)
|
|
220
220
|
const pmSpy = vi.spyOn(policyManager, 'matchPasswordComplexityRules')
|
|
@@ -257,7 +257,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
257
257
|
.addStore(new InMemoryStore({ model: PasswordResetToken, primaryKey: 'token' }))
|
|
258
258
|
usePasswordPolicy(i)
|
|
259
259
|
const authenticator = i.getInstance(PasswordAuthenticator)
|
|
260
|
-
const hasher = authenticator
|
|
260
|
+
const { hasher } = authenticator
|
|
261
261
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName')
|
|
262
262
|
const resetTokenStore = i.getInstance(StoreManager).getStoreFor(PasswordResetToken, 'token')
|
|
263
263
|
|
|
@@ -287,7 +287,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
287
287
|
.addStore(new InMemoryStore({ model: PasswordResetToken, primaryKey: 'token' }))
|
|
288
288
|
usePasswordPolicy(i, { passwordComplexityRules: [createMinLengthComplexityRule(3)] })
|
|
289
289
|
const authenticator = i.getInstance(PasswordAuthenticator)
|
|
290
|
-
const hasher = authenticator
|
|
290
|
+
const { hasher } = authenticator
|
|
291
291
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName')
|
|
292
292
|
const resetTokenStore = i.getInstance(StoreManager).getStoreFor(PasswordResetToken, 'token')
|
|
293
293
|
|
|
@@ -316,7 +316,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
316
316
|
.addStore(new InMemoryStore({ model: PasswordResetToken, primaryKey: 'token' }))
|
|
317
317
|
usePasswordPolicy(i)
|
|
318
318
|
const authenticator = i.getInstance(PasswordAuthenticator)
|
|
319
|
-
const hasher = authenticator
|
|
319
|
+
const { hasher } = authenticator
|
|
320
320
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName')
|
|
321
321
|
const resetTokenStore = i.getInstance(StoreManager).getStoreFor(PasswordResetToken, 'token')
|
|
322
322
|
|
|
@@ -347,7 +347,7 @@ describe('PasswordAuthenticator', () => {
|
|
|
347
347
|
.addStore(new InMemoryStore({ model: PasswordResetToken, primaryKey: 'token' }))
|
|
348
348
|
usePasswordPolicy(i, { resetTokenExpirationSeconds: 1 })
|
|
349
349
|
const authenticator = i.getInstance(PasswordAuthenticator)
|
|
350
|
-
const hasher = authenticator
|
|
350
|
+
const { hasher } = authenticator
|
|
351
351
|
const passwordStore = i.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName')
|
|
352
352
|
const resetTokenStore = i.getInstance(StoreManager).getStoreFor(PasswordResetToken, 'token')
|
|
353
353
|
|
|
@@ -1,20 +1,25 @@
|
|
|
1
|
+
import type { PhysicalStore } from '@furystack/core'
|
|
1
2
|
import { StoreManager } from '@furystack/core'
|
|
2
|
-
import { Injectable, Injected
|
|
3
|
+
import { Injectable, Injected } from '@furystack/inject'
|
|
3
4
|
import { SecurityPolicyManager } from './security-policy-manager.js'
|
|
4
5
|
import { UnauthenticatedError } from './errors/index.js'
|
|
5
6
|
import type { PasswordCheckResult } from './models/index.js'
|
|
6
7
|
import { PasswordCredential, PasswordResetToken } from './models/index.js'
|
|
7
8
|
import { PasswordComplexityError } from './errors/password-complexity-error.js'
|
|
9
|
+
import type { PasswordHasher } from './password-hasher.js'
|
|
8
10
|
|
|
9
11
|
@Injectable({ lifetime: 'singleton' })
|
|
10
12
|
export class PasswordAuthenticator {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
@Injected((injector) => injector.getInstance(StoreManager).getStoreFor(PasswordCredential, 'userName'))
|
|
14
|
+
private declare readonly passwordStore: PhysicalStore<PasswordCredential, 'userName'>
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
@Injected((injector) => injector.getInstance(StoreManager).getStoreFor(PasswordResetToken, 'token'))
|
|
17
|
+
private declare readonly tokenStore
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
@Injected(function (this: PasswordAuthenticator, injector) {
|
|
20
|
+
return injector.getInstance(this.policyManager.policy.hasher)
|
|
21
|
+
})
|
|
22
|
+
public declare readonly hasher: PasswordHasher
|
|
18
23
|
|
|
19
24
|
/**
|
|
20
25
|
* @param userName The User's unique name
|
|
@@ -22,14 +27,14 @@ export class PasswordAuthenticator {
|
|
|
22
27
|
* @returns An object that contains an { isValid } value that indicates if the password is valid
|
|
23
28
|
*/
|
|
24
29
|
public async checkPasswordForUser(userName: string, plainPassword: string): Promise<PasswordCheckResult> {
|
|
25
|
-
const entry = await this.
|
|
30
|
+
const entry = await this.passwordStore.get(userName)
|
|
26
31
|
if (!entry) {
|
|
27
32
|
return {
|
|
28
33
|
isValid: false,
|
|
29
34
|
reason: 'badUsernameOrPassword',
|
|
30
35
|
}
|
|
31
36
|
}
|
|
32
|
-
const result = await this.
|
|
37
|
+
const result = await this.hasher.verifyCredential(plainPassword, entry)
|
|
33
38
|
if (result.isValid && this.policyManager.hasPasswordExpired(entry)) {
|
|
34
39
|
return {
|
|
35
40
|
isValid: false,
|
|
@@ -56,11 +61,10 @@ export class PasswordAuthenticator {
|
|
|
56
61
|
if (!lastResult.isValid) {
|
|
57
62
|
throw new UnauthenticatedError()
|
|
58
63
|
}
|
|
59
|
-
const
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
await store.add(newCredential)
|
|
64
|
+
const newCredential = await this.hasher.createCredential(userName, plainPassword)
|
|
65
|
+
const existing = await this.passwordStore.get(userName)
|
|
66
|
+
existing && (await this.passwordStore.remove(existing.userName))
|
|
67
|
+
await this.passwordStore.add(newCredential)
|
|
64
68
|
}
|
|
65
69
|
|
|
66
70
|
/**
|
|
@@ -69,14 +73,14 @@ export class PasswordAuthenticator {
|
|
|
69
73
|
* @param plainPassword The new password in plain string
|
|
70
74
|
*/
|
|
71
75
|
public async resetPasswordForUser(resetToken: string, plainPassword: string): Promise<void> {
|
|
72
|
-
const token = await this.
|
|
76
|
+
const token = await this.tokenStore.get(resetToken)
|
|
73
77
|
|
|
74
78
|
if (!token) {
|
|
75
79
|
throw new UnauthenticatedError()
|
|
76
80
|
}
|
|
77
81
|
|
|
78
82
|
if (this.policyManager.hasTokenExpired(token)) {
|
|
79
|
-
await this.
|
|
83
|
+
await this.tokenStore.remove(resetToken) // clean up token
|
|
80
84
|
throw new UnauthenticatedError()
|
|
81
85
|
}
|
|
82
86
|
|
|
@@ -85,16 +89,12 @@ export class PasswordAuthenticator {
|
|
|
85
89
|
throw new PasswordComplexityError(complexityResult.errors)
|
|
86
90
|
}
|
|
87
91
|
|
|
88
|
-
const newCredential = await this.
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
await store.add(newCredential)
|
|
92
|
+
const newCredential = await this.hasher.createCredential(token.userName, plainPassword)
|
|
93
|
+
const existing = await this.passwordStore.get(token.userName)
|
|
94
|
+
existing && (await this.passwordStore.remove(existing.userName))
|
|
95
|
+
await this.passwordStore.add(newCredential)
|
|
93
96
|
}
|
|
94
97
|
|
|
95
|
-
@Injected(Injector)
|
|
96
|
-
private readonly injector!: Injector
|
|
97
|
-
|
|
98
98
|
@Injected(SecurityPolicyManager)
|
|
99
|
-
public policyManager
|
|
99
|
+
public declare policyManager: SecurityPolicyManager
|
|
100
100
|
}
|