| Back | Next | Contents | Cams Administrator's Guide |
The security domain's service configuration is defined by the Cams security-domain.xml file. This document contains reference information for each of the tags that can be used within security-domain.xml. The following table shows the file structure with links to each of the possible elements.
| Tag Name | Instances | Description |
|---|---|---|
|
1
|
declares the security domain |
|
|
0 ... 1
|
an optional list of Cams variables available within all security-domain specific configuration files |
|
|
|
0 ... N
|
provides an initialization/configuration parameter as |
|
1
|
logs debug, info, warning, error, and fatal messages to a security domain-specific log |
|
|
1
|
authenticates users and creates new sessions |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
1
|
loads and initializes the login configuration |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
1
|
processes authentication requests issued by a qualified Cams agent |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
0 ... N
|
a single request processing node within the authentication pipeline |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
1
|
controls access to the resources protected by a security domain |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
1
|
loads and initializes the access control policy for security domain's resources |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
1
|
processes access control requests issued by a qualified Cams agent |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
0 ... N
|
a single request processing node within an access control pipeline |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
1
|
manages the sessions for authenticated users |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
0 ... N
|
registers a session event handler with the session manager |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
1
|
enables session information to be queried by qualified Cams agents |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
1
|
processes session access requests |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
0 ... N
|
a single request processing node within a session access pipeline |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
1
|
enables sessions to be closed, touched, updated, etc. by qualified Cams agents |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
1
|
processes session control requests |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
0 ... N
|
a single request processing node within a session control pipeline |
|
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
1
|
provides for management of security domain-wide services | |
|
0 ... 1
|
a list of initialization/configuration parameters | |
|
0 ... N
|
an initialization/configuration parameter | |
|
|
0 ... N
|
creates and registers a service implementation with the service manager |
|
1
|
declares the type of service being registered |
|
|
1
|
declares the implementation of the service |
|
|
1
|
a list of initialization/configuration parameters |
|
|
|
0 ... N
|
an initialization/configuration parameter |
The top-level element used to define services within a Cams security domain.
| Item | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Syntax |
<security-domain debug="true|false"> ... </security-domain> |
||||||||||||||||||||||||
| Attributes |
|
||||||||||||||||||||||||
| Data | None | ||||||||||||||||||||||||
| Parent Elements |
None |
||||||||||||||||||||||||
| Child Elements |
|
||||||||||||||||||||||||
| Example |
<security-domain debug="false"> <!-- Configure the logger --> <logger <!-- Configure the access control service -->
<access-control-service
className="com.cafesoft.security.engine.access.StandardAccessControlService"
debug="false">
...
</access-control-service>
<!-- Configure the session manager service -->
<session-manager-service
debug="false">
...
</session-manager-service>
<!-- Configure the session access service -->
<session-access-service
className="com.cafesoft.security.engine.session.access.StandardSessionAccessService"
debug="false">
...
</session-access-service>
<!-- Configure the session control service -->
<session-control-service
className="com.cafesoft.security.engine.session.control.StandardSessionControlService"
debug="false">
...
</session-control-service>
<!-- Register services accessible within this security domain -->
<service-manager
className="com.cafesoft.core.service.StandardServiceManager"
debug="false">
...
</service-manager>
</security-domain> |
Logs DEBUG, INFO, WARNING, ERROR, and FATAL messages to a security domain-specific log.
| Item | Description | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Syntax |
<logger |
|||||||||||||||||||||||||||||||||
| Attributes |
|
|||||||||||||||||||||||||||||||||
| Data | None | |||||||||||||||||||||||||||||||||
| Parent Elements |
1. <security-domain> |
|||||||||||||||||||||||||||||||||
| Child Elements | None | |||||||||||||||||||||||||||||||||
| Example |
<logger |
Implements a security domain's authentication service, which is responsible for validating the identity of a user who accessess protected resources within the security domain.
| Item | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Syntax |
<auth-service |
|||||||||
| Attributes |
|
|||||||||
| Data | None | |||||||||
| Parent Elements |
1. <security-domain> |
|||||||||
| Child Elements |
|
|||||||||
| Example |
<!-- Configure the authorization service --> <auth-service |
Loads and initializes the security domain's login configuration.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<login-config-factory className="fully.qualified.JavaClassName" params="configPath=fully qualified file path" debug="true|false"/> |
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements |
1. <auth-service> |
||||||
| Child Elements |
|
||||||
| Example |
<login-config-factory className="com.cafesoft.security.engine.auth.login.XmlLoginConfigurationFactory" debug="false"> <param-list> |
Processes authentication requests issued locally or remotely by
a Cams agent. This pipeline implements
a chain of responsibility pattern that
provides strong control over who can issue authentication requests, and how
the response to authentication requests is created.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<auth-pipeline |
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements |
1. <auth-service> |
||||||
| Child Elements |
|
||||||
| Example |
<auth-pipeline |
Represents a single node within an authentication pipeline. The valve receives an authentication request and can handle the authentication completely, modify or add to the authentication request, or pass the authentication request to the next auth-valve in the chain.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<auth-valve
className="fully.qualified.JavaClassName"
debug="true|false">
<param-list>
...
|
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements |
1. <auth-pipeline> |
||||||
| Child Elements |
|
||||||
| Example |
<auth-valve |
Specifies the Java class that controls access to the resources
protected by a security domain. This element
specifies the Java class that implements the access control service.
| Item | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Syntax |
<access-control-service |
|||||||||
| Attributes |
|
|||||||||
| Data | None | |||||||||
| Parent Elements |
1. <security-domain> |
|||||||||
| Child Elements |
|
|||||||||
| Example |
<!-- Configure the access control service --> |
Specifies the Java class that creates the access control policy that declares the resources protected within a security domain along with the rules for accessing them. Loads and initializes the access control policy. The factory will usually be specific to the persistence format for the configured access control policy. For example, the access control policy might be stored in an XML file, a relational database, an LDAP server, or some other data storage facility.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<access-control-policy-factory className="fully.qualified.JavaClassName" debug="true|false"/> |
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements | |||||||
| Child Elements |
|
||||||
| Example |
<access-control-policy-factory className="com.cafesoft.security.engine.access.XmlAccessControlPolicyFactory" debug="false"/> |
The access control pipeline specifies the Java class that processes access requests issued locally or remotely by a Cams agent. This pipeline is composed of a sequence of access control valves, which handle the request using the chain of responsibility design pattern. This enables each access control valve to handle the request altogether or modulate the request for processing by a subsequent valve.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<access-control-pipeline
className="fully.qualified.JavaClassName"
debug="true|false"/>
<access-control-valve>
<param-list>
...
</param-list>
</access-control-valve>
...
</access-control-pipeline>
|
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements |
1. <auth-service> |
||||||
| Child Elements |
|
||||||
| Example |
<access-control-pipeline
className="com.cafesoft.security.engine.access.StandardAccessControlPipeline"
params=""
debug="false">
<access-control-valve
className="com.cafesoft.security.engine.access.valves.LogAccessControlRequestValve"
debug="false">
<param-list>
<param name="logPath" value="${cams.home}/logs/system-access-control.log"/>
</param-list>
<access-control-valve>
</access-control-pipeline>
|
Represents a single node within an access control pipeline for handling access requests. The valve receives an access request and can handle the request completely, modify or add to it, or pass the request to the next valve in the chain.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<access-control-valve className="fully.qualified.JavaClassName" debug="true|false"/> |
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements |
1. <auth-pipeline> |
||||||
| Child Elements |
|
||||||
| Example |
<access-control-valve
className="com.cafesoft.security.engine.access.valves.LogAccessControlRequestValve"
debug="false">
<param-list>
<param name="logPath" value="${cams.home}/logs/system-access-control.log"/>
</param-list>
</access-control-valve>
|
Specifies the Java class that manages authenticated user sessions.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<session-manager-service |
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements |
1. <security-domain> |
||||||
| Child Elements |
|
||||||
| Example |
<!-- Configure the session manager service --> |
Registers a session event handler with the session manager.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<session-event-handler className="fully.qualifed.JavaClassName" debug="false"/> |
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements | |||||||
| Child Elements |
|
||||||
| Example |
<session-event-handler
className="com.cafesoft.security.engine.session.SessionManagerEventLogger"
debug="false">
<param-list>
<param name="logPath"
value="${cams.home}/logs/system-session-manager.log,append=false"/>
</param-list>
</session-event-handler>
|
Enables session information to be queried by qualified Cams agents.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<session-access-service |
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements |
1. <security-domain> |
||||||
| Child Elements |
|
||||||
| Example |
<!-- Configure the session access service --> |
Processes session access requests by a Cams agent. This pipeline is composed of a sequence of session access valves, which handle the request using the chain of responsibility design pattern. This enables each session access valve to handle the request altogether or modulate the request for processing by a subsequent valve.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<session-access-pipeline className="fully.qualifed.JavaClassName" debug="true|false"> <session-access-valve ... /> ... </session-access-pipeline> |
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements | |||||||
| Child Elements |
|
||||||
| Example |
<session-access-pipeline
className="com.cafesoft.security.engine.session.access.StandardSessionAccessPipeline"
debug="false">
<session-access-valve
className="com.cafesoft.security.engine.session.access.valves.LogSessionAccessRequestValve"
debug="false"/>
<param-list>
<param name="logPath" value="${cams.home}/logs/system-session-access.log">
</param-list>
</session-access-valve>
</session-access-pipeline>
|
Represents a single node within a session access pipeline for handling access requests. The valve receives a session access request and can handle the request completely, modify or add to it, or pass the request to the next valve in the chain.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<session-access-valve className="fully.qualified.JavaClassName" debug="true|false"/> |
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements | |||||||
| Child Elements |
|
||||||
| Example |
<session-access-valve
className="com.cafesoft.security.engine.session.access.valves.LogSessionAccessRequestValve"
debug="false">
<param-list>
<param name="logPath" value="${cams.home}/logs/system-session-access.log">
</param-list>
</session-access-valve>
|
Enables sessions to be closed, touched, updated, etc. by qualified Cams agents.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<session-control-service |
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements |
1. <security-domain> |
||||||
| Child Elements |
|
||||||
| Example |
<!-- Configure the session control service --> |
Processes session control requests by a Cams agent. This pipeline is composed of a sequence of session control valves, which handle requests using the chain of responsibility design pattern. This enables each session control valve to handle the request altogether or modulate the request for processing by a subsequent valve.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<session-control-pipeline className="fully.qualifed.JavaClassName" debug="true|false"> <session-control-valve ... /> ... </session-control-pipeline> |
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements | |||||||
| Child Elements |
|
||||||
| Example |
<session-control-pipeline
className="com.cafesoft.security.engine.session.control.StandardSessionControlPipeline"
debug="false">
<session-control-valve
className="com.cafesoft.security.engine.session.control.valves.LogSessionControlRequestValve"
debug="false">
<param-list>
<param name="logPath" value="${cams.home}/logs/system-session-control.log">
</param-list>
</session-control-valve>
</session-control-pipeline>
|
Represents a single node within a session control pipeline for handling session control requests. The valve receives a session control request and can handle the request completely, modify or add to it, or pass the request to the next valve in the chain.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<session-control-valve className="fully.qualified.JavaClassName" debug="true|false"/> |
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements | |||||||
| Child Elements |
|
||||||
| Example |
<session-control-valve
className="com.cafesoft.security.engine.session.control.valves.LogSessionControlRequestValve"
debug="false">
<param-list>
<param name="logPath" value="${cams.home}/logs/system-session-control.log">
</param-list>
</session-control-valve>
|
Provides for management of security domain-wide services.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<service-manager |
||||||
| Attributes |
|
||||||
| Data | None | ||||||
| Parent Elements |
1. <security-domain> |
||||||
| Child Elements |
|
||||||
| Example |
<!-- Register services accessible within this security domain --> |
Creates and registers a service implementation with the service manager.
| Item | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Syntax |
<service
id="textual identifier"
enabled="true|false""
debug="true|false">
<service-type>fully.qualified.JavaClassName</service-type>
<service-class>fully.qualified.JavaClassName</service-class>
<param-list>
...
</param-list>
</service>
|
|||||||||
| Attributes |
|
|||||||||
| Data | None | |||||||||
| Parent Elements |
1. <service-manager> |
|||||||||
| Child Elements |
|
|||||||||
| Example |
<!-- Register a user repository service for cams-users.xml -->
<service
id="cams-user-repository"
enabled="true"
debug="false">
<service-type>com.cafesoft.security.engine.service.UserRepositoryService</service-type>
<service-class>com.cafesoft.security.engine.service.UserRepositoryService</service-class>
<param-list>
<param name="repositoryFilePath"
value="${cams.security-domain.home}/cams-users.xml"/>
<param name="repositoryFactoryClass"
value="com.cafesoft.security.engine.auth.login.userrepository.XmlUserRepositoryFactory"/>
<param name="handlerClass"
value="com.cafesoft.security.engine.auth.login.userrepository.CamsXmlUserRepositoryHandler"/>
<param name="debug" value="false"/>
</param-list>
</service>
|
Declares the type of service being registered (a Java interface).
| Item | Description |
|---|---|
| Syntax |
<service-type>fully.qualified.JavaClassName</service-type> |
| Attributes | None |
| Data | None |
| Parent Elements |
1. <service> |
| Child Elements | None |
| Example |
<!-- Register a user repository service for cams-users.xml -->
<service
id="cams-user-repository"
enabled="true"
debug="false">
<service-type>com.cafesoft.security.engine.service.UserRepositoryService</service-type>
<service-class>com.cafesoft.security.engine.service.UserRepositoryService</service-class>
<param-list>
...
</param-list>
</service>
|
Declares the Java class that implements the service.
| Item | Description |
|---|---|
| Syntax |
<service-class>fully.qualified.JavaClassName</service-class> |
| Attributes | None |
| Data | None |
| Parent Elements |
1. <service> |
| Child Elements | None |
| Example |
<!-- Register a user repository service for cams-users.xml -->
<service
id="cams-user-repository"
enabled="true"
debug="false">
<service-type>com.cafesoft.security.engine.service.UserRepositoryService</service-type>
<service-class>com.cafesoft.security.engine.service.UserRepositoryService</service-class>
<param-list>
...
</param-list>
</service>
|
An optional list of Cams variables that can be used to set security domain substitution values. These variables are useful in defining values that are frequently used in security domain configuration files.
| Item | Description | |||
|---|---|---|---|---|
| Syntax |
<var-list> <var ... /> ... </var-list> |
|||
| Attributes | None | |||
| Data |
None |
|||
| Parent Elements |
1. <security-domain> |
|||
| Child Elements |
|
|||
| Example |
<var-list> <var name="name1" value="value1"/> </var-list> |
A Cams variable is used to set a global substitution value. These values are useful in working with a security domains configuration files, especially where test and production deployments are on distinct hosts.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<var name="textual name" value="value"/> |
||||||
| Attributes |
|
||||||
| Data |
None |
||||||
| Parent Elements |
1. <var-list> |
||||||
| Child Elements | None | ||||||
| Example |
<var-list>
<var name="name1" value="value1"/>
<var name="name2" value="value2"/>
<var name="${name1}_substituted" value="${name1} and ${name2}"/>
</var-list>
|
A list of parameters that can be used to set initialization or configuration values.
| Item | Description | |||
|---|---|---|---|---|
| Syntax |
<param-list> <param ... /> ... </param-list> |
|||
| Attributes | None | |||
| Data |
None |
|||
| Parent Elements |
1. <auth-service> |
|||
| Child Elements |
|
|||
| Example |
<param-list> <param name="textual name" value="value"> </param-list> |
A parameter used to set a single initialization or configuration value.
| Item | Description | ||||||
|---|---|---|---|---|---|---|---|
| Syntax |
<param name="textual name" value="value"/> |
||||||
| Attributes |
|
||||||
| Data |
None |
||||||
| Parent Elements |
1. <param-list> |
||||||
| Child Elements | None | ||||||
| Example |
<param-list> <param name="textual name" value="value"> </param-list> |
© Copyright 1996-2009 Cafésoft LLC. All rights reserved.