test_ad_common.c revision 63b8e826f62d2e8930c872de7d4cc8b5bc15d4a4
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger Jakub Hrozek <jhrozek@redhat.com>
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger Copyright (C) 2013 Red Hat
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger SSSD tests: AD access control filter tests
802014878b7383de536e4fa0ceced1bce3217eadDaniel Couto Vale This program is free software; you can redistribute it and/or modify
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger it under the terms of the GNU General Public License as published by
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger the Free Software Foundation; either version 3 of the License, or
e2586f58230ac2938db5ee91191108988b206e2fEugen Kuksa (at your option) any later version.
492757fbefce7e6aee4a7515983a44d19a542ccchardik This program is distributed in the hope that it will be useful,
7daf1bcad83f7bcb6f4e1076f925664bbd2d4f36hardik but WITHOUT ANY WARRANTY; without even the implied warranty of
492757fbefce7e6aee4a7515983a44d19a542ccchardik MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7daf1bcad83f7bcb6f4e1076f925664bbd2d4f36hardik GNU General Public License for more details.
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger You should have received a copy of the GNU General Public License
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger along with this program. If not, see <http://www.gnu.org/licenses/>.
54e3222dbd97122749ba5bac2a10d9d6ba1a2283Eugen Kuksa/* In order to access opaque types */
7e1eade6e5b88f9a1efa7d3cef366d973ddc1ee4Eugen Kuksa#define KEYTAB_TEST_PRINC TEST_AUTHID"@"REALMNAME
cf6b6be762502d02736a68d9c94fa3cc9977e474Tim Reddehase#define KEYTAB_PATH TESTS_PATH"/keytab_test.keytab"
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger#define ONEWAY_HOST_NAME "ad."ONEWAY_DOMNAME
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger#define ONEWAY_KEYTAB_PATH TESTS_PATH"/oneway_test.keytab"
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger#define ONEWAY_AUTHID "host/"ONEWAY_HOST_NAME
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger#define ONEWAY_TEST_PRINC ONEWAY_AUTHID"@"ONEWAY_DOMNAME
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger#define TEST_DOM1_NAME "test_sysdb_subdomains_1"
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger#define TEST_DOM2_NAME "child2.test_sysdb_subdomains_2"
b27c7f227c8516589a2bd127c0f74338cf56f0b2Julian Kornberger test_ctx->tctx = create_multidom_test_ctx(test_ctx, TESTS_PATH,
2244a7dffeed06ee129d0c94648c6a47615a7a0aEugen Kuksa talloc_get_type(*state, struct ad_sysdb_test_ctx);
555b7fd96768daf9592e7ddbd4217d784b08e451henning mueller test_multidom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, domains);
7b8fe34340b2727bb31fe0be67fdf684e47c3609Tim Reddehasestatic void test_check_if_pac_is_available(void **state)
7cd362a86385a020b8c674cf9199771ae3267359henning mueller talloc_get_type(*state, struct ad_sysdb_test_ctx);
0c07cc350bdb8afe9b01b4340b33d89500a43106Till Mossakowski ret = check_if_pac_is_available(NULL, NULL, NULL, NULL);
0c07cc350bdb8afe9b01b4340b33d89500a43106Till Mossakowski ar = talloc_zero(test_ctx, struct be_acct_req);
2635b9bca67d93aec1bed63d10d5f92fefce06e7Till Mossakowski ret = check_if_pac_is_available(test_ctx, test_ctx->tctx->dom, ar, &msg);
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski ar->filter_value = discard_const(TEST_USER);
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski ret = check_if_pac_is_available(test_ctx, test_ctx->tctx->dom, ar, &msg);
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski ret = sysdb_add_user(test_ctx->tctx->dom, TEST_USER, 123, 456, NULL, NULL,
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski ret = check_if_pac_is_available(test_ctx, test_ctx->tctx->dom, ar, &msg);
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski ret = sysdb_attrs_add_string(attrs, SYSDB_PAC_BLOB, "pac");
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski ret = sysdb_set_user_attr(test_ctx->tctx->dom, TEST_USER, attrs,
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski /* PAC available but too old */
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski ret = check_if_pac_is_available(test_ctx, test_ctx->tctx->dom, ar, &msg);
0c07cc350bdb8afe9b01b4340b33d89500a43106Till Mossakowski ret = sysdb_attrs_add_time_t(attrs, SYSDB_PAC_BLOB_EXPIRE, 123);
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski ret = sysdb_set_user_attr(test_ctx->tctx->dom, TEST_USER, attrs,
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski /* PAC available but still too old */
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski ret = check_if_pac_is_available(test_ctx, test_ctx->tctx->dom, ar, &msg);
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski ret = sysdb_attrs_add_time_t(attrs, SYSDB_PAC_BLOB_EXPIRE, time(NULL) + 10);
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski ret = sysdb_set_user_attr(test_ctx->tctx->dom, TEST_USER, attrs,
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski /* PAC available but still too old */
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski ret = check_if_pac_is_available(test_ctx, test_ctx->tctx->dom, ar, &msg);
1543bf02d52779c4bc29f75de1de4d14636d0e47Till Mossakowski assert_string_equal(ldb_msg_find_attr_as_string(msg, SYSDB_NAME, "x"),
#define TEST_PAC_BASE64 \
"Ji0QH/////////f/////////9/4veKrwAP0AHit/TZyQ/QAf//" \
"/39fn4UneD5l6YxP8w/U0coAAAAA"
int ret;
struct ad_common_test_ctx);
&logon_info);
int ret;
char *user_sid;
char *primary_group_sid;
char **sid_list;
size_t c;
size_t s;
NULL };
struct ad_common_test_ctx);
&idmap_ctx);
&logon_info);
for (s = 0; s < num_sids; s++) {
if (s == num_sids) {
int ret;
struct ad_common_test_ctx);
char *username;
char *user_sid;
char *primary_group_sid;
char **sid_list;
size_t c;
size_t s;
NULL };
&idmap_ctx);
&sid_list);
for (s = 0; s < num_sids; s++) {
if (s == num_sids) {
struct ad_common_test_ctx {
assert_null(s);
int ret;
struct ad_common_test_ctx);
struct ad_common_test_ctx);
call_real_sasl_options = true;
assert_non_null(s);
assert_non_null(s);
assert_non_null(s);
assert_non_null(s);
assert_non_null(s);
assert_non_null(s);
assert_non_null(s);
assert_non_null(s);
struct ad_common_test_ctx);
call_real_sasl_options = true;
assert_non_null(s);
assert_non_null(s);
assert_non_null(s);
assert_non_null(s);
assert_non_null(s);
assert_non_null(s);
struct sdap_options);
struct ad_common_test_ctx);
char *default_primary,
char *default_realm,
const char *keytab_path);
char *default_primary,
char *default_realm,
const char *keytab_path)
if (call_real_sasl_options == true) {
return EOK;
struct ad_common_test_ctx);
struct ad_common_test_ctx);
AD_ENABLE_GC));
AD_ENABLE_GC));
struct ad_common_test_ctx);
struct ad_common_test_ctx);
int opt;
int ret;
switch(opt) {
#ifdef HAVE_NSS
return ret;