Java security manager 에서 IBM MQ classes for JMS 애플리케이션 실행
IBM® MQ classes for JMS 는 Java security manager 를 사용으로 설정하여 실행할 수 있습니다. ' Java security manager '이 활성화된 상태에서 애플리케이션을 성공적으로 실행하려면 적절한 정책 구성 파일로 ' Java Virtual Machine '(JVM)를 구성해야 합니다.
적합한 정책 정의 파일을 만드는 가장 간단한 방법은 Java runtime environment (JRE)와 함께 제공된 정책 구성 파일을 변경하는 것입니다. 대부분의 시스템에서 이 파일은 JRE 디렉터리에 상대적인 lib/security/java.policy 디렉터리에 있습니다. 선호하는 편집기를 사용하거나 JRE 과 함께 제공된 정책 도구 프로그램을 사용하여 정책 구성 파일을 편집할 수 있습니다.
예제 정책 구성 파일
다음은 IBM MQ classes for JMS 가 기본 보안 관리자에서 성공적으로 실행될 수 있도록 하는 정책 구성 파일의 예제입니다. 특정 파일 및 디렉토리의 위치를 지정하려면 이 파일을 사용자 정의해야 합니다. MQ_INSTALLATION_PATH 는 IBM MQ 가 설치된 상위 레벨 디렉토리를 나타내고, MQ_DATA_DIRECTORY 는 MQ 데이터 디렉토리의 위치를 나타내며, QM_NAME 은 액세스가 구성되는 큐 관리자의 이름입니다.
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";
};
예제에서 grant 문에는 IBM MQ classes for JMS에 필요한 권한이 포함되어 있습니다. 정책 구성 파일에서 이러한 권한 부여 명령문을 사용하려면 IBM MQ classes for JMS 를 설치한 위치 및 애플리케이션을 저장한 위치에 따라 경로 이름을 수정해야 합니다.
IBM MQ classes for JMS와 함께 제공되는 샘플 애플리케이션 및 이를 실행하기 위한 스크립트는 보안 관리자를 사용하지 않습니다.
IBM MQ classes for JMS 추적 기능은 시스템 특성의 추가 조회 및 추가 파일 시스템 조작을 수행하므로 추가 권한이 필요합니다.
추적이 사용으로 설정된 보안 관리자에서 실행하기에 적합한 템플리트 보안 정책 파일은 IBM MQ 설치의 samples/wmqjava 디렉토리에 example.security.policy(으)로 제공됩니다.