keystone/tests/default_fixtures.py
Joe Gordon 3c3f5dc897 Move auth_token middleware from admin user to an RBAC policy
Before this patch auth_token middleware required admin user credentials
stored in assorted config files. With this patch only non-admin user
credentials are needed. The revocation_list and validate_token commands
use an policy.json rule, to only allow these commands if you are in have the
service role.

Rule used:
    "service_role": [["role:service"]],
    "service_or_admin": [["rule:admin_required"], ["rule:service_role"]],

Added the policy wrapper on the validate functions.

Fixes bug 1153789

Change-Id: I43986e26b16aa5213ad2536a0d07d942bf3dbbbb
2013-05-16 18:45:52 +00:00

141 lines
3.3 KiB
Python

# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright 2012 OpenStack LLC
#
# Licensed 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.
# NOTE(dolph): please try to avoid additional fixtures if possible; test suite
# performance may be negatively affected.
from keystone import config
CONF = config.CONF
DEFAULT_DOMAIN_ID = config.CONF.identity.default_domain_id
TENANTS = [
{
'id': 'bar',
'name': 'BAR',
'domain_id': DEFAULT_DOMAIN_ID,
'description': 'description',
'enabled': True,
}, {
'id': 'baz',
'name': 'BAZ',
'domain_id': DEFAULT_DOMAIN_ID,
'description': 'description',
'enabled': True,
}, {
'id': 'mtu',
'name': 'MTU',
'description': 'description',
'enabled': True,
'domain_id': DEFAULT_DOMAIN_ID
}, {
'id': 'service',
'name': 'service',
'description': 'description',
'enabled': True,
'domain_id': DEFAULT_DOMAIN_ID
}
]
# NOTE(ja): a role of keystone_admin and attribute "is_admin" is done in setUp
USERS = [
{
'id': 'foo',
'name': 'FOO',
'domain_id': DEFAULT_DOMAIN_ID,
'password': 'foo2',
'tenants': ['bar'],
'enabled': True,
'email': 'foo@bar.com',
}, {
'id': 'two',
'name': 'TWO',
'domain_id': DEFAULT_DOMAIN_ID,
'password': 'two2',
'email': 'two@example.com',
'enabled': True,
'tenant_id': 'baz',
'tenants': ['baz'],
'email': 'two@three.com',
}, {
'id': 'badguy',
'name': 'BadGuy',
'domain_id': DEFAULT_DOMAIN_ID,
'password': 'bad',
'email': 'bad@guy.com',
'enabled': False,
'tenant_id': 'baz',
'tenants': ['baz'],
'email': 'badguy@goodguy.com',
}, {
'id': 'sna',
'name': 'SNA',
'domain_id': DEFAULT_DOMAIN_ID,
'password': 'snafu',
'enabled': True,
'tenants': ['bar'],
'email': 'sna@snl.coom',
}
]
METADATA = [
{
'user_id': 'sna',
'tenant_id': 'mtu',
}
]
ROLES = [
{
'id': 'admin',
'name': 'admin',
}, {
'id': 'member',
'name': 'Member',
}, {
'id': CONF.member_role_id,
'name': CONF.member_role_name,
}, {
'id': 'other',
'name': 'Other',
}, {
'id': 'browser',
'name': 'Browser',
}, {
'id': 'writer',
'name': 'Writer',
}, {
'id': 'service',
'name': 'Service',
}
]
DOMAINS = [
{
'id': DEFAULT_DOMAIN_ID,
'name': 'Default',
'enabled': True,
'description': 'Owns users and tenants (i.e. projects) available '
'on Identity API v2.'
}
]