@Override
public void extend(SystemExtensionContext context) throws Exception {
ServiceTarget target = context.target();
target.addService(KeycloakServices.address(), new KeycloakConfigService())
.install();
ServiceName serviceName = Services.systemResource(context.moduleId(), context.id());
KeycloakConfigResourceService resource = new KeycloakConfigResourceService(context.id());
target.addService(serviceName, resource)
.addDependency(KeycloakServices.address(), KeycloakConfig.class, resource.address())
.install();
context.mountPrivate(serviceName);
AuthInterceptorService authInterceptor = new AuthInterceptorService();
ServiceController<AuthInterceptor> authController = target.addService(Services.interceptor("auth"), authInterceptor)
.addDependency(Services.CLIENT, Client.class, authInterceptor.clientInjector())
.install();
InterceptorRegistrationHelper.installInterceptor(target, authController);
KeycloakBaseUrlService baseUrlService = new KeycloakBaseUrlService();
target.addService(Services.SECURITY_BASE_URL, baseUrlService)
.addDependency(KeycloakServices.address(), KeycloakConfig.class, baseUrlService.configInjector())
.addDependency(serviceName.append("apply-config"))
.install();
}