Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

removed app-auth module #117

Merged
merged 2 commits into from
Nov 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions src/app-auth/app-auth.module.ts

This file was deleted.

5 changes: 1 addition & 4 deletions src/credential/credential.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ import {
} from '@nestjs/common';
import { CredentialService } from './services/credential.service';
import { CredentialController } from './controllers/credential.controller';
import { MongooseModule } from '@nestjs/mongoose';
import { Credential, CredentialSchema } from './schemas/credntial.schema';
import { CredentialSSIService } from './services/credential.ssi.service';
import { EdvModule } from 'src/edv/edv.module';
import { HidWalletModule } from 'src/hid-wallet/hid-wallet.module';
Expand All @@ -18,10 +16,9 @@ import { WhitelistSSICorsMiddleware } from 'src/utils/middleware/cors.middleware
import { TrimMiddleware } from 'src/utils/middleware/trim.middleware';
import { credentialProviders } from './providers/credential.provider';
import { databaseProviders } from '../mongoose/tenant-mongoose-connections';
import { AppAuthModule } from 'src/app-auth/app-auth.module';

@Module({
imports: [EdvModule, HidWalletModule, DidModule, AppAuthModule],
imports: [EdvModule, HidWalletModule, DidModule],
controllers: [CredentialController],
providers: [
CredentialService,
Expand Down
3 changes: 2 additions & 1 deletion src/credential/dto/create-credential.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import { ValidateVerificationMethodId } from 'src/utils/customDecorator/vmId.dec
import { IsDid } from 'src/utils/customDecorator/did.decorator';
import { IsSchemaId } from 'src/utils/customDecorator/schemaId.deceorator';
import { IsVcId } from 'src/utils/customDecorator/vc.decorator';
import { subjectDID } from 'src/utils/customDecorator/SubjectDid.decorator';

export enum Namespace {
testnet = 'testnet',
Expand All @@ -36,7 +37,7 @@ export class CreateCredentialDto {
})
@IsString()
@IsNotEmpty()
@IsDid()
@subjectDID()
subjectDid: string;
@ApiProperty({
name: 'issuerDid',
Expand Down
5 changes: 1 addition & 4 deletions src/credential/services/credential.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,7 @@ import { DidRepository } from 'src/did/repository/did.repository';
import { HypersignDID, HypersignVerifiableCredential } from 'hs-ssi-sdk';
import { VerifyCredentialDto } from '../dto/verify-credential.dto';
import { RegisterCredentialStatusDto } from '../dto/register-credential.dto';
import {
getAppVault,
getAppMenemonic,
} from 'src/app-auth/services/app-vault.service';
import { getAppVault, getAppMenemonic } from '../../utils/app-vault-service';

@Injectable()
export class CredentialService {
Expand Down
1 change: 0 additions & 1 deletion src/did/controllers/did.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ import { RegisterDidDto } from '../dto/register-did.dto';
import { IKeyType } from 'hs-ssi-sdk';
import { AtLeastOneParamPipe } from 'src/utils/Pipes/atleastOneParam.pipe';
import { AddVMResponse, AddVerificationMethodDto } from '../dto/addVm.dto';

@UseFilters(AllExceptionsFilter)
@ApiTags('Did')
@Controller('did')
Expand Down
5 changes: 3 additions & 2 deletions src/did/did.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@ import { WhitelistSSICorsMiddleware } from 'src/utils/middleware/cors.middleware
import { TrimMiddleware } from 'src/utils/middleware/trim.middleware';
import { databaseProviders } from '../mongoose/tenant-mongoose-connections';
import { didProviders } from './providers/did.provider';
import { AppAuthModule } from 'src/app-auth/app-auth.module';
import { JwtStrategy } from '../utils/jwt.strategy';
@Module({
imports: [EdvModule, HidWalletModule, AppAuthModule],
imports: [EdvModule, HidWalletModule],
controllers: [DidController],
providers: [
JwtStrategy,
DidService,
DidRepository,
DidMetaDataRepo,
Expand Down
38 changes: 19 additions & 19 deletions src/did/dto/register-did.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,26 +95,26 @@ export class RegisterDidDto {
}) // this is to validate if did is generated using empty namespace
verificationMethodId?: string;

// @ApiProperty({
// description: "IClientSpec 'eth-personalSign' or 'cosmos-ADR036'",
// example: 'eth-personalSign',
// name: 'clientSpec',
// required: false,
// })
// @IsOptional()
// @IsEnum(IClientSpec)
// clientSpec?: IClientSpec;
@ApiProperty({
description: "IClientSpec 'eth-personalSign' or 'cosmos-ADR036'",
example: 'eth-personalSign',
name: 'clientSpec',
required: false,
})
@IsOptional()
@IsEnum(IClientSpec)
clientSpec?: IClientSpec | undefined;

// @ApiProperty({
// description: 'Signature for clientSpec',
// example: 'afafljagahgp9agjagknaglkj/kagka=',
// name: 'signature',
// required: false,
// })
// @ValidateIf((o, value) => o.clientSpec !== undefined)
// @IsNotEmpty()
// @IsString()
// signature?: string;
@ApiProperty({
description: 'Signature for clientSpec',
example: 'afafljagahgp9agjagknaglkj/kagka=',
name: 'signature',
required: false,
})
@ValidateIf((o, value) => o.clientSpec !== undefined)
@IsNotEmpty()
@IsString()
signature?: string;

@ApiProperty({
description: 'Sign Info',
Expand Down
9 changes: 2 additions & 7 deletions src/did/services/did.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,7 @@ import { RegistrationStatus } from '../schemas/did.schema';
import { RegisterDidDto } from '../dto/register-did.dto';
import { Did as IDidDto } from '../schemas/did.schema';
import { AddVerificationMethodDto } from '../dto/addVm.dto';
import {
getAppVault,
getAppMenemonic,
} from 'src/app-auth/services/app-vault.service';
import { getAppVault, getAppMenemonic } from '../../utils/app-vault-service';
import { ConfigService } from '@nestjs/config';

@Injectable({ scope: Scope.REQUEST })
Expand All @@ -47,7 +44,6 @@ export class DidService {
// TODO: need to fix this once ed25519 is finished.
async createByClientSpec(createDidDto: CreateDidDto, appDetail) {
Logger.log('createByClientSpec() method: starts....', 'DidService');

let methodSpecificId = createDidDto.methodSpecificId;
const publicKey = createDidDto.options?.publicKey;
const chainId = createDidDto.options.chainId;
Expand Down Expand Up @@ -159,7 +155,7 @@ export class DidService {
createDidDto: CreateDidDto,
appDetail,
): Promise<CreateDidResponse> {
Logger.log('createByClientSpec() method: starts....', 'DidService');
Logger.log('create() method: starts....', 'DidService');

try {
const methodSpecificId = createDidDto.methodSpecificId;
Expand Down Expand Up @@ -297,7 +293,6 @@ export class DidService {
const didData = await this.didRepositiory.findOne({
did: didDocument['id'],
});

if (!didData) {
throw new NotFoundException([didDocument['id'] + ' not found']);
}
Expand Down
2 changes: 1 addition & 1 deletion src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import * as path from 'path';
import * as express from 'express';
// eslint-disable-next-line
const hidWallet = require('hid-hd-wallet');
import { Bip39, EnglishMnemonic } from '@cosmjs/crypto';
import { EnglishMnemonic } from '@cosmjs/crypto';
import { Logger } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { EdvClientKeysManager } from './edv/services/edv.singleton';
Expand Down
3 changes: 1 addition & 2 deletions src/presentation/presentation.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,13 @@ import { MongooseModule } from '@nestjs/mongoose';
import { PresentationTemplateRepository } from './repository/presentation-template.repository';
import { HidWalletService } from 'src/hid-wallet/services/hid-wallet.service';
import { DidModule } from 'src/did/did.module';
import { AppAuthModule } from 'src/app-auth/app-auth.module';
import { WhitelistSSICorsMiddleware } from 'src/utils/middleware/cors.middleware';
import { TrimMiddleware } from 'src/utils/middleware/trim.middleware';
import { presentationTemplateProviders } from './providers/presentation.provider';
import { databaseProviders } from '../mongoose/tenant-mongoose-connections';

@Module({
imports: [DidModule, AppAuthModule],
imports: [DidModule],
controllers: [PresentationTempleteController, PresentationController],
providers: [
PresentationService,
Expand Down
2 changes: 1 addition & 1 deletion src/presentation/services/presentation.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import { ConfigService } from '@nestjs/config';
import { HidWalletService } from 'src/hid-wallet/services/hid-wallet.service';
import { DidRepository } from 'src/did/repository/did.repository';
import { VerifyPresentationDto } from '../dto/verify-presentation.dto';
import { getAppVault } from 'src/app-auth/services/app-vault.service';
import { getAppVault } from '../../utils/app-vault-service';
import { generateAppId } from 'src/utils/utils';
@Injectable()
export class PresentationService {
Expand Down
3 changes: 1 addition & 2 deletions src/schema/schema.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,12 @@ import { DidService } from 'src/did/services/did.service';
import { DidModule } from 'src/did/did.module';
import { SchemaRepository } from './repository/schema.repository';
import { WhitelistSSICorsMiddleware } from 'src/utils/middleware/cors.middleware';
import { AppAuthModule } from 'src/app-auth/app-auth.module';
import { TrimMiddleware } from 'src/utils/middleware/trim.middleware';
import { schemaProviders } from './providers/schema.provider';
import { databaseProviders } from '../mongoose/tenant-mongoose-connections';

@Module({
imports: [DidModule, AppAuthModule],
imports: [DidModule],
controllers: [SchemaController],
providers: [
SchemaService,
Expand Down
5 changes: 1 addition & 4 deletions src/schema/services/schema.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,7 @@ import { SchemaRepository } from '../repository/schema.repository';
import { Schemas } from '../schemas/schemas.schema';
import { RegisterSchemaDto } from '../dto/register-schema.dto';
import { Namespace } from 'src/did/dto/create-did.dto';
import {
getAppVault,
getAppMenemonic,
} from 'src/app-auth/services/app-vault.service';
import { getAppVault, getAppMenemonic } from '../../utils/app-vault-service';

@Injectable({ scope: Scope.REQUEST })
export class SchemaService {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Logger } from '@nestjs/common';
import { VaultWalletManager } from '../../edv/services/vaultWalletManager';
import { EdvClientManagerFactoryService } from '../../edv/services/edv.clientFactory';
import { VaultWalletManager } from '../edv/services/vaultWalletManager';
import { EdvClientManagerFactoryService } from '../edv/services/edv.clientFactory';

export async function getAppVault(kmsId, edvId) {
Logger.log('Inside getAppVault()', 'getAppVault');
Expand Down
38 changes: 38 additions & 0 deletions src/utils/customDecorator/SubjectDid.decorator.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import {
applyDecorators,
SetMetadata,
BadRequestException,
} from '@nestjs/common';

export const subjectDID = (): PropertyDecorator => {
return applyDecorators(
SetMetadata('isDid', true),
(target: object, propertyKey: string | symbol) => {
let original = target[propertyKey];
const descriptor: PropertyDescriptor = {
get: () => original,
set: (val: any) => {
if (val.trim() === '') {
throw new BadRequestException([
`${propertyKey.toString()} cannot be empty`,
]);
}

const did = val;
if (!did.includes('did:')) {
throw new BadRequestException([
`Invalid ${propertyKey.toString()}`,
]);
}
if (did.includes('.')) {
throw new BadRequestException([
`Invalid ${propertyKey.toString()}`,
]);
}
original = val;
},
};
Object.defineProperty(target, propertyKey, descriptor);
},
);
};
File renamed without changes.
19 changes: 16 additions & 3 deletions src/utils/middleware/cors.middleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,14 @@ export class WhitelistSSICorsMiddleware implements NestMiddleware {
'WhitelistSSICorsMiddleware: checking if call is form whitelisted domain starts',
'Middleware',
);
const origin = req.header('Origin') || req.header('Referer');
let referer = req.header('Referer');

// Extract the origin
if (referer) {
const referalUrl = new URL(referer);
referer = `${referalUrl.protocol}//${referalUrl.host}`;
}
const origin = req.header('Origin') || referer;

Logger.debug(
`WhitelistSSICorsMiddleware: request is comming from ${origin}`,
Expand Down Expand Up @@ -44,7 +51,14 @@ export class WhitelistSSICorsMiddleware implements NestMiddleware {
]);
} else if (req.header('authorization')) {
const token = req.header('authorization').split(' ')[1];
const decoded = jwt.verify(token, process.env.JWT_SECRET);
let decoded;
try {
decoded = jwt.verify(token, process.env.JWT_SECRET);
} catch (e) {
Logger.error(`WhitelistSSICorsMiddleware: Error ${e}`, 'Middleware');

throw new UnauthorizedException([e]);
}

type App = {
appId?: string;
Expand Down Expand Up @@ -83,7 +97,6 @@ export class WhitelistSSICorsMiddleware implements NestMiddleware {
if (appInfo.subdomain != subdomain) {
throw new UnauthorizedException(['Invalid subdomain']);
}

if (!appInfo.whitelistedCors.includes('*')) {
if (!appInfo['whitelistedCors'].includes(origin)) {
throw new UnauthorizedException(['Origin mismatch']);
Expand Down
13 changes: 0 additions & 13 deletions src/utils/session/session.serializer.ts

This file was deleted.

Loading
Loading