private static void configureCryptoMaterial(SocketFactory factory, Configuration conf) throws SSLCertificateException { if (conf.getBoolean(CommonConfigurationKeys.IPC_SERVER_SSL_ENABLED, CommonConfigurationKeys.IPC_SERVER_SSL_ENABLED_DEFAULT) && (factory instanceof HopsSSLSocketFactory)) { CertificateLocalizationCtx certLocCtx = CertificateLocalizationCtx .getInstance(); certLocCtx.setProxySuperusers(conf); ((HopsSSLSocketFactory) factory).configureCryptoMaterial(certLocCtx. getCertificateLocalization(), certLocCtx.getProxySuperusers()); } }
public static CertificateLocalizationCtx getInstance() { if (instance == null) { synchronized (CertificateLocalizationCtx.class) { if (instance == null) { instance = new CertificateLocalizationCtx(); } } } return instance; }
public synchronized void setProxySuperusers(Configuration conf) { if (this.proxySuperusers == null) { this.proxySuperusers = getSuperusersFromConf(conf); } }
@Override public void transition(ApplicationImpl app, ApplicationEvent event) { ApplicationId appId = event.getApplicationID(); app.context.getApplications().remove(appId); app.aclsManager.removeApplication(appId); boolean isSSLEnabled = ((NodeManager.NMContext) app.context) .isSSLEnabled(); if (isSSLEnabled) { try { CertificateLocalizationCtx.getInstance().getCertificateLocalization() .removeMaterial(app.getUser(), appId.toString()); } catch (InterruptedException | ExecutionException ex) { LOG.error("Error while deleting cryptographic material for user " + app.getUser()); } } try { app.context.getNMStateStore().removeApplication(appId); } catch (IOException e) { LOG.error("Unable to remove application from state store", e); } } }
CommonConfigurationKeysPublic.IPC_SERVER_SSL_ENABLED_DEFAULT)) { certificateLocalizationService = new CertificateLocalizationService(CertificateLocalizationService.ServiceType.NM); CertificateLocalizationCtx.getInstance().setCertificateLocalization (certificateLocalizationService); addService(certificateLocalizationService);
CertificateLocalization certificateLocalization = CertificateLocalizationCtx.getInstance() .getCertificateLocalization(); String certFolder = certificateLocalization.getMaterialLocation(user, appId).getCertFolder().toString();