/** * @see javax.security.auth.message.config.AuthConfigFactory#registerConfigProvider(java.lang.String, java.util.Map, java.lang.String, java.lang.String, java.lang.String) */ @Override public String registerConfigProvider(String className, Map properties, String layer, String appContext, String description) { // TODO [ELY-1548] We should support persisting to configuration changes made by calling this method. checkPermission(providerRegistrationSecurityPermission); AuthConfigProvider authConfigProvider = null; if (className != null) { ClassLoader classLoader = identifyClassLoader(); try { Class<AuthConfigProvider> providerClass = (Class<AuthConfigProvider>) classLoader.loadClass(className); Constructor<AuthConfigProvider> constructor = providerClass.getConstructor(Map.class, AuthConfigFactory.class); authConfigProvider = constructor.newInstance(properties, null); } catch (Exception e) { throw log.unableToConstructProvider(className, e); } } return registerConfigProvider(authConfigProvider, layer, appContext, description, true); }
@Override public String[] detachListener(RegistrationListener listener, String layer, String appContext) { String[] elytronRegistrationIds = elytronAuthConfigFactory.detachListener(listener, layer, appContext); String[] backupRegistrationIds = backupAuthConfigFactory.detachListener(listener, layer, appContext); return combine(elytronRegistrationIds, backupRegistrationIds); }
@Override public AuthConfigProvider getConfigProvider(String layer, String appContext, RegistrationListener listener) { AuthConfigProvider authConfigProvider = elytronAuthConfigFactory.getConfigProvider(layer, appContext, listener); if (authConfigProvider != null || elytronAuthConfigFactory.matchesRegistration(layer, appContext) || !delegationAllowed.get()) { return authConfigProvider; } return backupAuthConfigFactory.getConfigProvider(layer, appContext, listener); }
/** * @see javax.security.auth.message.config.AuthConfigFactory#registerConfigProvider(javax.security.auth.message.config.AuthConfigProvider, java.lang.String, java.lang.String, java.lang.String) */ @Override public String registerConfigProvider(AuthConfigProvider provider, String layer, String appContext, String description) { checkPermission(providerRegistrationSecurityPermission); return registerConfigProvider(provider, layer, appContext, description, false); }
/** * @see javax.security.auth.message.config.AuthConfigFactory#refresh() */ @Override public void refresh() { // [ELY-1538] Dynamic loading not presently supported, once supported refresh will reload the configuration. checkPermission(providerRegistrationSecurityPermission); }
@Override public String registerConfigProvider(String className, Map properties, String layer, String appContext, String description) { return elytronAuthConfigFactory.registerConfigProvider(className, properties, layer, appContext, description); }
@Override public RegistrationContext getRegistrationContext(String registrationID) { RegistrationContext registrationContext = elytronAuthConfigFactory.getRegistrationContext(registrationID); if (registrationContext == null) { registrationContext = backupAuthConfigFactory.getRegistrationContext(registrationID); } return registrationContext; }
@Override public void refresh() { elytronAuthConfigFactory.refresh(); backupAuthConfigFactory.refresh(); }
@Override public String[] getRegistrationIDs(AuthConfigProvider provider) { String[] elytronRegistrationIds = elytronAuthConfigFactory.getRegistrationIDs(provider); String[] backupRegistrationIds = backupAuthConfigFactory.getRegistrationIDs(provider); return combine(elytronRegistrationIds, backupRegistrationIds); }
@Override public boolean removeRegistration(String registrationID) { return elytronAuthConfigFactory.removeRegistration(registrationID) || backupAuthConfigFactory.removeRegistration(registrationID); }
/** * @see javax.security.auth.message.config.AuthConfigFactory#registerConfigProvider(javax.security.auth.message.config.AuthConfigProvider, java.lang.String, java.lang.String, java.lang.String) */ @Override public String registerConfigProvider(AuthConfigProvider provider, String layer, String appContext, String description) { checkPermission(providerRegistrationSecurityPermission); return registerConfigProvider(provider, layer, appContext, description, false); }
/** * @see javax.security.auth.message.config.AuthConfigFactory#detachListener(javax.security.auth.message.config.RegistrationListener, java.lang.String, java.lang.String) */ @Override public String[] detachListener(RegistrationListener listener, String layer, String appContext) { checkNotNullParam("listener", listener); checkPermission(providerRegistrationSecurityPermission); List<String> registrationIDs = new ArrayList<>(); synchronized (layerContextRegistration) { for (Registration current : layerContextRegistration.values()) { if ((layer == null || layer.equals(current.messageLayer)) && (appContext == null || appContext.equals(current.appContext))) { if (current.removeListener(listener)) { registrationIDs.add(current.getRegistrationId()); } } } } return registrationIDs.toArray(new String[registrationIDs.size()]); }
@Override public String registerConfigProvider(AuthConfigProvider provider, String layer, String appContext, String description) { return elytronAuthConfigFactory.registerConfigProvider(provider, layer, appContext, description); }
@Override public RegistrationContext getRegistrationContext(String registrationID) { RegistrationContext registrationContext = elytronAuthConfigFactory.getRegistrationContext(registrationID); if (registrationContext == null) { registrationContext = backupAuthConfigFactory.getRegistrationContext(registrationID); } return registrationContext; }
@Override public void refresh() { elytronAuthConfigFactory.refresh(); backupAuthConfigFactory.refresh(); }
@Override public String[] getRegistrationIDs(AuthConfigProvider provider) { String[] elytronRegistrationIds = elytronAuthConfigFactory.getRegistrationIDs(provider); String[] backupRegistrationIds = backupAuthConfigFactory.getRegistrationIDs(provider); return combine(elytronRegistrationIds, backupRegistrationIds); }
@Override public boolean removeRegistration(String registrationID) { return elytronAuthConfigFactory.removeRegistration(registrationID) || backupAuthConfigFactory.removeRegistration(registrationID); }
/** * @see javax.security.auth.message.config.AuthConfigFactory#registerConfigProvider(java.lang.String, java.util.Map, java.lang.String, java.lang.String, java.lang.String) */ @Override public String registerConfigProvider(String className, Map properties, String layer, String appContext, String description) { // TODO [ELY-1548] We should support persisting to configuration changes made by calling this method. checkPermission(providerRegistrationSecurityPermission); AuthConfigProvider authConfigProvider = null; if (className != null) { ClassLoader classLoader = identifyClassLoader(); try { Class<AuthConfigProvider> providerClass = (Class<AuthConfigProvider>) classLoader.loadClass(className); Constructor<AuthConfigProvider> constructor = providerClass.getConstructor(Map.class, AuthConfigFactory.class); authConfigProvider = constructor.newInstance(properties, null); } catch (Exception e) { throw log.unableToConstructProvider(className, e); } } return registerConfigProvider(authConfigProvider, layer, appContext, description, true); }
@Override public AuthConfigProvider getConfigProvider(String layer, String appContext, RegistrationListener listener) { AuthConfigProvider authConfigProvider = elytronAuthConfigFactory.getConfigProvider(layer, appContext, listener); if (authConfigProvider != null || elytronAuthConfigFactory.matchesRegistration(layer, appContext) || !delegationAllowed.get()) { return authConfigProvider; } return backupAuthConfigFactory.getConfigProvider(layer, appContext, listener); }
/** * @see javax.security.auth.message.config.AuthConfigFactory#registerConfigProvider(javax.security.auth.message.config.AuthConfigProvider, java.lang.String, java.lang.String, java.lang.String) */ @Override public String registerConfigProvider(AuthConfigProvider provider, String layer, String appContext, String description) { checkPermission(providerRegistrationSecurityPermission); return registerConfigProvider(provider, layer, appContext, description, false); }