src/well-known/well-known.controller.ts
Controller for the OpenID4VCI well-known endpoints.
Methods |
| authzMetadata | ||||||
authzMetadata(tenantId: string)
|
||||||
Decorators :
@Get(['.well-known/oauth-authorization-server/:tenantId', ':tenantId/.well-known/oauth-authorization-server'])
|
||||||
|
Defined in src/well-known/well-known.controller.ts:61
|
||||||
|
Authorization Server Metadata
Parameters :
Returns :
any
|
| getJwks | ||||||
getJwks(tenantId: string)
|
||||||
Decorators :
@Header('Content-Type', 'application/jwk-set+json')
|
||||||
|
Defined in src/well-known/well-known.controller.ts:71
|
||||||
|
Returns the JSON Web Key Set (JWKS) for the authorization server.
Parameters :
Returns :
Promise<JwksResponseDto>
|
| issuerMetadata |
issuerMetadata(contentType: MediaType, tenantId: string)
|
Decorators :
@ApiOperation({summary: 'Get OpenID4VCI issuer metadata', description: 'Returns the OpenID4VCI issuer metadata.'})
|
|
Defined in src/well-known/well-known.controller.ts:41
|
|
Retrieves the OpenID4VCI issuer metadata for a given tenant.
Returns :
any
|
import { Controller, Get, Header, Param } from "@nestjs/common";
import {
ApiExcludeController,
ApiOperation,
ApiProduces,
} from "@nestjs/swagger";
import { ContentType } from "../utils/mediaType/media-type.decorator";
import { MediaType } from "../utils/mediaType/media-type.enum";
import { JwksResponseDto } from "./dto/jwks-response.dto";
//import { Oauth2AuthorizationServerResponseDto } from "./dto/oauth-authorization-server-response.dto";
import { WellKnownService } from "./well-known.service";
/**
* Controller for the OpenID4VCI well-known endpoints.
*/
@ApiExcludeController(process.env.SWAGGER_ALL !== "true")
@Controller()
export class WellKnownController {
/**
* Constructor for WellKnownController.
* @param wellKnownService
*/
constructor(private readonly wellKnownService: WellKnownService) {}
/**
* Retrieves the OpenID4VCI issuer metadata for a given tenant.
* @param tenantId
* @param contentType
* @returns
*/
@ApiOperation({
summary: "Get OpenID4VCI issuer metadata",
description: "Returns the OpenID4VCI issuer metadata.",
})
//we can not set the accept in the apiheader via swagger.
@ApiProduces(MediaType.APPLICATION_JSON, MediaType.APPLICATION_JWT)
@Get([
".well-known/openid-credential-issuer/:tenantId",
":tenantId/.well-known/openid-credential-issuer",
])
issuerMetadata(
@ContentType() contentType: MediaType,
@Param("tenantId") tenantId: string,
) {
return this.wellKnownService
.getIssuerMetadata(tenantId, contentType)
.catch((err) => {
console.error("Error in issuerMetadata:", err);
throw err;
});
}
/**
* Authorization Server Metadata
* @returns
*/
@Get([
".well-known/oauth-authorization-server/:tenantId",
":tenantId/.well-known/oauth-authorization-server",
])
authzMetadata(@Param("tenantId") tenantId: string) {
return this.wellKnownService.getAuthzMetadata(tenantId);
}
/**
* Returns the JSON Web Key Set (JWKS) for the authorization server.
* @returns
*/
@Header("Content-Type", "application/jwk-set+json")
@Get([".well-known/jwks.json/:tenantId", ":tenantId/.well-known/jwks.json"])
getJwks(@Param("tenantId") tenantId: string): Promise<JwksResponseDto> {
return this.wellKnownService.getJwks(tenantId);
}
}