use of java.rmi.RMISecurityManager in project jdk8u_jdk by JetBrains.
the class CheckPackageAccess method main.
public static void main(String[] args) {
System.err.println("\nRegression test for bug 4180392\n");
System.err.println("Setting RMISecurityManager.");
System.setSecurityManager(new RMISecurityManager());
try {
System.err.println("Attempting to acquire restricted class " + restrictedClassName);
Class restrictedClass = Class.forName(restrictedClassName);
throw new RuntimeException("TEST FAILED: successfully acquired restricted class " + restrictedClass);
} catch (ClassNotFoundException e) {
throw new RuntimeException("TEST FAILED: couldn't find (but was allowed to look for) " + "restricted class " + restrictedClassName);
} catch (SecurityException e) {
System.err.println("TEST PASSED: ");
e.printStackTrace();
}
}
use of java.rmi.RMISecurityManager in project camel by apache.
the class JiniSpaceAccessor method findSpace.
public static JavaSpace findSpace(String url, String spaceName) throws Exception {
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
Class<?>[] classes = new Class<?>[] { net.jini.space.JavaSpace.class };
Name sn = new Name(spaceName);
ServiceTemplate tmpl = new ServiceTemplate(null, /* serviceID */
classes, new Entry[] { sn });
// <protocol>://<hostname>
LookupLocator locator = new LookupLocator(url);
ServiceRegistrar sr = locator.getRegistrar();
JavaSpace space = (JavaSpace) sr.lookup(tmpl);
return space;
}
use of java.rmi.RMISecurityManager in project camel by apache.
the class TransactionHelper method findTransactionManager.
private TransactionManager findTransactionManager(String uri) throws IOException, ClassNotFoundException {
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
// Creating service template to find transaction manager service by matching fields.
Class<?>[] classes = new Class<?>[] { net.jini.core.transaction.server.TransactionManager.class };
// Name sn = new Name("*");
ServiceTemplate tmpl = new ServiceTemplate(null, classes, new Entry[] {});
// Creating a lookup locator
LookupLocator locator = new LookupLocator(uri);
ServiceRegistrar sr = locator.getRegistrar();
TransactionManager tm = (TransactionManager) sr.lookup(tmpl);
return tm;
}
use of java.rmi.RMISecurityManager in project opennms by OpenNMS.
the class QoSDimpl2 method onStart.
/**
* The start() method loads the configuration for the QosD daemon and registers for events
*/
@Override
protected void onStart() {
String jnp_host;
//Get a reference to the QosD logger instance assigned by OpenNMS
LOG.info("Qosd.start(): Preparing to load configuration");
// set application context for AlarmListConnectionManager
try {
LOG.debug("Qosd.start():setting application context for alarmListConnectionManager: m.context.toString:{}", m_context.toString());
alarmListConnectionManager.setApplicationContext(m_context);
} catch (Exception ex) {
throw new IllegalArgumentException("Qosd.start(): Error setting spring application context: " + ex);
}
//all the UEIs that will be sent as alarms if useUeiList = true.
try {
config = QoSDConfigFactory.getConfig();
LOG.info("QoSD QoSD-configuration.xml - Configuration Loaded Successfully");
// loading list of UEI's which trigger this daemon
triggerUeiList = new Hashtable<String, String>();
String[] temp = config.getEventlist().getUei();
for (int i = 0; i < temp.length; i++) triggerUeiList.put(temp[i], "1");
} catch (MarshalException mrshl_ex) {
//write an error message to the log file
LOG.error("Qosd.start(): Marshal Exception thrown whilst getting QoSD configuration\n\t\t\t\tEnsure tags have correct names", mrshl_ex);
throw new UndeclaredThrowableException(mrshl_ex);
} catch (ValidationException vldtn_ex) {
LOG.error("Qosd.start(): Validation Exception thrown whilst getting QoSD configuration\n\t\t\t\tMake sure all the tags are formatted correctly within QoSD-configuration.xml", vldtn_ex);
throw new UndeclaredThrowableException(vldtn_ex);
} catch (IOException io_ex) {
//Get the OpenNMS home directory
String configFile = System.getProperty("opennms.home");
// if there is '/' at the end...
if (configFile.endsWith(java.io.File.separator)) {
// ... remove it so that we can compose a valid filename
configFile = configFile.substring(0, configFile.length() - 1);
}
configFile += java.io.File.separator + "etc" + java.io.File.separator + "QoSD-configuration.xml";
LOG.error("Qosd.start(): Failed to load configuration file: {}\n\t\t\t\tMake sure that it exists", configFile, io_ex);
throw new UndeclaredThrowableException(io_ex);
}
if (useUeiList)
LOG.info("Qosd.start(): useUeiList = true = using QoSD QoSD-configuration.xml UEI list selects which alarms are sent");
try {
//Load the properties file containing the JNDI connection address etc.
props = PropertiesLoader.getInstance();
} catch (FileNotFoundException fnf_ex) {
//record in log that the properties file could not be found
String propertiesFilename = System.getProperty("propertiesFile");
LOG.error("Qosd.start(): Could not find properties file: {}", propertiesFilename, fnf_ex);
throw new UndeclaredThrowableException(fnf_ex);
} catch (IOException io_ex) {
//record in log that the properties file could not be read
String propertiesFilename = System.getProperty("propertiesFile");
LOG.error("Qosd.start(): Could not read from properties file: {}\n\t\t\t\tPlease check the file permissions", propertiesFilename, io_ex);
throw new UndeclaredThrowableException(io_ex);
}
LOG.info("Qosd.start(): QosD Properties File Loaded");
if (System.getSecurityManager() == null)
System.setSecurityManager(new RMISecurityManager());
/*The following if-statement checks if the naming provider property exists in
* the properties file. If it does then it stores it in the jnp_host string. If
* it doesn't then it uses a default naming provider string "jbossjmsserver1:1099" and
* assigns it to jnp_host, stating this in the log file.
*/
if (props.getProperty("org.openoss.opennms.spring.qosd.naming.provider") != null) {
jnp_host = (String) props.getProperty("org.openoss.opennms.spring.qosd.naming.provider");
LOG.info("Using JNP: {}", jnp_host);
} else {
LOG.warn("Qosd.start(): Naming provider property not set, Using default: jnp://jbossjmsserver1:1099");
jnp_host = "jnp://jbossjmsserver1:1099";
}
/* Fill a new properties object with the properties supplied in
* the properties file.
*/
env = new Properties();
env.setProperty("java.naming.provider.url", jnp_host);
env.setProperty("java.naming.factory.initial", props.getProperty("org.openoss.opennms.spring.qosd.naming.contextfactory"));
env.setProperty("java.naming.factory.url.pkgs", props.getProperty("org.openoss.opennms.spring.qosd.naming.pkg"));
// start a new connection manager thread
try {
alarmListConnectionManager.init(props, env);
alarmListConnectionManager.start();
//wait until the AlarmListConnectionManager has connected to bean
LOG.info("Qosd.start(): Waiting Connection Manager Thread to get JMS connection");
while (alarmListConnectionManager.getStatus() != AlarmListConnectionManager.CONNECTED) ;
LOG.info("Qosd.start(): Connection Manager Thread JMS connection successfully registered");
LOG.info("Qosd.start(): openNMS just restarted - sending alarm list rebuilt event");
//send alarm list rebuilt event to EJB via the connection manager thread.
// send an alarm list rebuilt event
alarmListConnectionManager.reset_list("openNMS just restarted - alarm list rebuilt. Time:" + new Date());
} catch (Throwable iae) {
LOG.error("Qosd.start(): Exception caught starting alarmListConnectionManager", iae);
throw new UndeclaredThrowableException(iae);
}
// setting up ossDao to access the OpenNMS database
try {
LOG.debug("Qosd.start(): Using ossDao instance: {}", (ossDao == null ? "IS NULL" : ossDao.toString()));
LOG.info("Qosd.start(): Initialising the Node and alarm Caches");
ossDao.init();
// TODO REMOVE
// ossDao.updateNodeCaches();
LOG.info("Qosd.start(): Set up ossDao call back interface to QoSD for forwarding changes to alarm list");
ossDao.setQoSD(this);
} catch (Throwable ex) {
LOG.error("Qosd.start(): Exception caught setting callback interface from ossDao", ex);
throw new UndeclaredThrowableException(ex);
}
// set up thread to handle incoming OpenNMS events
LOG.info("Qosd.start(): initialising OpenNMSEventHandlerThread");
try {
openNMSEventHandlerThread = new OpenNMSEventHandlerThread();
openNMSEventHandlerThread.setOssDao(ossDao);
openNMSEventHandlerThread.init();
openNMSEventHandlerThread.start();
} catch (Throwable ex) {
LOG.error("Qosd.start(): Exception caught initialising OpenNMSEventHandlerThread", ex);
throw new UndeclaredThrowableException(ex);
}
//send all the alarmList to EJB via the connection manager thread.
LOG.info("Qosd.start(): openNMS just restarted - sending all alarms in rebuilt alarm list");
try {
//this.sendAlarms(); // interface has just started up. Send all alarms
openNMSEventHandlerThread.sendAlarmList();
} catch (Exception e) {
LOG.error("Qosd.start(): problem sending initial alarm list Error:", e);
}
// register listener for OpenNMS events
LOG.info("Qosd.start(): Starting OpenNMS event listener");
try {
registerListener();
} catch (Exception e) {
LOG.error("Qosd.start(): problem registering event listener Error:", e);
}
// TODO - replace ack handler code with QoSDrx receiver code
LOG.info("QoSD Started");
}
Aggregations