'Make a request with keystoneauth as auth
By default, acts as though the user had presented a token
containing the \'admin\' role in X-Auth-Token scoped to the specified
project_id.
:param conf: configuration for keystoneauth
:param project_id: the project_id of the token
:param path: the path of the request
:param method: the method (defaults to GET)
:param user_role: the role of X-Auth-Token (defaults to \'admin\')
:param service_role: the role in X-Service-Token (defaults to none)
:param environ: a dict of items to be added to the request environ
(defaults to none)
:returns: response object'

def _make_authed_request(self, conf, project_id, path, method='GET', user_role='admin', service_role=None, environ=None):

    headers = get_identity_headers(tenant_id=project_id, role=user_role, service_role=service_role)
    (version, account, _junk, _junk) = split_path(path, 2, 4, True)
    info_key = get_cache_key(account)
    env = {'swift.infocache': {info_key: {'status': 0, 'sysmeta': {}}}, 'keystone.token_info': _fake_token_info(version='2')}
    if environ:
        env.update(environ)
    req = Request.blank(path, environ=env, headers=headers)
    req.method = method
    fake_app = FakeApp(iter([('200    OK', {}, '')]))
    test_auth = keystoneauth.filter_factory(conf)(fake_app)
    resp = req.get_response(test_auth)
    return resp
