Esecuzione delle applicazioni IBM MQ classes for JMS in Java security manager
IBM® MQ classes for JMS può essere eseguito con Java security manager abilitato. Per eseguire correttamente le applicazioni con il 'Java security manager abilitato, è necessario configurare il 'Java Virtual Machine (JVM) con un file di configurazione dei criteri adeguato.
Il modo più semplice per creare un file di definizione dei criteri adatto è modificare il file di configurazione dei criteri fornito con Java runtime environment (JRE). Nella maggior parte dei sistemi, questo file si trova nella directory lib/security/java.policy relativa alla directory JRE . È possibile modificare il file di configurazione dei criteri utilizzando l'editor preferito o il programma strumento dei criteri fornito con il sito JRE.
File di configurazione della politica di esempio
Di seguito è riportato un esempio di file di configurazione delle politiche che consente a IBM MQ classes for JMS di essere eseguito correttamente nel gestore di sicurezza predefinito. Questo file dovrà essere personalizzato, per specificare le ubicazioni di determinati file e directory: MQ_INSTALLATION_PATH rappresenta la directory di alto livello in cui è installato IBM MQ , MQ_DATA_DIRECTORY rappresenta l'ubicazione della directory di dati di MQ e QM_NAME è il nome del gestore code per cui è stato configurato l'accesso.
grant codeBase "file:MQ_INSTALLATION_PATH/java/lib/*" {
//We need access to these properties, mainly for tracing
permission java.util.PropertyPermission "user.name","read";
permission java.util.PropertyPermission "os.name","read";
permission java.util.PropertyPermission "user.dir","read";
permission java.util.PropertyPermission "line.separator","read";
permission java.util.PropertyPermission "path.separator","read";
permission java.util.PropertyPermission "file.separator","read";
permission java.util.PropertyPermission "com.ibm.msg.client.commonservices.log.*","read";
permission java.util.PropertyPermission "com.ibm.msg.client.commonservices.trace.*","read";
permission java.util.PropertyPermission "Diagnostics.Java.Errors.Destination.Filename","read";
permission java.util.PropertyPermission "com.ibm.mq.commonservices","read";
permission java.util.PropertyPermission "com.ibm.mq.cfg.*","read";
//Tracing - we need the ability to control java.util.logging
permission java.util.logging.LoggingPermission "control";
// And access to create the trace file and read the log file - assumed to be in the current directory
permission java.io.FilePermission "*","read,write";
// We'd like to set up an mBean to control trace
permission javax.management.MBeanServerPermission "createMBeanServer";
permission javax.management.MBeanPermission "*","*";
// We need to be able to read manifests etc from the jar files in the installation directory
permission java.io.FilePermission "MQ_INSTALLATION_PATH/java/lib/-","read";
//Required if mqclient.ini/mqs.ini configuration files are used
permission java.io.FilePermission "MQ_DATA_DIRECTORY/mqclient.ini","read";
permission java.io.FilePermission "MQ_DATA_DIRECTORY/mqs.ini","read";
//For the client transport type.
permission java.net.SocketPermission "*","connect,resolve";
//For the bindings transport type.
permission java.lang.RuntimePermission "loadLibrary.*";
//For applications that use CCDT tables (access to the CCDT AMQCLCHL.TAB)
permission java.io.FilePermission "MQ_DATA_DIRECTORY/qmgrs/QM_NAME/@ipcc/AMQCLCHL.TAB","read";
//For applications that use User Exits
permission java.io.FilePermission "MQ_DATA_DIRECTORY/exits/*","read";
permission java.io.FilePermission "MQ_DATA_DIRECTORY/exits64/*","read";
permission java.lang.RuntimePermission "createClassLoader";
//Required for the z/OS platform
permission java.util.PropertyPermission "com.ibm.vm.bitmode","read";
// Used by the internal ConnectionFactory implementation
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
// Used for controlled class loading
permission java.lang.RuntimePermission "setContextClassLoader";
// Used to default the Application name in Client mode connections
permission java.util.PropertyPermission "sun.java.command","read";
// Used by the IBM JSSE classes
permission java.util.PropertyPermission "com.ibm.crypto.provider.AESNITrace","read";
//Required to determine if an IBM Java Runtime is running in FIPS mode,
//and to modify the property values status as required.
permission java.util.PropertyPermission "com.ibm.jsse2.usefipsprovider","read,write";
permission java.util.PropertyPermission "com.ibm.jsse2.JSSEFIPS","read,write";
//Required if an IBM FIPS provider is to be used for SSL communication.
permission java.security.SecurityPermission "insertProvider.IBMJCEFIPS";
// Required for non-IBM Java Runtimes that establish secure client
// transport mode connections using mutual TLS authentication
permission java.util.PropertyPermission "javax.net.ssl.keyStore","read";
permission java.util.PropertyPermission "javax.net.ssl.keyStorePassword","read";
};
Nell'esempio, l'istruzione grant contiene le autorizzazioni richieste da IBM MQ classes for JMS. Per utilizzare queste istruzioni di concessione nel file di configurazione della politica, potrebbe essere necessario modificare i nomi percorso in base a dove è stato installato IBM MQ classes for JMS e dove si memorizzano le applicazioni.
Le applicazioni di esempio fornite con IBM MQ classes for JMSe gli script per eseguirle non abilitano il gestore della sicurezza.
La funzione di traccia IBM MQ classes for JMS richiede ulteriori autorizzazioni in quanto esegue ulteriori query delle proprietà di sistema e anche ulteriori operazioni del file system.
Un file della politica di sicurezza del template adatto per l'esecuzione in un gestore di sicurezza con la traccia abilitata viene fornito nella directory samples/wmqjava dell'installazione di IBM MQ come example.security.policy.