private void initDiscoveryMulticast(Configuration pConfig) { String url = findAgentUrl(pConfig); if (url != null || listenForDiscoveryMcRequests(pConfig)) { backendManager.getAgentDetails().setUrl(url); try { discoveryMulticastResponder = new DiscoveryMulticastResponder(backendManager, restrictor, logHandler); discoveryMulticastResponder.start(); } catch (IOException e) { logHandler.error("Cannot start discovery multicast handler: " + e, e); } } }
/** * Create a restrictor restrictor to use. By default, a policy file is looked up (with the URL * given by the init parameter {@link ConfigKey#POLICY_LOCATION} or "/jolokia-access.xml" by * default) and if not found an {@link AllowAllRestrictor} is used by default. This method is * called during the {@link #init(ServletConfig)} when initializing the subsystems and can be * overridden for custom restrictor creation. * * @param pLocation location to lookup the restrictor * @return the restrictor to use. */ protected Restrictor createRestrictor(String pLocation) { LogHandler log = getLogHandler(); try { Restrictor newRestrictor = RestrictorFactory.lookupPolicyRestrictor(pLocation); if (newRestrictor != null) { log.info("Using access restrictor " + pLocation); return newRestrictor; } else { log.info( "No access restrictor found at " + pLocation + ", access to all MBeans is allowed"); return new AllowAllRestrictor(); } } catch (IOException e) { log.error( "Error while accessing access restrictor at " + pLocation + ". Denying all access to MBeans for security reasons. Exception: " + e, e); return new DenyAllRestrictor(); } }