@nodearch/keycloak
Version:
NodeArch Keycloak Wrapper
55 lines • 2.22 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Config, ConfigManager } from '@nodearch/core';
let KeycloakConfig = class KeycloakConfig {
constructor(config) {
this.clientId = config.env({
defaults: { all: 'master' },
external: 'clientId'
});
this.hostname = this.formatHostName(config.env({
defaults: {
all: 'http://localhost:8080'
},
external: 'hostname'
}));
this.issuer = this.formatHostName(config.env({
defaults: {
all: this.hostname
},
external: 'issuer'
}));
this.realmJWTPath = config.env({
defaults: { all: 'realm' },
external: 'realmJWTPath'
});
this.jwtVerify = config.env({
defaults: { all: { algorithms: ['RS256'] } },
external: 'jwtVerify'
});
this.claims = config.env({
required: false,
external: 'claims'
});
}
formatHostName(hostname) {
const url = new URL(hostname);
if (url.origin === 'null') {
throw new Error('Invalid Keycloak URL => ' + hostname);
}
return (url.href.charAt(url.href.length - 1) === '/') ? url.href.slice(0, -1) : url.href;
}
};
KeycloakConfig = __decorate([
Config(),
__metadata("design:paramtypes", [ConfigManager])
], KeycloakConfig);
export { KeycloakConfig };
//# sourceMappingURL=keycloak.config.js.map