java.policy 파일 권한
Java™ 2 보안은 각 Java 프로그램에 부여된 권한을 판별하기 위해 여러 정책 파일을 사용합니다.
WebSphere® Application Server에서 지원되는 사용 가능한 정책 파일의 목록은 Java 2 보안 정책 파일을 참조하십시오.
Java용 IBM Technology의 경우, java.policy 파일은
java_home/jre/lib/security
디렉토리에 있습니다. 모든 JVM의 경우, java.policy 파일이 시스템 차원에서 사용됩니다.
서버에서 java.policy 파일을 편집하지 마십시오.
![[IBM i]](../images/iseries.gif)
- 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 보안을 위해 정책 파일 편집의 내용을 참조하십시오.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
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 보안의 액세스 제어 예외를 참조하십시오.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)