여기에서 JEUS의 보안 시스템에서 Policy 권한 체크와 관련된 설정 파일인 policies.xml의 설명을 찾을 수 있다.
XML Schema 파일:
JEUS_HOME/lib/schemas/jeus/policies.xsd
레퍼런스는 다음 형식으로 구성되어 있다.
XML Schema/XML 트리: XML 설정 파일의 모든 태그 리스트를 정리했다. 각 노드의 형식은 다음과 같다.
태그 레퍼런스로 빨리 찾아보기 위해서 각 태그마다 인덱스 번호( 예: (11) )를 붙여 놓았다. 태그 레퍼런스에서는 이 번호 순서로 설명한다.
XML Schema에서 정의한 XML 태그명을 <tag name> 형식으로 표시한다.
XML Schema에서 정의한 Cardinality를 표시한다. “?” = 0개나 1개의 element, “+” = 1개 이상의 element, “*” = 0개 이상의 element, (기호가 없음) = 정확히 1개의 element
몇몇 태그에는 “P” 문자를 붙여 놓았는데, 해당 태그는 성능에 관계되는 태그라는 것을 뜻한다. 이 태그는 설정을 튜닝할 때 사용된다.
Element Reference: 트리에 있는 각 XML 태그를 설명한다.
Dynamic: 동적 설정 반영 가능
Non-Dynamic: 동적 설정 반영 불가능, Dynamic이 설정되지 않은 항목들이 보통 이에 해당 하나 특별히 설명이 있는 경우 이 항목이 표시된다.
Description: 태그에 대한 간단한 설명.
Value Description: 입력하는 값과 타입.
Value Type: 값의 데이터 타입. (예: String)
Value Type Description: 값의 데이터 타입에 대한 설명
Default Value: 해당 XML을 사용하지 않았을 때 기본적으로 사용되는 값.
Defined Value: 이미 정해져 있는 값.
Example: 해당 XML 태그에 대한 예.
Performance Recommendation: 성능 향상을 위해서 추천하는 값.
Child Elements: 자신의 태그 안에 사용하는 태그.
(1) <policies>
(2) <policy> ?
(3) <role-permissions> ?
(4) <role-permission> *
(5) <role>
(6) <principal> *
(7) <actions> ?
(8) <classname> ?
(9) <excluded> ?
(10) <unchecked> ?
(11) <resource-permissions> *
(12) <context-id> ?
(13) <resource-permission> *
(14) <resource>
(15) <actions>
(16) <role> *
(17) <classname> ?
(18) <excluded> ?
(19) <unchecked> ?
(1)
<policies>
| |
Description | JEUS의 권한 체크와 관련된 Policy들을 정의한다. |
Value Type | PoliciesType |
Child Elements |
(3)
|
(2)
<
policies
>
<policy>
| |
Description | JEUS의 Policy를 정의한다. |
Value Type | PolicyType |
Child Elements |
(4)
(12)
|
(3)
<
policies
><
policy
>
<role-permissions>
| |
Description | 해당 Policy에 대한 <principal-role> 매핑들을 정의한다. |
Value Type | RolePermissionsType |
Child Elements |
(5)
|
(4)
<
policies
><
policy
><
role-permissions
>
<role-permission>
| |
Description | 해당 Policy에 대한 <principal-role> 매핑을 정의한다. |
Value Type | rolePermissionType |
Child Elements |
(6)
(7)
(8)
(9)
(10)
(11)
|
(5)
<
policies
><
policy
><
role-permissions
><
role-permission
>
<role>
| |
Description | Principal들에게 부여할 Role 이름을 지정한다. |
Value Type | token |
(6)
<
policies
><
policy
><
role-permissions
><
role-permission
>
<principal>
| |
Description | Role에 해당하는 User Principal을 지정한다. |
Value Type | token |
Value Description | Security의 accounts.xml에서 지정되어 있는 Principal 이름을 입력한다. |
(7)
<
policies
><
policy
><
role-permissions
><
role-permission
>
<actions>
| |
Description | Role Permission 객체에 대한 액션을 정의한다. 기본으로 사용되는 Role Permission은 정해진 액션이 없다. |
Value Type | token |
(8)
<
policies
><
policy
><
role-permissions
><
role-permission
>
<classname>
| |
Description | 사용할 Role Permission Class Name을 지정한다. 지정하지 않으면 JEUS에서 기본적으로 제공하는 클래스가 사용된다. |
Value Type | token |
(9)
<
policies
><
policy
><
role-permissions
><
role-permission
>
<excluded>
| |
Description | Role을 사용하지 못하도록 설정한다. |
Value Type | emptyType |
(10)
<
policies
><
policy
><
role-permissions
><
role-permission
>
<unchecked>
| |
Description | 아무런 체크 없이 Role을 사용 가능하도록 설정한다. |
Value Type | emptyType |
(11)
<
policies
><
policy
>
<resource-permissions>
| |
Description | 해당 Policy에 대한 <role-resource> 매핑들을 정의한다. |
Value Type | ResourcePermissionsType |
Child Elements |
(13)
(14)
|
(12)
<
policies
><
policy
><
resource-permissions
>
<context-id>
| |
Description | <role-resource> 매핑이 적용되는 <context id>를 설정한다(보통 이 태그는 사용되지 않는다). |
Value Type | token |
Value Description | 컨텍스트의 ID 값 |
Default Value | default |
(13)
<
policies
><
policy
><
resource-permissions
>
<resource-permission>
| |
Description | 해당 Policy에 대한 Role Resource 매핑을 정의한다. |
Value Type | ResourcePermissionType |
Child Elements |
(15)
(16)
(17)
(18)
(19)
(20)
|
(14)
<
policies
><
policy
><
resource-permissions
><
resource-permission
>
<resource>
| |
Description | Role을 매핑하는 리소스를 설정한다. |
Value Type | token |
Value Description | 리소스 이름 |
(15)
<
policies
><
policy
><
resource-permissions
><
resource-permission
>
<actions>
| |
Description | ResourcePermission 클래스의 생성자에게 넘길 Actions 값을 설정한다. |
Value Type | token |
Value Description | ResourcePermission 클래스에게 넘길 Actions 데이터 값 |
(16)
<
policies
><
policy
><
resource-permissions
><
resource-permission
>
<role>
| |
Description | 해당 리소스에 매핑되는 Role을 설정한다. |
Value Type | token |
Value Description | Role 이름 |
(17)
<
policies
><
policy
><
resource-permissions
><
resource-permission
>
<classname>
| |
Description | java.security.Permission을 상속한 Java 클래스 이름을 입력한다. 이 클래스는 Resource Permission에 사용된다. |
Value Type | token |
Value Description | Java 클래스 이름 |
Default Value | jeus.security.resource.ResourcePermission |
(18)
<
policies
><
policy
><
resource-permissions
><
resource-permission
>
<excluded>
| |
Description | 이 태그가 있으면, 해당 리소스는 배제된다(누구도 해당 리소스에 접근할 수 없다). |
Value Type | emptyType |
Value Description | Empty 타입으로, 어떤 값도 설정되지 않는다. |
(19)
<
policies
><
policy
><
resource-permissions
><
resource-permission
>
<unchecked>
| |
Description | 이 태그가 있으면, 해당 리소스는 체크되지 않는다(누구나 이 리소스에 접근할 수 있다). |
Value Type | emptyType |
Value Description | Empty 타입으로, 어떤 값도 설정되지 않는다. |
[예 15.1] policies.xml 파일 예제
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <policies xmlns="http://www.tmaxsoft.com/xml/ns/jeus"> <!-- Policy information for authorization Service. --> <policy> <role-permissions> <role-permission> <principal>peter</principal> <role>Administrator</role> <actions>09:00-17:00</actions> <classname>jeus.security.resource.TimeConstrainedRolePermission</classname> <excluded/> <unchecked/> </role-permission> </role-permissions> <resource-permissions> <context-id>MyContext</context-id> <resource-permission> <role>Administrator</role> <resource>jeus.server.*</resource> <actions>boot,down</actions> <classname>jeus.security.resource.TimeConstrainedResourcePermission</classname> <excluded/> <unchecked/> </resource-permission> </resource-permissions> </policy> </policies>