diff options
author | Stephen Gallagher <sgallagh@redhat.com> | 2011-06-06 22:26:28 -0400 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2011-08-04 10:28:14 -0400 |
commit | 6d7450e996e7c699aebf12422cc7080a0782b9ae (patch) | |
tree | de1c1245e0b888d80493f859c79938ba37d5e1fb /src/providers/ipa/ipa_access.h | |
parent | 47985a7b3a1a4c00b38350692197ce360e5e36ef (diff) | |
download | sssd-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.h | 31 |
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 */ |