blob: d22f1df2ae75e155be06876076fd2122aec4893a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This is the XML DTD for the Geode sample XML based authorization callback
in org.apache.geode.security.templates.XmlAuthorization.
All XMLs must include a DOCTYPE of the following form:
<!DOCTYPE acl PUBLIC
"-//GemStone Systems, Inc.//GemFire XML Authorization 1.0//EN"
"http://www.gemstone.com/dtd/authz5_5.dtd">
The contents of a declarative XML file correspond to APIs found in the
org.apache.geode.security.AccessControl
package. The sample implementation may be used to specify access control
policies.
-->
<!--
The following conventions apply to all GemFire sample authorization
XML file elements unless indicated otherwise.
- In elements that contain PCDATA, leading and trailing whitespace in
the data may be ignored.
- In elements whose value is an "enumerated type", the value is case
sensitive.
-->
<!--
The "acl" element is the root element of the authorization file.
This element contains the role to user mappings and role to permissions
mapping on a per region per operation basis.
-->
<!ELEMENT acl (role+,permission+)>
<!--
The "role" element contains the set of users that have the permissions of
given role. A user can be present in more than one "role" elements in
which case the union of the permissions to all those roles determines
the full set of permissions to be given to the user.
-->
<!ELEMENT role (user*)>
<!ATTLIST role
name CDATA #REQUIRED
>
<!--
The "user" element is contained within the "role" element and contains
the name of a user having the permissions of that role.
-->
<!ELEMENT user (#PCDATA)>
<!--
The "permission" element specifies the list of operations that are allowed
for a particular role in the given regions as provided in the optional
"regions" attribute. The value of "regions" attribute should be a comma
separated list of region names for which permissions are to be provided.
If no "regions" attribute is provided then those permissions are provided
for all the other regions (i.e. other than those that have been explicitly
specified). Permissions for cache level operations REGION_DESTROY,
REGION_CREATE, QUERY and CQ operations should be specified with no "regions"
attribute. If cache-level permission is not provided for QUERY or CQ operations
then the permission for all the region names in the query string is checked.
-->
<!ELEMENT permission (operation*)>
<!ATTLIST permission
role CDATA #REQUIRED
regions CDATA #IMPLIED
>
<!--
The operation should be one of the following strings:
GET, PUT, DESTROY, REGISTER_INTEREST, UNREGISTER_INTEREST,
CONTAINS_KEY, KEY_SET, QUERY, EXECUTE_CQ, STOP_CQ, CLOSE_CQ, REGION_CLEAR,
REGION_CREATE, REGION_DESTROY
-->
<!ELEMENT operation (#PCDATA)>