summaryrefslogtreecommitdiffstats
path: root/src/providers/ipa/ipa_access.h
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2011-06-06 22:26:28 -0400
committerStephen Gallagher <sgallagh@redhat.com>2011-08-04 10:28:14 -0400
commit6d7450e996e7c699aebf12422cc7080a0782b9ae (patch)
treede1c1245e0b888d80493f859c79938ba37d5e1fb /src/providers/ipa/ipa_access.h
parent47985a7b3a1a4c00b38350692197ce360e5e36ef (diff)
downloadsssd-6d7450e996e7c699aebf12422cc7080a0782b9ae.tar.gz
sssd-6d7450e996e7c699aebf12422cc7080a0782b9ae.tar.xz
sssd-6d7450e996e7c699aebf12422cc7080a0782b9ae.zip
Rewrite HBAC rule evaluator
Add helper function msgs2attrs_array This function converts a list of ldb_messages into a list of sysdb_attrs. Conflicts: src/providers/ldap/ldap_common.c src/providers/ldap/ldap_common.h Add HBAC evaluator and tests Add helper functions for looking up HBAC rule components Remove old HBAC implementation Add new HBAC lookup and evaluation routines Conflicts: Makefile.am Add ipa_hbac_refresh option This option describes the time between refreshes of the HBAC rules on the IPA server. Add ipa_hbac_treat_deny_as option By default, we will treat the presence of any DENY rule as denying all users. This option will allow the admin to explicitly ignore DENY rules during a transitional period. Treat NULL or empty rhost as unknown Previously, we were assuming this meant it was coming from the localhost, but this is not a safe assumption. We will now treat it as unknown and it will fail to match any rule that requires a specified srchost or group of srchosts. libipa_hbac: Support case-insensitive comparisons with UTF8 UTF8 HBAC test Fix memory leak in ipa_hbac_evaluate_rules https://fedorahosted.org/sssd/ticket/933 Fix incorrect NULL check in ipa_hbac_common.c https://fedorahosted.org/sssd/ticket/936 Require matched version and release for libipa_hbac Add rule validator to libipa_hbac https://fedorahosted.org/sssd/ticket/943
Diffstat (limited to 'src/providers/ipa/ipa_access.h')
-rw-r--r--src/providers/ipa/ipa_access.h31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/providers/ipa/ipa_access.h b/src/providers/ipa/ipa_access.h
index 52b2f0707..2a6bdad50 100644
--- a/src/providers/ipa/ipa_access.h
+++ b/src/providers/ipa/ipa_access.h
@@ -43,26 +43,37 @@ struct ipa_access_ctx {
struct sdap_id_ctx *sdap_ctx;
struct dp_option *ipa_options;
struct time_rules_ctx *tr_ctx;
+ time_t last_update;
};
struct hbac_ctx {
struct sdap_id_ctx *sdap_ctx;
+ struct ipa_access_ctx *access_ctx;
struct sdap_id_op *sdap_op;
struct dp_option *ipa_options;
struct time_rules_ctx *tr_ctx;
struct be_req *be_req;
struct pam_data *pd;
- struct sysdb_attrs **hbac_hosts_list;
- size_t hbac_hosts_count;
- struct hbac_host_info *remote_hhi;
- struct sysdb_attrs **hbac_rule_list;
- size_t hbac_rule_count;
- const char *user_dn;
- size_t groups_count;
- const char **groups;
+
char *hbac_search_base;
- struct sysdb_attrs **hbac_services_list;
- size_t hbac_services_count;
+
+ /* Hosts */
+ size_t host_count;
+ struct sysdb_attrs **hosts;
+ size_t hostgroup_count;
+ struct sysdb_attrs **hostgroups;
+ struct sysdb_attrs *ipa_host;
+
+ /* Rules */
+ bool get_deny_rules;
+ size_t rule_count;
+ struct sysdb_attrs **rules;
+
+ /* Services */
+ size_t service_count;
+ struct sysdb_attrs **services;
+ size_t servicegroup_count;
+ struct sysdb_attrs **servicegroups;
};
/* Get BE context associated with HBAC context */