mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
feat: Add constant WebID extractor.
Closes https://github.com/solid/community-server/issues/397
This commit is contained in:
parent
3e3dd7f5a9
commit
209b87a424
22
src/authentication/UnsecureConstantCredentialsExtractor.ts
Normal file
22
src/authentication/UnsecureConstantCredentialsExtractor.ts
Normal file
@ -0,0 +1,22 @@
|
||||
import { getLoggerFor } from '../logging/LogUtil';
|
||||
import type { Credentials } from './Credentials';
|
||||
import { CredentialsExtractor } from './CredentialsExtractor';
|
||||
|
||||
/**
|
||||
* Credentials extractor that authenticates a constant agent
|
||||
* (useful for development or debugging purposes).
|
||||
*/
|
||||
export class UnsecureConstantCredentialsExtractor extends CredentialsExtractor {
|
||||
private readonly agent: Credentials;
|
||||
private readonly logger = getLoggerFor(this);
|
||||
|
||||
public constructor(agent: string | Credentials) {
|
||||
super();
|
||||
this.agent = typeof agent === 'string' ? { webId: agent } : agent;
|
||||
}
|
||||
|
||||
public async handle(): Promise<Credentials> {
|
||||
this.logger.info(`Agent unsecurely claims to be ${this.agent.webId}`);
|
||||
return this.agent;
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
import { UnsecureConstantCredentialsExtractor } from '../../../src/authentication/UnsecureConstantCredentialsExtractor';
|
||||
|
||||
describe('An UnsecureConstantCredentialsExtractor', (): void => {
|
||||
it('extracts a constant WebID.', async(): Promise<void> => {
|
||||
const agent = 'http://alice.example/card#me';
|
||||
const extractor = new UnsecureConstantCredentialsExtractor(agent);
|
||||
await expect(extractor.handle()).resolves.toEqual({ webId: agent });
|
||||
});
|
||||
|
||||
it('extracts constant credentials.', async(): Promise<void> => {
|
||||
const agent = {};
|
||||
const extractor = new UnsecureConstantCredentialsExtractor(agent);
|
||||
await expect(extractor.handle()).resolves.toBe(agent);
|
||||
});
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user