여기에서 JEUS 도메인의 메인 설정 파일인 domain.xml에서 Security Manager에 관련된 태그에 대한 설명을 찾을 수 있다.
XML Schema 파일:
JEUS_HOME/lib/schemas/jeus/jeus-security.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: 자신의 태그 안에 사용하는 태그.
(7) <connect-retries> ?
(9) <security-domain-name> +
(10) <password-validator> ?
(11) <default-password-validator>
(12) <minLength> ?
(13) <maxLength> ?
(14) <force-special-character> ?
(15) <force-digit> ?
(16) <force-capital-letter> ?
(17) <force-small-letter> ?
(18) <deny-username> ?
(19) <custom-password-validator>
(20) <class-name> *
(5)
<
domain
>
<security-manager>
| |
| Description | JEUS Security 정보 관리에 대한 설명이다. 하나의 도메인 내의 공통 Security 정보를 관리할 때 설정한다. |
| Value Type | security-managerType |
| Child Elements |
(7)
(8)
(11)
|
[예 3.1] Security Manager domain.xml 파일 예제
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<domain>
<!-- Security Manager information for JEUS Security System -->
<security-domains>
<!-- added domain in JEUS Security System -->
<security-domain>
<name>SYSTEM_DOMAIN</name>
<authentication>
<!-- authentication service for DBRealm Service -->
<default-repository-service>
<database-repository>
<vendor>oracle</vendor>
<driver>oracle.jdbc.OracleDriver</driver>
<url>jdbc:oracle:thin:@61.77.153.110:1521:ORCL</url>
<username>scott</username>
<password>{base64}dGlnZXI=</password>
</database-repository>
</default-repository-service>
</authentication>
</security-domain>
<security-domain>
<name>JACC_DOMAIN</name>
<authorization>
<!-- authorization service for JACC Authorization Service -->
<jacc-service/>
</authorization>
</security-domain>
<security-domain>
<name>SAMPLE_DOMAIN</name>
<!-- added identity assertion service about SubjectDN -->
<identity-assertion>
<default-identity-assertion-service>
<x509-identity-assertion>
<default-user-mapper>
<cert-attr-type>SubjectDN</cert-attr-type>
<attribute-type>CN</attribute-type>
<attribute-value-delimiter>,</attribute-value-delimiter>
</default-user-mapper>
</x509-identity-assertion>
</default-identity-assertion-service>
</identity-assertion>
<!-- added credential verification service about X509Certificate -->
<credential-verification>
<custom-credential-verification-service>
jeus.security.impl.verification.X509CertificateVerific
ationService
</custom-credential-verification-service>
</credential-verification>
</security-domain>
<security-domain>
<name>MY_DOMAIN</name>
<login>
<!-- login service information for JAAS LoginModule Service -->
<jaas-login-config>
<login-module>
<login-module-classname>jeus.security.impl.login.DBRealmLoginM
odule</login-module-classname>
<control-flag>required</control-flag>
<option>
<name>exportName</name>
<value>dbrealmtest</value>
</option>
<option>
<name>principalsQuery</name>
<value>select password from MY_DOMAIN_Principals where user
name=?</value>
</option>
<option>
<name>rolesQuery</name>
<value>select * from MY_DOMAIN_roles where username=?</value>
</option>
</login-module>
</jaas-login-config>
</login>
<authorization>
<repository-service>
<!-- added authorization service for modifying policy in runtime
-->
<custom-repository>
jeus.security.impl.aznrep.CustomPolicyFileRealmAuth
orizationRepositoryService
<property>
<name>PolicyClassName</name>
<value>jeus.security.base.CustomJeusPolicy</value>
</property>
<!-- added Principal classname -->
<property>
<name>UserPrincipalClassName</name>
<value>jeus.security.resource.PrincipalImpl</value>
</property>
<!-- added RolePrincipal classname -->
<property>
<name>RolePrincipalClassName</name>
<value>jeus.security.resource.RolePrincipalImpl</value>
</property>
</custom-repository>
</repository-service>
</authorization>
</security-domain>
</security-domains>
</domain>