Author(s) |
Sergey Yevtushenko, Greg Shah Nick Saxon |
Date |
November 19, 2010 |
Access Control |
CONFIDENTIAL |
type | - | defines the purpose of the message:
|
|||||||||||||||
requestID | - | unique request identifier (only used with synchronous requests, the value is only unique for this session) | |||||||||||||||
routing key | - | information about requested
destination node and entry point This RoutingKey class is used as a key for indexing entry points in a registry on each node (Exported Interfaces Registry or EIR). It also contains the necessary information to route a message between any 2 nodes of the same logical network, even if they do not share a direct connection. Each instance consists of the following integer fields:
|
|||||||||||||||
payload | - |
packet payload (often used as method call parameters or
return value/exception), this is a single Serializable object (which may be an array object) The content of the payload is entirely application defined (not defined by the protocol). More specifically, the payload structure and content is specific to each unique combination of groupID and methodID from the routing key. This combination of IDs represents a unique entry point being targeted by a given message. Only that entry point can interpret the payload. While these entry points are exported via the DAP, the DAP does not implement any entry points (except for some simple housekeeping functions). The DAP has no knowledge of any payload structure or whether the payload is valid. |
Category | Group | Key | Default Value | Example Value | Type | Required on Server | Required on Client | Purpose |
net | server | port | -1 | 3333 | int | yes | yes | The TCP port on which the server will listen or which the client will use to contact the server. |
net | server | host | null | localhost | string | n/a | yes | Specifies the hostname or IP address on which the server resides. |
net | server | timeout | 600000 | 30000 | int | no | no | The number of milliseconds that a sender of the an initialization request will wait for the associated reply. |
net | server | nodeAddr | 0x00010000 | 65536 | int | no | n/a | The DAP node address of a router node. All leaf nodes connected to this node will have addresses assigned from the low word while the high word will be identical. |
net | dispatcher | threads | 2 | 10 | int | no | no | The size of the dispatcher's thread pool. |
net | router | threads | 2 | 2 | int | no | n/a | The size of the router's thread pool. |
net | queue | conversation | false | true | boolean | n/a | no | Enable/disable conversation mode for the associated client. Note that the server's session is automatically configured based on the mode of the client. |
net | queue | start_thread | false | true | boolean | n/a | no | If true, a daemon thread will be started to drive conversation mode. If conversation mode is disabled, this value is ignored. |
security | server | id | null | server1 | string | yes | n/a | This is the server's name, used to find the associated configuration for that server in the directory. |
security | certificate | validate | false | true | boolean | n/a | no | If true, then the server's certificate must be present in the truststore for authentication to succeed. This is a way of authenticating the server. |
security | truststore | alias | null | server1 | string | no | no | Used
when security:certificate:validate is true to
identify the certificate in the truststore to be used for
validation. Used on the client and on the server only during the
creation of a virtual session (in which case the server acts like a
client). |
security | keystore | alias | null | server1 | string | no | n/a | Required to find the server's private key if there are multiple aliases in the keystore. |
security | keystore | useralias | null | client1 | string | n/a | no | Required to find the client's private key if there are multiple aliases in the keystore. This should not be specified if a processalias has been specified. It should only be used for interactive clients. |
security | keystore | processalias | null | batch_process_1 | string | n/a | no | Used to enable process (non-interactive) authentication
instead of the normal interactive authentication. If this value
is non-null, then a non-interactive authentication type is used. In addition, the SecurityManager uses this to find the client's private key if there are multiple aliases in the keystore. |
security | keystore | filename | null | custom_keys.store | string | yes | no | Specifies the filename or URL from which a custom keystore can be read. |
security | truststore | filename | null | custom_trust.store | string | n/a | no | Specifies the custom trust store for the client to use for validation of server certificates. Note that the server dynamically builds a truststore from the directory so this is not needed for servers. |
access | password | keystore | null | kjhdsa | string | no | no | Specifies the password to be used to read/decrypt the custom keystore. |
access | password | keyentry | null | ytfryu | string | no | no | Specifies the password to be used to read/decrypt the in-memory key manager. |
access | password | truststore | null | ohjuou | string | n/a | no | Specifies
the password to be used to read/decrypt the custom truststore
(file). Since the server doesn't use a file-based trust-store,
this is not needed and will not be used on the server. |
access | password | user | null | asjakkl | string | n/a | no | If the standard SecurityManager client authentication hook is used, this will override the password instead of forcing the user to be prompted via stdin. |
access | subject | id | null | user1 | string | n/a | no | If the standard SecurityManager client authentication hook is used, this will override the userid instead of forcing the user to be prompted via stdin. |
directory | backend | type | null | xml | string | yes | n/a | Specifies either of the 2 back-end types that are available in the directory package: xml or ldap. |
directory | backend | class | null | com.acme.directory.MyBackEnd | string | no | n/a | Specifies the class name of the directory back-end to use. This class must implement the Remapper interface. |
directory | xml | filename | null | directory.xml | string | no | n/a | Required if using the XML back-end. Defines the xml file that provides persistent storage for the directory. |
directory | ldap | mapping | null | string | no | n/a | Required if the LDAP back-end is in use. | |
directory | ldap | mode | null | file | string | no | n/a | Required if the LDAP back-end is in use. Must be one of these mapping modes: FILE, URL, ATTRIBUTE, SUBTREE. |
directory | ldap | url | null | string | no | n/a | Required if the LDAP back-end is in use. Defines the LDAP provider's URL. |
|
directory | ldap | auth | null | string | no | n/a | LDAP security authentication. | |
directory | ldap | principal | null | string | no | n/a | LDAP security principal. | |
directory | ldap | credentials | null | string | no | n/a | LDAP security credentials. | |
directory | ldap | keystore | null | string | no | n/a | Required if using the LDAP back-end AND LDAPS (TLS transport for LDAP). | |
directory | ldap | truststore | null | string | no | n/a | Required if using the LDAP back-end AND LDAPS (TLS transport for LDAP). | |
directory | ldap | keypasswd | null | string | no | n/a | Required if using the LDAP back-end AND LDAPS (TLS transport for LDAP). | |
directory | ldap | trustpasswd | null | string | no | n/a | Required if using the LDAP back-end AND LDAPS (TLS transport for LDAP). | |
directory | ldap | alias | null | string | no | n/a | Required if using the LDAP back-end AND LDAPS (TLS transport for LDAP). | |
directory | ldap | aliaspasswd | null | string | no | n/a | Required if using the LDAP back-end AND LDAPS (TLS transport for LDAP). |
NetResource
class implements a plugin that controls the
"net" resource. The net resource is a set of all exportable server methods
that are potentially callable by client applications.group:method
.
Two-level nature of net resource names allows hierarchical access
control. If no access rights are specified for the method specified as group:method
,
the group
is checked next and the result is used as if it
was found for the full name. This is an example of the tree propagation
of rights.system
group of methods. Methods
of this group are exported automatically by the net package. They are
required for proper functioning of the protocol. However, if left
unprotected, they may become the target of denial of service type
attacks. Methods of the system
groups are described below.Method |
Use |
Recommended protection for server account |
Recommended protection for other accounts |
system.route |
Used by peers to resolve exported symbolic API names into EIR indexes | RWX |
RX |
system.authenticate |
Used internally by the net package to do remote subject authentication in a routed configuration | RWX |
N |
system.terminate |
Used internally by the net
package to do remote session termination in a routed configuration |
RWX |
N |
system.shutdown |
Used to request the net package shutdown, which normally also initiates the server shutdown | RWX |
RX or N 1) |
system
resource shutdown
instance.
Both permissions are required for a remote client to shutdown the
server.net
resource instances with the access mode W.