Skip to content

Commit bd6bcb0

Browse files
committed
refactor: Remove HttpHandlerContext interface
1 parent d3d3254 commit bd6bcb0

12 files changed

Lines changed: 51 additions & 67 deletions

packages/uma/src/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ export * from './util/ReType';
6060
// HTTP
6161
export * from './util/http/identifier/BaseTargetExtractor';
6262
export * from './util/http/models/HttpHandler';
63-
export * from './util/http/models/HttpHandlerContext';
6463
export * from './util/http/models/HttpHandlerRequest';
6564
export * from './util/http/models/HttpHandlerResponse';
6665
export * from './util/http/server/ErrorHandler';

packages/uma/src/routes/Config.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { ASYMMETRIC_CRYPTOGRAPHIC_ALGORITHM }
22
from '@solid/access-token-verifier/dist/constant/ASYMMETRIC_CRYPTOGRAPHIC_ALGORITHM';
33
import { getLoggerFor } from '@solid/community-server';
44
import { HttpHandler } from '../util/http/models/HttpHandler';
5-
import { HttpHandlerContext } from '../util/http/models/HttpHandlerContext';
5+
import { HttpHandlerRequest } from '../util/http/models/HttpHandlerRequest';
66
import { HttpHandlerResponse } from '../util/http/models/HttpHandlerResponse';
77

88
// eslint-disable no-unused-vars
@@ -49,11 +49,11 @@ export class ConfigRequestHandler extends HttpHandler {
4949
/**
5050
* Returns the endpoint's UMA configuration
5151
*
52-
* @param {HttpHandlerContext} context - an irrelevant incoming context
53-
* @return {Observable<HttpHandlerResponse>} - the mock response
52+
* @param {HttpHandlerRequest} request - an irrelevant incoming context
53+
* @return {HttpHandlerResponse} - the mock response
5454
*/
55-
async handle(context: HttpHandlerContext): Promise<HttpHandlerResponse> {
56-
this.logger.info(`Received discovery request at '${context.request.url}'`);
55+
async handle(request: HttpHandlerRequest): Promise<HttpHandlerResponse> {
56+
this.logger.info(`Received discovery request at '${request.url}'`);
5757

5858
return {
5959
body: JSON.stringify(this.getConfig()),

packages/uma/src/routes/Introspection.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { HttpHandlerContext } from '../util/http/models/HttpHandlerContext';
21
import { HttpHandler } from '../util/http/models/HttpHandler';
2+
import { HttpHandlerRequest } from '../util/http/models/HttpHandlerRequest';
33
import { HttpHandlerResponse } from '../util/http/models/HttpHandlerResponse';
44
import { AccessToken } from '../tokens/AccessToken';
55
import { JwtTokenFactory } from '../tokens/JwtTokenFactory';
@@ -28,17 +28,16 @@ export class IntrospectionHandler extends HttpHandler {
2828
constructor(
2929
private readonly tokenStore: KeyValueStorage<string, AccessToken>,
3030
private readonly jwtTokenFactory: JwtTokenFactory,
31-
private readonly keyGen: JwkGenerator,
3231
) {
3332
super();
3433
}
3534

3635
/**
3736
* Handle incoming requests for token introspection
38-
* @param {HttpHandlerContext} param0
39-
* @return {Observable<HttpHandlerResponse<any>>}
37+
* @param {HttpHandlerRequest} request
38+
* @return {HttpHandlerResponse}
4039
*/
41-
async handle({request}: HttpHandlerContext): Promise<HttpHandlerResponse<any>> {
40+
async handle(request: HttpHandlerRequest): Promise<HttpHandlerResponse<any>> {
4241
if (!await verifyRequest(request)) throw new UnauthorizedHttpError();
4342

4443
if (request.headers['content-type'] !== 'application/x-www-form-urlencoded') {

packages/uma/src/routes/Jwks.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { HttpHandler } from '../util/http/models/HttpHandler';
2-
import { HttpHandlerContext } from '../util/http/models/HttpHandlerContext';
2+
import { HttpHandlerRequest } from '../util/http/models/HttpHandlerRequest';
33
import { HttpHandlerResponse } from '../util/http/models/HttpHandlerResponse';
44
import { getLoggerFor, JwkGenerator } from '@solid/community-server';
55

@@ -22,11 +22,11 @@ export class JwksRequestHandler extends HttpHandler {
2222

2323
/**
2424
* Returns the JSON Web KeySet for specified keyholder
25-
* @param {HttpHandlerContext} context - an irrelevant incoming context
26-
* @return {Observable<HttpHandlerResponse>} - the JWKS response
25+
* @param {HttpHandlerRequest} request
26+
* @return {HttpHandlerResponse} - the JWKS response
2727
*/
28-
async handle(context: HttpHandlerContext): Promise<HttpHandlerResponse> {
29-
this.logger.info(`Received JWKS request at '${context.request.url}'`);
28+
async handle(request: HttpHandlerRequest): Promise<HttpHandlerResponse> {
29+
this.logger.info(`Received JWKS request at '${request.url}'`);
3030

3131
const key = await this.generator.getPublicKey();
3232

packages/uma/src/routes/ResourceRegistration.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import {
88
UnsupportedMediaTypeHttpError
99
} from '@solid/community-server';
1010
import {HttpHandler} from '../util/http/models/HttpHandler';
11-
import {HttpHandlerContext} from '../util/http/models/HttpHandlerContext';
1211
import {HttpHandlerResponse} from '../util/http/models/HttpHandlerResponse';
1312
import {v4} from 'uuid';
1413
import { HttpHandlerRequest } from '../util/http/models/HttpHandlerRequest';
@@ -38,10 +37,10 @@ export class ResourceRegistrationRequestHandler extends HttpHandler {
3837

3938
/**
4039
* Handle incoming requests for resource registration
41-
* @param {HttpHandlerContext} param0
42-
* @return {Observable<HttpHandlerResponse<PermissionRegistrationResponse>>}
40+
* @param {HttpHandlerRequest} request
41+
* @return {HttpHandlerResponse}
4342
*/
44-
async handle({ request }: HttpHandlerContext): Promise<HttpHandlerResponse<any>> {
43+
async handle(request: HttpHandlerRequest): Promise<HttpHandlerResponse> {
4544
const signer = await extractRequestSigner(request);
4645

4746
// TODO: check if signer is actually the correct one

packages/uma/src/routes/Ticket.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
UnsupportedMediaTypeHttpError
66
} from '@solid/community-server';
77
import { HttpHandler } from '../util/http/models/HttpHandler';
8-
import { HttpHandlerContext } from '../util/http/models/HttpHandlerContext';
8+
import { HttpHandlerRequest } from '../util/http/models/HttpHandlerRequest';
99
import { HttpHandlerResponse } from '../util/http/models/HttpHandlerResponse';
1010
import { array, reType } from '../util/ReType';
1111
import { Permission } from '../views/Permission';
@@ -39,10 +39,10 @@ export class TicketRequestHandler extends HttpHandler {
3939

4040
/**
4141
* Handle incoming requests for permission registration
42-
* @param {HttpHandlerContext} param0
43-
* @return {Observable<HttpHandlerResponse<PermissionRegistrationResponse>>}
42+
* @param {HttpHandlerRequest} request
43+
* @return {HttpHandlerResponse}
4444
*/
45-
async handle({request}: HttpHandlerContext): Promise<HttpHandlerResponse<any>> {
45+
async handle(request: HttpHandlerRequest): Promise<HttpHandlerResponse> {
4646
this.logger.info(`Received permission registration request.`);
4747
if (!await verifyRequest(request)) throw new UnauthorizedHttpError();
4848

packages/uma/src/routes/Token.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
UnsupportedMediaTypeHttpError
66
} from '@solid/community-server';
77
import { HttpHandler } from '../util/http/models/HttpHandler';
8-
import { HttpHandlerContext } from '../util/http/models/HttpHandlerContext';
8+
import { HttpHandlerRequest } from '../util/http/models/HttpHandlerRequest';
99
import { HttpHandlerResponse } from '../util/http/models/HttpHandlerResponse';
1010
import { Negotiator } from '../dialog/Negotiator';
1111
import { DialogInput } from '../dialog/Input';
@@ -27,18 +27,18 @@ export class TokenRequestHandler extends HttpHandler {
2727
/**
2828
* Handles an incoming token request.
2929
*
30-
* @param {HttpHandlerContext} input - Request context
31-
* @return {Observable<HttpHandlerResponse<any>>} - response
30+
* @param {HttpHandlerRequest} request - Request context
31+
* @return {HttpHandlerResponse} - response
3232
*/
33-
async handle(input: HttpHandlerContext): Promise<HttpHandlerResponse<any>> {
33+
async handle(request: HttpHandlerRequest): Promise<HttpHandlerResponse> {
3434
this.logger.info(`Received token request.`);
3535

3636
// This deviates from UMA, which reads application/x-www-form-urlencoded
37-
if (input.request.headers['content-type'] !== 'application/json') {
37+
if (request.headers['content-type'] !== 'application/json') {
3838
throw new UnsupportedMediaTypeHttpError();
3939
}
4040

41-
const params = input.request.body;
41+
const params = request.body;
4242

4343
// if (params['grant_type'] !== 'urn:ietf:params:oauth:grant-type:uma-ticket') {
4444
// throw new BadRequestHttpError(
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import { AsyncHandler } from '@solid/community-server';
2+
import { HttpHandlerRequest } from './HttpHandlerRequest';
23
import { HttpHandlerResponse } from './HttpHandlerResponse';
3-
import { HttpHandlerContext } from './HttpHandlerContext';
44

5-
// eslint-disable-next-line @typescript-eslint/no-empty-interface
6-
export abstract class HttpHandler<C extends HttpHandlerContext = HttpHandlerContext>
7-
extends AsyncHandler<C, HttpHandlerResponse> { }
5+
export abstract class HttpHandler extends AsyncHandler<HttpHandlerRequest, HttpHandlerResponse> { }

packages/uma/src/util/http/models/HttpHandlerContext.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

packages/uma/src/util/http/server/ErrorHandler.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { getLoggerFor } from '@solid/community-server';
22
import {HttpHandler} from '../models/HttpHandler';
3-
import {HttpHandlerContext} from '../models/HttpHandlerContext';
3+
import { HttpHandlerRequest } from '../models/HttpHandlerRequest';
44
import {HttpHandlerResponse} from '../models/HttpHandlerResponse';
55

66
export const statusCodes: { [code: number]: string } = {
@@ -64,14 +64,14 @@ export class JsonHttpErrorHandler extends HttpHandler {
6464
/**
6565
* Handle Http Request and catch any Errors that occur
6666
*
67-
* @param {HttpHandlerContext} context - Request context
68-
* @return {Observable<HttpHandlerResponse>}
67+
* @param {HttpHandlerRequest} request - Request
68+
* @return {HttpHandlerResponse}
6969
*/
70-
async handle(context: HttpHandlerContext): Promise<HttpHandlerResponse> {
70+
async handle(request: HttpHandlerRequest): Promise<HttpHandlerResponse> {
7171
try {
72-
return await this.nestedHandler.handle(context);
72+
return await this.nestedHandler.handle(request);
7373
} catch (error) {
74-
this.logger.error(`Returned error for ${context.request.method} '${context.request.url}':` +
74+
this.logger.error(`Returned error for ${request.method} '${request.url}':` +
7575
` ${(error as Error).name} ${(error as Error).message}`);
7676

7777
return {

0 commit comments

Comments
 (0)