app.policy 파일 권한
Java™ 2 보안은 각 Java 프로그램에 대해 부여된 권한을 판별하기 위해 몇몇 정책 파일을 사용합니다. 다음 파일에 포함된 권한의 유니온은 WebSphere® Application Server 엔터프라이즈 애플리케이션에 적용됩니다. 이 유니온은 부여된 권한을 판별합니다.
- java.security 파일에서 policy.url.* 특성에 지정되는 정책 파일.
- 구성 및 파일 복제 서비스에 의해 관리되는 app.policy 파일.
- server.policy 파일.
- java.policy 파일.
- 애플리케이션 was.policy 파일.
- ra.xml 파일의 권한 명세.
- library.policy 파일인 공유 라이브러리.
이 파일에 작성된 변경사항은 WebSphere Application Server, Network Deployment 셀의 다른 노드로 복제됩니다.
grant codeBase "file:${application}" {
permission java.lang.RuntimePermission "stopThread";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "modifyThreadGroup";
};
정책 파일을 추출하려면, 명령 프롬프트에 사용자 환경에 적절한 변수 값을 사용하여 하나의 행으로 다음 명령을 입력합니다.
![[Windows]](../images/windows.gif)
wsadmin> set obj [$AdminConfig extract cells/cell_name/node/node_name/app.policy c:\temp\test\app.policy]
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
wsadmin> set obj [$AdminConfig extract cells/cell_name/node/node_name/app.policy /temp/test/app.policy]
정책 도구를 사용하여 추출된 app.policy 파일을 편집하십시오. 자세한 정보는 PolicyTool을 사용하여 Java 2 보안을 위해 정책 파일 편집의 내용을 참조하십시오. app.policy 파일에 대한 변경사항은 노드에 대한 로컬입니다.
정책 파일을 체크인하려면, 명령 프롬프트에 사용자 환경에 적절한 변수 값을 사용하여 하나의 행으로 다음 명령을 입력합니다.
![[Windows]](../images/windows.gif)
wsadmin> $AdminConfig checkin cells/cell_name/nodes/node_name/app.policy c:\temp\test\app.policy $obj
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
wsadmin> $AdminConfig checkin cells/cell_name/nodes/node_name/app.policy temp/test/app.policy $obj
기호 | 의미 |
---|---|
file:${application} | 권한이 애플리케이션 내 모든 자원에 적용됩니다. |
file:${jars} | 권한이 애플리케이션 내의 모든 유틸리티 Java 아카이브(JAR) 파일에 적용됩니다. |
file:${ejbComponent} | 권한이 애플리케이션 내의 엔터프라이즈 Bean 자원에 적용됩니다. |
file:${webComponent} | 권한이 애플리케이션 내의 웹 자원에 적용됩니다. |
file:${connectorComponent} | 권한이 애플리케이션 및 독립형 커넥터 자원 내에 모두 있는 커넥터 자원에 적용됩니다. |
기호 | 의미 |
---|---|
${app.installed.path} | 애플리케이션이 설치되는 경로 |
${was.module.path} | 모듈이 설치되는 경로 |
${current.cell.name} | 현재 셀 이름 |
${current.node.name} | 현재 노드 이름 |
${current.server.name} | 현재 서버 이름 |
WebSphere Application Server에서
제공된 app.policy 파일은
profile_root/config/cells/cell_name/nodes/node_name/app.policy에 있으며, 다음 기본 권한을 포함합니다.
grant codeBase "file:${application}" {
// The following are required by JavaMail
permission java.io.FilePermission "${was.install.root}${/}lib${/}activation-impl.jar", "read";
permission java.io.FilePermission "${was.install.root}${/}lib${/}mail-impl.jar", "read";
};
grant codeBase "file:${jars}" {
permission java.net.SocketPermission "*", "connect";
permission java.util.PropertyPermission "*", "read";
};
grant codeBase "file:${connectorComponent}" {
permission java.net.SocketPermission "*", "connect";
permission java.util.PropertyPermission "*", "read";
};
grant codeBase "file:${webComponent}" {
permission java.io.FilePermission "${was.module.path}", "read";
permission java.io.FilePermission "${was.module.path}${/}-", "read, write"
permission java.lang.RuntimePermission "loadLibrary.*";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
permission java.util.PropertyPermission "*", "read";
};
grant codeBase "file:${ejbComponent}" {
permission java.lang.RuntimePermission "queuePrintJob";
permission java.lang.RuntimePermission "loadLibrary.*";
permission java.net.SocketPermission "*", "connect";
permission java.util.PropertyPermission "*", "read";
permission java.io.FilePermission "*", "read,write";
};
![[Windows]](../images/windows.gif)
java.security.AccessControlException: access denied
(java.io.FilePermission
C:\WebSphere\AppServer\java\jre\lib\ext\mail.jar read)
Java 프로그램이 이 예외를 수신하고 이 권한 추가가 정당화되면 권한을 server.policy 파일에 추가합니다. 예를 들어 다음과 같습니다.
![[Windows]](../images/windows.gif)
grant codeBase "file:user_client_installed_location" {
permission java.io.FilePermission
"C:\WebSphere\AppServer\java\jre\lib\ext\mail.jar", "read";
};
![[IBM i]](../images/iseries.gif)
grant codeBase "file:user_client_installed_location" {
permission java.io.FilePermission
"${was.install.root}$(/)java$(/)jre$(/)lib$(/)ext$(/)mail.jar", "read";
};
이전 권한 정보 행은 설명을 위해서 분할되었습니다. 실제로는 권한을 한 행에 입력합니다.
권한을 추가할지 여부를 판별하려면 AccessControlException 주제를 참조하십시오.
모든 WebSphere Application Server 엔터프라이즈 애플리케이션을 다시 시작하여 업데이트된 app.policy 파일이 적용되는지 확인하십시오.