@sustaina/iam-middleware 1.0.3 → 1.1.1
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/README.md +97 -4
- package/dist/auth/AuthMiddleware.d.ts +36 -5
- package/dist/auth/AuthMiddleware.d.ts.map +1 -1
- package/dist/auth/AuthMiddleware.js +191 -109
- package/dist/auth/AuthMiddleware.js.map +1 -1
- package/dist/auth/AuthMiddleware.test.d.ts +2 -0
- package/dist/auth/AuthMiddleware.test.d.ts.map +1 -0
- package/dist/auth/AuthMiddleware.test.js +712 -0
- package/dist/auth/AuthMiddleware.test.js.map +1 -0
- package/dist/auth/ImplementModeMiddleware.test.d.ts +2 -0
- package/dist/auth/ImplementModeMiddleware.test.d.ts.map +1 -0
- package/dist/auth/ImplementModeMiddleware.test.js +249 -0
- package/dist/auth/ImplementModeMiddleware.test.js.map +1 -0
- package/dist/types/AuthTypes.d.ts +14 -4
- package/dist/types/AuthTypes.d.ts.map +1 -1
- package/package.json +12 -7
package/README.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @sustaina/iam-middleware
|
|
2
|
+
## Installation
|
|
3
|
+
```
|
|
4
|
+
npm install @sustaina/iam-middleware
|
|
5
|
+
```
|
|
2
6
|
|
|
7
|
+
## ENV
|
|
8
|
+
If you don't provide ```redisUrl/redisInstance ``` or ```jwtSecret``` directly in a class constructor, you can provide these by env including:
|
|
9
|
+
|
|
10
|
+
```IAM_REDIS_URL``` and ```IAM_JWT_SECRET```
|
|
3
11
|
## For CD
|
|
4
12
|
add these line in ```kustomization.yaml``` file in ```*-deploy``` repository
|
|
5
13
|
```
|
|
@@ -13,14 +21,78 @@ add these line in ```kustomization.yaml``` file in ```*-deploy``` repository
|
|
|
13
21
|
name: iam-middleware-dev-secret # <--- add this
|
|
14
22
|
# change dev to -> sit / uat
|
|
15
23
|
```
|
|
16
|
-
now you good to go.
|
|
24
|
+
now you're good to go.
|
|
25
|
+
## Information Attached to Request Object
|
|
26
|
+
This package extends FastifyRequest interface to include ```user property``` and ```jwt payload```.
|
|
27
|
+
|
|
28
|
+
you can get ```tenantId``` from ```request.payload?.tenantId```.
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
declare module "fastify" {
|
|
32
|
+
interface FastifyRequest {
|
|
33
|
+
user?: UserInfo;
|
|
34
|
+
payload?: JwtPayload;
|
|
35
|
+
isAuthenticated?: boolean;
|
|
36
|
+
|
|
37
|
+
admin?: AdminInfo;
|
|
38
|
+
adminPayload?: AdminJwtPayload;
|
|
39
|
+
isAuthenticatedAdmin?: boolean;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface UserInfo {
|
|
44
|
+
id: string;
|
|
45
|
+
name: string;
|
|
46
|
+
email: string;
|
|
47
|
+
type: string;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
export interface AdminJwtPayload {
|
|
52
|
+
id: string;
|
|
53
|
+
name: string;
|
|
54
|
+
email: string;
|
|
55
|
+
isPlatformAdmin: true;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export interface JwtPayload {
|
|
59
|
+
id: string;
|
|
60
|
+
name: string;
|
|
61
|
+
email: string;
|
|
62
|
+
tenantId: string;
|
|
63
|
+
type: string;
|
|
64
|
+
tenantLocale: string;
|
|
65
|
+
passwordPolicy: string;
|
|
66
|
+
isDenyPasswordChange: boolean;
|
|
67
|
+
isPasswordSendEmail: boolean;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export interface AdminInfo {
|
|
71
|
+
id: string;
|
|
72
|
+
name: string;
|
|
73
|
+
email: string;
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Available Method
|
|
78
|
+
```
|
|
79
|
+
const authMiddleware = new AuthMiddleware();
|
|
80
|
+
const implementMode = new ImplementModeMiddleware();
|
|
81
|
+
|
|
82
|
+
authMiddleware.authenticate
|
|
83
|
+
authMiddleware.optionalAuthenticate // don't abort and don't return 401
|
|
84
|
+
authMiddleware.authenticateAdmin
|
|
85
|
+
authMiddleware.optionalAuthenticateAdmin // don't abort and don't return 401
|
|
86
|
+
authMiddleware.permissionGuard([{ access: "canRead", subProgram: "test" }]);
|
|
87
|
+
implementMode.authorise
|
|
88
|
+
```
|
|
89
|
+
|
|
17
90
|
## Example Usage
|
|
18
91
|
```
|
|
19
92
|
import "dotenv/config";
|
|
20
93
|
import fastify from "fastify";
|
|
21
94
|
import pino from "pino";
|
|
22
|
-
import { AuthMiddleware } from "
|
|
23
|
-
import { ImplementModeMiddleware } from "./auth/ImplementModeMiddleware";
|
|
95
|
+
import { AuthMiddleware, ImplementModeMiddleware } from "@sustaina/iam-middleware";
|
|
24
96
|
|
|
25
97
|
const logger = pino({
|
|
26
98
|
level: process.env.LOG_LEVEL || "info",
|
|
@@ -33,7 +105,28 @@ async function createApp() {
|
|
|
33
105
|
const authMiddleware = new AuthMiddleware();
|
|
34
106
|
const implementMode = new ImplementModeMiddleware();
|
|
35
107
|
|
|
36
|
-
|
|
108
|
+
// Register middlewares to GROUP OF routes
|
|
109
|
+
await app.register(
|
|
110
|
+
async (appInstance) => {
|
|
111
|
+
appInstance.addHook("preHandler", authMiddleware.authenticate.bind(authMiddleware)); // required for implementMode.authorise and authMiddleware.
|
|
112
|
+
appInstance.addHook("preHandler", implementMode.authorise.bind(implementMode));
|
|
113
|
+
appInstance.addHook("preHandler", authMiddleware.permissionGuard([{ access: "canRead", subProgram: "test" }]).bind(authMiddleware));
|
|
114
|
+
appInstance.get("/test", {}, async (request, reply) => {
|
|
115
|
+
return reply.send({
|
|
116
|
+
success: true,
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
appInstance.get("/test2", {}, async (request, reply) => {
|
|
120
|
+
return reply.send({
|
|
121
|
+
success: false,
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
},
|
|
125
|
+
{ prefix: "/api/v1" }
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
// Register middlewares to each route
|
|
37
130
|
await app.register(
|
|
38
131
|
async (appInstance) => {
|
|
39
132
|
appInstance.get(
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { FastifyRequest, FastifyReply } from "fastify";
|
|
2
|
-
import { AuthMiddlewareOptions, JwtPayload, UserInfo, PermissionGuardParams } from "../types/AuthTypes";
|
|
2
|
+
import { AuthMiddlewareOptions, JwtPayload, UserInfo, PermissionGuardParams, AdminJwtPayload, AdminInfo } from "../types/AuthTypes";
|
|
3
3
|
import { BaseMiddleware } from "../base/BaseMiddleware";
|
|
4
4
|
declare module "fastify" {
|
|
5
5
|
interface FastifyRequest {
|
|
6
6
|
user?: UserInfo;
|
|
7
7
|
payload?: JwtPayload;
|
|
8
|
+
isAuthenticated?: boolean;
|
|
9
|
+
admin?: AdminInfo;
|
|
10
|
+
adminPayload?: AdminJwtPayload;
|
|
11
|
+
isAuthenticatedAdmin?: boolean;
|
|
8
12
|
}
|
|
9
13
|
}
|
|
10
14
|
export declare class AuthMiddleware extends BaseMiddleware {
|
|
@@ -23,8 +27,6 @@ export declare class AuthMiddleware extends BaseMiddleware {
|
|
|
23
27
|
* @param {AuthMiddlewareOptions} [options.jwtSecret] - A optional jwt secret.
|
|
24
28
|
*/
|
|
25
29
|
constructor(options?: AuthMiddlewareOptions);
|
|
26
|
-
private verifyJwt;
|
|
27
|
-
private checkAllowList;
|
|
28
30
|
/**
|
|
29
31
|
* A middleware to check if jwt token is valid and **populate request object with user and payload info**.
|
|
30
32
|
* @example
|
|
@@ -32,7 +34,31 @@ export declare class AuthMiddleware extends BaseMiddleware {
|
|
|
32
34
|
* const prehandler = [authMiddleware.authenticate.bind(authMiddleware)]
|
|
33
35
|
*/
|
|
34
36
|
authenticate: (request: FastifyRequest, reply: FastifyReply) => Promise<undefined>;
|
|
35
|
-
|
|
37
|
+
/**
|
|
38
|
+
* A middleware to check if jwt token is valid and populate request object with user and payload info.
|
|
39
|
+
*
|
|
40
|
+
* **This middleware does not return error responses, it just skips authentication on failure.**
|
|
41
|
+
* @example
|
|
42
|
+
* const authMiddleware = new AuthMiddleware()
|
|
43
|
+
* const prehandler = [authMiddleware.optionalAuthenticate.bind(authMiddleware)]
|
|
44
|
+
*/
|
|
45
|
+
optionalAuthenticate: (request: FastifyRequest, reply: FastifyReply) => Promise<undefined>;
|
|
46
|
+
/**
|
|
47
|
+
* A middleware to check if jwt token is valid and **populate request object with admin and payload info**.
|
|
48
|
+
* @example
|
|
49
|
+
* const authMiddleware = new AuthMiddleware()
|
|
50
|
+
* const prehandler = [authMiddleware.authenticateAdmin.bind(authMiddleware)]
|
|
51
|
+
*/
|
|
52
|
+
authenticateAdmin: (request: FastifyRequest, reply: FastifyReply) => Promise<undefined>;
|
|
53
|
+
/**
|
|
54
|
+
* A middleware to check if jwt token is valid and populate request object with admin and payload info.
|
|
55
|
+
*
|
|
56
|
+
* **This middleware does not return error responses, it just skips authentication on failure.**
|
|
57
|
+
* @example
|
|
58
|
+
* const authMiddleware = new AuthMiddleware()
|
|
59
|
+
* const prehandler = [authMiddleware.optionalAuthenticateAdmin.bind(authMiddleware)]
|
|
60
|
+
*/
|
|
61
|
+
optionalAuthenticateAdmin: (request: FastifyRequest, reply: FastifyReply) => Promise<undefined>;
|
|
36
62
|
/**
|
|
37
63
|
* A middleware to check if user has permissions.
|
|
38
64
|
* @example
|
|
@@ -46,6 +72,11 @@ export declare class AuthMiddleware extends BaseMiddleware {
|
|
|
46
72
|
* ]
|
|
47
73
|
*/
|
|
48
74
|
permissionGuard: (params: PermissionGuardParams) => (request: FastifyRequest, reply: FastifyReply) => Promise<undefined>;
|
|
49
|
-
|
|
75
|
+
private internalAuthenticate;
|
|
76
|
+
private internalAuthenticateAdmin;
|
|
77
|
+
private optionalReply;
|
|
78
|
+
private verifyJwt;
|
|
79
|
+
private checkAllowList;
|
|
80
|
+
private checkPermission;
|
|
50
81
|
}
|
|
51
82
|
//# sourceMappingURL=AuthMiddleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthMiddleware.d.ts","sourceRoot":"","sources":["../../src/auth/AuthMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIvD,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,QAAQ,EAER,qBAAqB,
|
|
1
|
+
{"version":3,"file":"AuthMiddleware.d.ts","sourceRoot":"","sources":["../../src/auth/AuthMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIvD,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,QAAQ,EAER,qBAAqB,EAErB,eAAe,EACf,SAAS,EACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAKxD,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,cAAc;QACtB,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,OAAO,CAAC,EAAE,UAAU,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;QAE1B,KAAK,CAAC,EAAE,SAAS,CAAC;QAClB,YAAY,CAAC,EAAE,eAAe,CAAC;QAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC;CACF;AAED,qBAAa,cAAe,SAAQ,cAAc;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;;;;;;;;;;;OAYG;gBACS,OAAO,CAAC,EAAE,qBAAqB;IAK3C;;;;;OAKG;IACH,YAAY,GAAU,SAAS,cAAc,EAAE,OAAO,YAAY,wBAIhE;IACF;;;;;;;OAOG;IACH,oBAAoB,GAAU,SAAS,cAAc,EAAE,OAAO,YAAY,wBAIxE;IACF;;;;;OAKG;IACH,iBAAiB,GAAU,SAAS,cAAc,EAAE,OAAO,YAAY,wBAIrE;IACF;;;;;;;OAOG;IACH,yBAAyB,GAAU,SAAS,cAAc,EAAE,OAAO,YAAY,wBAI7E;IACF;;;;;;;;;;;OAWG;IACH,eAAe,GAAI,QAAQ,qBAAqB,MAAY,SAAS,cAAc,EAAE,OAAO,YAAY,wBAwBtG;IAEF,OAAO,CAAC,oBAAoB,CAkJ1B;IAEF,OAAO,CAAC,yBAAyB,CA8G/B;IAEF,OAAO,CAAC,aAAa,CAMnB;IAEF,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,cAAc,CAqBpB;IAEF,OAAO,CAAC,eAAe,CA2ErB;CACH"}
|
|
@@ -25,27 +25,6 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
|
|
|
25
25
|
*/
|
|
26
26
|
constructor(options) {
|
|
27
27
|
super({ ...options, name: "AuthMiddleware" });
|
|
28
|
-
this.verifyJwt = (token) => {
|
|
29
|
-
return jsonwebtoken_1.default.verify(token, this.jwtSecret);
|
|
30
|
-
};
|
|
31
|
-
this.checkAllowList = async (payload, token) => {
|
|
32
|
-
const allowlistKey = `auth:session:${payload.id}`;
|
|
33
|
-
const tokenJti = payload.jti;
|
|
34
|
-
if (!tokenJti) {
|
|
35
|
-
logger.warn({ token }, "Missing jti in token");
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
try {
|
|
39
|
-
const jtiInRedis = await this.redisClient.get(allowlistKey);
|
|
40
|
-
const isAllowlisted = jtiInRedis === tokenJti;
|
|
41
|
-
logger.debug({ allowlistKey, tokenJti, jtiInRedis, isAllowlisted }, "Checked Token allowlist in Redis");
|
|
42
|
-
return isAllowlisted;
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
logger.error({ err, allowlistKey }, "Redis allowlist check failed");
|
|
46
|
-
throw err;
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
28
|
/**
|
|
50
29
|
* A middleware to check if jwt token is valid and **populate request object with user and payload info**.
|
|
51
30
|
* @example
|
|
@@ -55,6 +34,76 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
|
|
|
55
34
|
this.authenticate = async (request, reply) => {
|
|
56
35
|
const tracer = api_1.trace.getTracer(this.serviceName);
|
|
57
36
|
const span = tracer.startSpan("AuthMiddleware.authenticate");
|
|
37
|
+
return this.internalAuthenticate(request, reply, span, false);
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* A middleware to check if jwt token is valid and populate request object with user and payload info.
|
|
41
|
+
*
|
|
42
|
+
* **This middleware does not return error responses, it just skips authentication on failure.**
|
|
43
|
+
* @example
|
|
44
|
+
* const authMiddleware = new AuthMiddleware()
|
|
45
|
+
* const prehandler = [authMiddleware.optionalAuthenticate.bind(authMiddleware)]
|
|
46
|
+
*/
|
|
47
|
+
this.optionalAuthenticate = async (request, reply) => {
|
|
48
|
+
const tracer = api_1.trace.getTracer(this.serviceName);
|
|
49
|
+
const span = tracer.startSpan("AuthMiddleware.optionalAuthenticate");
|
|
50
|
+
return this.internalAuthenticate(request, reply, span, true);
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* A middleware to check if jwt token is valid and **populate request object with admin and payload info**.
|
|
54
|
+
* @example
|
|
55
|
+
* const authMiddleware = new AuthMiddleware()
|
|
56
|
+
* const prehandler = [authMiddleware.authenticateAdmin.bind(authMiddleware)]
|
|
57
|
+
*/
|
|
58
|
+
this.authenticateAdmin = async (request, reply) => {
|
|
59
|
+
const tracer = api_1.trace.getTracer(this.serviceName);
|
|
60
|
+
const span = tracer.startSpan("AuthMiddleware.authenticateAdmin");
|
|
61
|
+
return this.internalAuthenticateAdmin(request, reply, span, false);
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* A middleware to check if jwt token is valid and populate request object with admin and payload info.
|
|
65
|
+
*
|
|
66
|
+
* **This middleware does not return error responses, it just skips authentication on failure.**
|
|
67
|
+
* @example
|
|
68
|
+
* const authMiddleware = new AuthMiddleware()
|
|
69
|
+
* const prehandler = [authMiddleware.optionalAuthenticateAdmin.bind(authMiddleware)]
|
|
70
|
+
*/
|
|
71
|
+
this.optionalAuthenticateAdmin = async (request, reply) => {
|
|
72
|
+
const tracer = api_1.trace.getTracer(this.serviceName);
|
|
73
|
+
const span = tracer.startSpan("AuthMiddleware.optionalAuthenticateAdmin");
|
|
74
|
+
return this.internalAuthenticateAdmin(request, reply, span, true);
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* A middleware to check if user has permissions.
|
|
78
|
+
* @example
|
|
79
|
+
* const authMiddleware = new AuthMiddleware()
|
|
80
|
+
* const prehandler = [
|
|
81
|
+
* authMiddleware.authenticate.bind(authMiddleware), // required
|
|
82
|
+
* authMiddleware.permissionGuard([
|
|
83
|
+
* { access: "canRead", subProgram: "sub1" },
|
|
84
|
+
* { access: "canRead", subProgram: "sub2" }
|
|
85
|
+
* ]).bind(authMiddleware)
|
|
86
|
+
* ]
|
|
87
|
+
*/
|
|
88
|
+
this.permissionGuard = (params) => async (request, reply) => {
|
|
89
|
+
let pool = [];
|
|
90
|
+
if (!Array.isArray(params)) {
|
|
91
|
+
pool = [params];
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
pool = params;
|
|
95
|
+
}
|
|
96
|
+
if (!request.user) {
|
|
97
|
+
logger.error("permissionGuard: no user info from AuthMiddleware.authenticate");
|
|
98
|
+
return reply.status(401).send({ error: "Authentication Error", message: "User not authenticated" });
|
|
99
|
+
}
|
|
100
|
+
await Promise.all(pool.map((v) => this.checkPermission({
|
|
101
|
+
userId: request.user.id,
|
|
102
|
+
subProgram: v.subProgram,
|
|
103
|
+
access: v.access,
|
|
104
|
+
}, reply, request.payload)));
|
|
105
|
+
};
|
|
106
|
+
this.internalAuthenticate = async (request, reply, span, optional) => {
|
|
58
107
|
try {
|
|
59
108
|
const authHeader = request.headers.authorization;
|
|
60
109
|
if (!authHeader || !authHeader.startsWith("Bearer ")) {
|
|
@@ -63,10 +112,10 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
|
|
|
63
112
|
"error.message": "No authorization token provided",
|
|
64
113
|
});
|
|
65
114
|
logger.warn({ url: request.url }, "Authentication failed: No token provided");
|
|
66
|
-
return reply.status(401).send({
|
|
115
|
+
return this.optionalReply(() => reply.status(401).send({
|
|
67
116
|
error: "Authentication Error",
|
|
68
117
|
message: "Authorization token is required",
|
|
69
|
-
});
|
|
118
|
+
}), optional);
|
|
70
119
|
}
|
|
71
120
|
const token = authHeader.substring(7);
|
|
72
121
|
// Verify JWT token
|
|
@@ -84,10 +133,10 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
|
|
|
84
133
|
url: request.url,
|
|
85
134
|
error: jwtError instanceof Error ? jwtError.message : "Unknown JWT error",
|
|
86
135
|
}, "Authentication failed: Invalid token");
|
|
87
|
-
return reply.status(401).send({
|
|
136
|
+
return this.optionalReply(() => reply.status(401).send({
|
|
88
137
|
error: "Authentication Error",
|
|
89
138
|
message: "Invalid or expired token",
|
|
90
|
-
});
|
|
139
|
+
}), optional);
|
|
91
140
|
}
|
|
92
141
|
// Validate payload structure
|
|
93
142
|
if (!payload.id ||
|
|
@@ -104,23 +153,24 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
|
|
|
104
153
|
"error.message": "Token payload is incomplete",
|
|
105
154
|
});
|
|
106
155
|
logger.warn({ url: request.url, payload }, "Authentication failed: Invalid token payload");
|
|
107
|
-
return reply.status(401).send({
|
|
156
|
+
return this.optionalReply(() => reply.status(401).send({
|
|
108
157
|
error: "Authentication Error",
|
|
109
158
|
message: "Invalid token payload",
|
|
110
|
-
});
|
|
159
|
+
}), optional);
|
|
111
160
|
}
|
|
112
161
|
// Check allowlist (Redis)
|
|
113
162
|
try {
|
|
114
163
|
const result = await this.checkAllowList(payload, token);
|
|
115
164
|
if (!result) {
|
|
116
|
-
return reply.status(401).send({
|
|
165
|
+
return this.optionalReply(() => reply.status(401).send({
|
|
117
166
|
error: "Authentication Error",
|
|
118
167
|
message: "Token is not in allow list",
|
|
119
|
-
});
|
|
168
|
+
}), optional);
|
|
120
169
|
}
|
|
121
170
|
}
|
|
122
171
|
catch (error) {
|
|
123
172
|
logger.error({ error: error.message, url: request.url }, "Token validation failed in AuthMiddleware");
|
|
173
|
+
// no optional reply here, as this is a server error
|
|
124
174
|
return reply.status(500).send({
|
|
125
175
|
error: "Internal Server Error",
|
|
126
176
|
message: "Error while checking token validity",
|
|
@@ -133,11 +183,11 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
|
|
|
133
183
|
email: payload.email,
|
|
134
184
|
type: payload.type,
|
|
135
185
|
};
|
|
186
|
+
request.isAuthenticated = true;
|
|
136
187
|
span.setAttributes({
|
|
137
188
|
"user.id": payload.id,
|
|
138
189
|
"user.email": payload.email,
|
|
139
190
|
"user.name": payload.name,
|
|
140
|
-
"user.username": payload.username,
|
|
141
191
|
"auth.success": true,
|
|
142
192
|
});
|
|
143
193
|
logger.debug({
|
|
@@ -152,6 +202,89 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
|
|
|
152
202
|
"error.type": "middleware_error",
|
|
153
203
|
});
|
|
154
204
|
logger.error({ error, url: request.url }, "Error in authentication middleware");
|
|
205
|
+
// no optional reply here, as this is a server error
|
|
206
|
+
return reply.status(500).send({
|
|
207
|
+
error: "Internal Server Error",
|
|
208
|
+
message: "Authentication service error",
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
finally {
|
|
212
|
+
span.end();
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
this.internalAuthenticateAdmin = async (request, reply, span, optional) => {
|
|
216
|
+
try {
|
|
217
|
+
const authHeader = request.headers.authorization;
|
|
218
|
+
if (!authHeader || !authHeader.startsWith("Bearer ")) {
|
|
219
|
+
span.setAttributes({
|
|
220
|
+
"error.type": "missing_token",
|
|
221
|
+
"error.message": "No authorization token provided",
|
|
222
|
+
});
|
|
223
|
+
logger.warn({ url: request.url }, "Admin authentication failed: No token provided");
|
|
224
|
+
return this.optionalReply(() => reply.status(401).send({
|
|
225
|
+
error: "Authentication Error",
|
|
226
|
+
message: "Authorization token is required",
|
|
227
|
+
}), optional);
|
|
228
|
+
}
|
|
229
|
+
const token = authHeader.substring(7);
|
|
230
|
+
// Verify JWT token
|
|
231
|
+
let payload;
|
|
232
|
+
try {
|
|
233
|
+
payload = this.verifyJwt(token);
|
|
234
|
+
request.adminPayload = payload;
|
|
235
|
+
}
|
|
236
|
+
catch (jwtError) {
|
|
237
|
+
span.setAttributes({
|
|
238
|
+
"error.type": "invalid_token",
|
|
239
|
+
"error.message": "Token verification failed",
|
|
240
|
+
});
|
|
241
|
+
logger.warn({
|
|
242
|
+
url: request.url,
|
|
243
|
+
error: jwtError instanceof Error ? jwtError.message : "Unknown JWT error",
|
|
244
|
+
}, "Admin authentication failed: Invalid token");
|
|
245
|
+
return this.optionalReply(() => reply.status(401).send({
|
|
246
|
+
error: "Authentication Error",
|
|
247
|
+
message: "Invalid or expired token",
|
|
248
|
+
}), optional);
|
|
249
|
+
}
|
|
250
|
+
// Validate payload structure
|
|
251
|
+
if (!payload.id || !payload.name || !payload.email || !payload.isPlatformAdmin) {
|
|
252
|
+
span.setAttributes({
|
|
253
|
+
"error.type": "invalid_payload",
|
|
254
|
+
"error.message": "Token payload is incomplete",
|
|
255
|
+
});
|
|
256
|
+
logger.warn({ url: request.url, payload }, "Admin authentication failed: Invalid token payload");
|
|
257
|
+
return this.optionalReply(() => reply.status(401).send({
|
|
258
|
+
error: "Authentication Error",
|
|
259
|
+
message: "Invalid token payload",
|
|
260
|
+
}), optional);
|
|
261
|
+
}
|
|
262
|
+
// Attach admin info to request
|
|
263
|
+
request.admin = {
|
|
264
|
+
id: payload.id,
|
|
265
|
+
name: payload.name,
|
|
266
|
+
email: payload.email,
|
|
267
|
+
};
|
|
268
|
+
request.isAuthenticatedAdmin = true;
|
|
269
|
+
span.setAttributes({
|
|
270
|
+
"user.id": payload.id,
|
|
271
|
+
"user.email": payload.email,
|
|
272
|
+
"user.name": payload.name,
|
|
273
|
+
"auth.success": true,
|
|
274
|
+
});
|
|
275
|
+
logger.debug({
|
|
276
|
+
userId: payload.id,
|
|
277
|
+
email: payload.email,
|
|
278
|
+
url: request.url,
|
|
279
|
+
}, "Admin authenticated successfully");
|
|
280
|
+
}
|
|
281
|
+
catch (error) {
|
|
282
|
+
span.recordException(error);
|
|
283
|
+
span.setAttributes({
|
|
284
|
+
"error.type": "middleware_error",
|
|
285
|
+
});
|
|
286
|
+
logger.error({ error, url: request.url }, "Error in admin authentication middleware");
|
|
287
|
+
// no optional reply here, as this is a server error
|
|
155
288
|
return reply.status(500).send({
|
|
156
289
|
error: "Internal Server Error",
|
|
157
290
|
message: "Authentication service error",
|
|
@@ -161,6 +294,31 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
|
|
|
161
294
|
span.end();
|
|
162
295
|
}
|
|
163
296
|
};
|
|
297
|
+
this.optionalReply = (fn, optional) => {
|
|
298
|
+
if (optional) {
|
|
299
|
+
logger.warn("Optional is 'true', middleware will skip error response");
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
return fn();
|
|
303
|
+
};
|
|
304
|
+
this.checkAllowList = async (payload, token) => {
|
|
305
|
+
const allowlistKey = `auth:session:${payload.id}`;
|
|
306
|
+
const tokenJti = payload.jti;
|
|
307
|
+
if (!tokenJti) {
|
|
308
|
+
logger.warn({ token }, "Missing jti in token");
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
try {
|
|
312
|
+
const jtiInRedis = await this.redisClient.get(allowlistKey);
|
|
313
|
+
const isAllowlisted = jtiInRedis === tokenJti;
|
|
314
|
+
logger.debug({ allowlistKey, tokenJti, jtiInRedis, isAllowlisted }, "Checked Token allowlist in Redis");
|
|
315
|
+
return isAllowlisted;
|
|
316
|
+
}
|
|
317
|
+
catch (err) {
|
|
318
|
+
logger.error({ err, allowlistKey }, "Redis allowlist check failed");
|
|
319
|
+
throw err;
|
|
320
|
+
}
|
|
321
|
+
};
|
|
164
322
|
this.checkPermission = async ({ userId, access, subProgram }, reply, payload) => {
|
|
165
323
|
// skip if user is admin
|
|
166
324
|
if (payload.type === "administrator") {
|
|
@@ -226,87 +384,11 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
|
|
|
226
384
|
});
|
|
227
385
|
}
|
|
228
386
|
};
|
|
229
|
-
/**
|
|
230
|
-
* A middleware to check if user has permissions.
|
|
231
|
-
* @example
|
|
232
|
-
* const authMiddleware = new AuthMiddleware()
|
|
233
|
-
* const prehandler = [
|
|
234
|
-
* authMiddleware.authenticate.bind(authMiddleware), // required
|
|
235
|
-
* authMiddleware.permissionGuard([
|
|
236
|
-
* { access: "canRead", subProgram: "sub1" },
|
|
237
|
-
* { access: "canRead", subProgram: "sub2" }
|
|
238
|
-
* ]).bind(authMiddleware)
|
|
239
|
-
* ]
|
|
240
|
-
*/
|
|
241
|
-
this.permissionGuard = (params) => async (request, reply) => {
|
|
242
|
-
let pool = [];
|
|
243
|
-
if (!Array.isArray(params)) {
|
|
244
|
-
pool = [params];
|
|
245
|
-
}
|
|
246
|
-
else {
|
|
247
|
-
pool = params;
|
|
248
|
-
}
|
|
249
|
-
if (!request.user) {
|
|
250
|
-
logger.error("permissionGuard: no user info from AuthMiddleware.authenticate");
|
|
251
|
-
return reply.status(401).send({ error: "Authentication Error", message: "User not authenticated" });
|
|
252
|
-
}
|
|
253
|
-
await Promise.all(pool.map((v) => this.checkPermission({
|
|
254
|
-
userId: request.user.id,
|
|
255
|
-
subProgram: v.subProgram,
|
|
256
|
-
access: v.access,
|
|
257
|
-
}, reply, request.payload)));
|
|
258
|
-
};
|
|
259
|
-
this.optionalAuth = async (request) => {
|
|
260
|
-
const tracer = api_1.trace.getTracer(this.serviceName);
|
|
261
|
-
const span = tracer.startSpan("AuthMiddleware.optionalAuth");
|
|
262
|
-
try {
|
|
263
|
-
const authHeader = request.headers.authorization;
|
|
264
|
-
if (!authHeader || !authHeader.startsWith("Bearer ")) {
|
|
265
|
-
span.setAttributes({
|
|
266
|
-
"auth.optional": true,
|
|
267
|
-
"auth.token_present": false,
|
|
268
|
-
});
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
271
|
-
const token = authHeader.substring(7);
|
|
272
|
-
try {
|
|
273
|
-
const payload = this.verifyJwt(token);
|
|
274
|
-
if (payload.id &&
|
|
275
|
-
payload.name &&
|
|
276
|
-
payload.email &&
|
|
277
|
-
payload.tenantId &&
|
|
278
|
-
payload.type &&
|
|
279
|
-
payload.tenantLocale &&
|
|
280
|
-
payload.passwordPolicy &&
|
|
281
|
-
payload.isDenyPasswordChange !== undefined &&
|
|
282
|
-
payload.isPasswordSendEmail !== undefined) {
|
|
283
|
-
request.user = { id: payload.id, name: payload.name, email: payload.email, type: payload.type };
|
|
284
|
-
span.setAttributes({
|
|
285
|
-
"auth.optional": true,
|
|
286
|
-
"auth.token_present": true,
|
|
287
|
-
"user.id": payload.id,
|
|
288
|
-
});
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
catch (jwtError) {
|
|
292
|
-
logger.debug({ error: jwtError }, "Optional auth: Invalid token provided");
|
|
293
|
-
span.setAttributes({
|
|
294
|
-
"auth.optional": true,
|
|
295
|
-
"auth.token_present": true,
|
|
296
|
-
"auth.token_valid": false,
|
|
297
|
-
});
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
catch (error) {
|
|
301
|
-
span.recordException(error);
|
|
302
|
-
logger.error({ error: error.message || error }, "Error in optional authentication middleware");
|
|
303
|
-
}
|
|
304
|
-
finally {
|
|
305
|
-
span.end();
|
|
306
|
-
}
|
|
307
|
-
};
|
|
308
387
|
this.jwtSecret = options?.jwtSecret ?? process.env.IAM_JWT_SECRET ?? "your_secret";
|
|
309
388
|
}
|
|
389
|
+
verifyJwt(token) {
|
|
390
|
+
return jsonwebtoken_1.default.verify(token, this.jwtSecret);
|
|
391
|
+
}
|
|
310
392
|
}
|
|
311
393
|
exports.AuthMiddleware = AuthMiddleware;
|
|
312
394
|
//# sourceMappingURL=AuthMiddleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthMiddleware.js","sourceRoot":"","sources":["../../src/auth/AuthMiddleware.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AuthMiddleware.js","sourceRoot":"","sources":["../../src/auth/AuthMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthMiddleware.test.d.ts","sourceRoot":"","sources":["../../src/auth/AuthMiddleware.test.ts"],"names":[],"mappings":""}
|