java.policy 파일 사용 권한
Java™ 2보안은 여러 정책 파일을 사용하여 각 Java 프로그램에 부여된 권한을 판별합니다.
WebSphere® Application Server에서 지원하는 사용 가능한 정책 파일 목록은 Java 2보안 정책 파일 을 참조하십시오.
IBM Technology for Java의 경우, java.policy 파일은 java_home/jre/lib/security 디렉토리에 있습니다. 모든 JVM의 경우, java.policy 파일은 시스템 차원에서 사용됩니다. 서버에서는 java.policy 파일을 편집하지 마십시오.
showVariables 명령을 사용하여 서버의 프로파일과 연관된 노드에 대한 java_home 을 검색하십시오. 예를 들어, 노드가 myNode이면:- QShell을 입력하십시오.
profile_root/bin으로 이동하십시오.wsadmin -conntype NONE -c '$AdminTask showVariables {-scope Node=myNode -variableName JAVA_HOME}'를 호출하십시오.
java.policy 파일은 노드의 JVM (Java Virtual Machine) 에서 실행되는 모든 Java 프로그램이 공유하는 글로벌 기본 정책 파일입니다. java.policy 파일 변경은 노드에 대해 로컬입니다. 기본 Java 정책은 지동으로 픽업됩니다. 정책 파일의 구문 오류로 인해 Application Server가 실패합니다. 업데이트된 java.policy
파일이 로컬 노드의 모든 JVM에서 실행되는 모든 Java 프로그램에 적용됩니다. 업데이트사항을 적용하려면
프로그램을 다시 시작하십시오. 이 파일을 수정하는 것은 권장되지 않습니다. 노드의 일부 Java 프로그램에
특정 변경이 필요하고 java.policy 파일을 갱신해야 하는 경우, 정책 도구를 사용하여
java.policy 파일을 주의하여 수정하십시오. 자세한 정보는 PolicyTool 을 사용하여 Java 2보안에 대한 정책 파일 편집을 참조하십시오.
java.policy 파일의 기본 권한
// Standard extensions get all permissions by default
grant codeBase "file:${java.home}/lib/ext/*" {
permission java.security.AllPermission;
};
// default permissions granted to all domains
grant {
// Allows any thread to stop itself using the java.lang.Thread.stop()
// method that takes no argument.
// Note that this permission is granted by default only to remain
// backwards compatible.
// It is strongly recommended that you either remove this permission
// from this policy file or further restrict it to code sources
// that you specify, because Thread.stop() is potentially unsafe.
// See "http://java.sun.com/notes" for more information.
// permission java.lang.RuntimePermission "stopThread";
// allows anyone to listen on un-privileged ports
permission java.net.SocketPermission "localhost:1024-", "listen";
// "standard" properties that can be read by anyone
permission java.util.PropertyPermission "java.version", "read";
permission java.util.PropertyPermission "java.vendor", "read";
permission java.util.PropertyPermission "java.vendor.url", "read";
permission java.util.PropertyPermission "java.class.version", "read";
permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.version", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "file.separator", "read";
permission java.util.PropertyPermission "path.separator", "read";
permission java.util.PropertyPermission "line.separator", "read";
permission java.util.PropertyPermission "java.specification.version", "read";
permission java.util.PropertyPermission "java.specification.vendor", "read";
permission java.util.PropertyPermission "java.specification.name", "read";
permission java.util.PropertyPermission "java.vm.specification.version","read";
permission java.util.PropertyPermission "java.vm.specification.vendor","read";
permission java.util.PropertyPermission "java.vm.specification.name", "read";
permission java.util.PropertyPermission "java.vm.version", "read";
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";
};노드의 일부 Java 프로그램에 java.policy 파일에서 기본값으로 정의되지 않는 권한이 필요한 경우, java.policy 파일을 업데이트하십시오. 대부분의 시간 동안, java.policy 파일 대신 다른 정책 파일이 업데이트됩니다. 누락된 권한의 원인은 java.security.AccessControlException 예외 작성으로 인한 것입니다. 누락된 권한은 예외 데이터에 나열됩니다.
java.security.AccessControlException: access denied (java.io.FilePermission
C:\WebSphere\AppServer\java\jre\lib\ext\mail.jar read)위의 두 행은 한 개의 연속 행입니다.
Java 프로그램이 이 예외를 수신하고 이 권한 추가가 용인되면, java.policy 파일에 권한을 추가하십시오.
grant codeBase "file:user_client_installed_location" {
permission java.io.FilePermission
"C:\WebSphere\AppServer\java\jre\lib\ext\mail.jar", "read"; };권한을 추가할지 여부를 결정하려면 Java 2 보안의 액세스 제어 예외를 참조하십시오.