@Override public Map<String, String> getAllAddonBaseUrls() { Map<String, String> addonKeyToBaseUrl = new HashMap<>(); getAllAddons().forEach((addon) -> addonKeyToBaseUrl.put(addon.getKey(), addon.getBaseUrl())); return addonKeyToBaseUrl; }
private Supplier<URI> getDisplayUrl(final ConnectAddonBean addon) { final String storedBaseUrl = addon.getBaseUrl(); if (!Strings.isNullOrEmpty(storedBaseUrl)) { return Suppliers.compose(URI::create, () -> storedBaseUrl); } else { return Suppliers.compose(URI::create, () -> applicationProperties.getBaseUrl(UrlMode.CANONICAL) ); } }
public Translations download(ConnectAddonBean addonBean) throws TranslationsDownloadException { List<DownloadResult<ResponsePromise>> downloadsInProgress = Stream.of(Language.values()) .map(lang -> pair(lang, lang.getPath(addonBean.getTranslations().getPaths()))) .filter(langAndPath -> langAndPath.right().isPresent()) .map(langAndPath -> scheduleDownload(langAndPath.left(), addonBean.getBaseUrl(), langAndPath.right().get())) .collect(toList()); final Map<Language, I18nKeysMapping> translations = downloadsInProgress.stream() .map(this::download) .collect(Collectors.toMap(DownloadResult::getLanguage, DownloadResult::getResult)); return Translations.from(translations); }
public JwtSigningRemotablePluginAccessor(ConnectAddonBean addon, Supplier<URI> baseUrlSupplier, JwtJsonBuilderFactory jwtBuilderFactory, JwtService jwtService, ConsumerService consumerService, HttpContentRetriever httpContentRetriever, ConnectAddonInformationProvider connectAddonInformationProvider) { super(addon.getKey(), addon.getName(), baseUrlSupplier, httpContentRetriever); this.consumerService = consumerService; this.jwtEncoder = new JwtEncoder(jwtBuilderFactory, jwtService); this.authorizationGenerator = new JwtAuthorizationGenerator(jwtService, jwtBuilderFactory, this::requireSharedSecret, consumerService, URI.create(addon.getBaseUrl())); this.connectAddonInformationProvider = connectAddonInformationProvider; }
private void requestInstallCallback(ConnectAddonBean addon, Optional<OAuthClient> oauthClient, final boolean sign) throws ConnectAddonInstallException { final URI callbackUri = getURI(addon.getBaseUrl(), addon.getLifecycle().getInstalled()); final Optional<String> authHeader = sign ? getAuthHeader(callbackUri, remotablePluginAccessorFactory.get(addon).getAuthorizationGenerator()) : Optional.empty(); requestInstallCallback(addon, oauthClient, callbackUri, authHeader); }
private void requestInstallCallback(ConnectAddonBean addon, Optional<OAuthClient> oauthClient, String previousSharedSecret) throws ConnectAddonInstallException { final URI callbackUri = getURI(addon.getBaseUrl(), addon.getLifecycle().getInstalled()); final AuthorizationGenerator authorizationGenerator = remotablePluginAccessorFactory.get(addon).getAuthorizationGenerator(); // NB: check that the auth generator matches the request/non-request to sign with an arbitrary key on installation, not on every callback, // because signing with a previous key happens only on installation String authHeader = getAuthHeader(callbackUri, (ReKeyableAuthorizationGenerator) authorizationGenerator, previousSharedSecret); requestInstallCallback(addon, oauthClient, callbackUri, Optional.of(authHeader)); }
private void requestInstallCallback(ConnectAddonBean addon, Optional<OAuthClient> oauthClient, final boolean sign) throws ConnectAddonInstallException { final URI callbackUri = getURI(addon.getBaseUrl(), addon.getLifecycle().getInstalled()); final Optional<String> authHeader = sign ? getAuthHeader(callbackUri, remotablePluginAccessorFactory.get(addon.getKey()).getAuthorizationGenerator()) : Optional.<String>empty(); requestInstallCallback(addon, oauthClient, callbackUri, authHeader); }
private void requestInstallCallback(ConnectAddonBean addon, Optional<OAuthClient> oauthClient, String previousSharedSecret) throws ConnectAddonInstallException { final URI callbackUri = getURI(addon.getBaseUrl(), addon.getLifecycle().getInstalled()); final AuthorizationGenerator authorizationGenerator = remotablePluginAccessorFactory.get(addon.getKey()).getAuthorizationGenerator(); // NB: check that the auth generator matches the request/non-request to sign with an arbitrary key on installation, not on every callback, // because signing with a previous key happens only on installation String authHeader = getAuthHeader(callbackUri, (ReKeyableAuthorizationGenerator) authorizationGenerator, previousSharedSecret); requestInstallCallback(addon, oauthClient, callbackUri, Optional.of(authHeader)); }
.setAuth(newAuthType.name()) .setOAuthClient(newOAuthClient) .setBaseUrl(addon.getBaseUrl()) .setDescriptor(jsonDescriptor) .setRestartState(PluginState.DISABLED) connectApplinkManager.createAppLink(addon, addon.getBaseUrl(), newAuthType, newAddonSigningKey, userKey);
if (sendEvent && !Strings.isNullOrEmpty(addon.getLifecycle().getUninstalled())) { try { final URI callbackUri = getURI(addon.getBaseUrl(), addon.getLifecycle().getUninstalled()); callSyncHandler(addon.getKey(), addonUsesJwtAuthentication(addon),
.setAuth(newAuthType.name()) .setOAuthClient(scopeFilteredOAuthClient) .setBaseUrl(addon.getBaseUrl()) .setDescriptor(jsonDescriptor) .setRestartState(PluginState.DISABLED)