|
|
41a6c3 |
Index: modules/aaa/mod_authz_owner.c
|
|
|
41a6c3 |
===================================================================
|
|
|
41a6c3 |
--- a/modules/aaa/mod_authz_owner.c (revision 1420183)
|
|
|
41a6c3 |
+++ b/modules/aaa/mod_authz_owner.c (revision 1420184)
|
|
|
41a6c3 |
@@ -28,9 +28,8 @@
|
|
|
41a6c3 |
#include "http_request.h"
|
|
|
41a6c3 |
|
|
|
41a6c3 |
#include "mod_auth.h"
|
|
|
41a6c3 |
+#include "mod_authz_owner.h"
|
|
|
41a6c3 |
|
|
|
41a6c3 |
-APR_DECLARE_OPTIONAL_FN(char*, authz_owner_get_file_group, (request_rec *r));
|
|
|
41a6c3 |
-
|
|
|
41a6c3 |
static const command_rec authz_owner_cmds[] =
|
|
|
41a6c3 |
{
|
|
|
41a6c3 |
{NULL}
|
|
|
41a6c3 |
Index: modules/aaa/mod_authz_owner.h
|
|
|
41a6c3 |
===================================================================
|
|
|
41a6c3 |
--- a/modules/aaa/mod_authz_owner.h (revision 0)
|
|
|
41a6c3 |
+++ b/modules/aaa/mod_authz_owner.h (revision 1420184)
|
|
|
41a6c3 |
@@ -0,0 +1,27 @@
|
|
|
41a6c3 |
+/* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
|
41a6c3 |
+ * contributor license agreements. See the NOTICE file distributed with
|
|
|
41a6c3 |
+ * this work for additional information regarding copyright ownership.
|
|
|
41a6c3 |
+ * The ASF licenses this file to You under the Apache License, Version 2.0
|
|
|
41a6c3 |
+ * (the "License"); you may not use this file except in compliance with
|
|
|
41a6c3 |
+ * the License. You may obtain a copy of the License at
|
|
|
41a6c3 |
+ *
|
|
|
41a6c3 |
+ * http://www.apache.org/licenses/LICENSE-2.0
|
|
|
41a6c3 |
+ *
|
|
|
41a6c3 |
+ * Unless required by applicable law or agreed to in writing, software
|
|
|
41a6c3 |
+ * distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
41a6c3 |
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
41a6c3 |
+ * See the License for the specific language governing permissions and
|
|
|
41a6c3 |
+ * limitations under the License.
|
|
|
41a6c3 |
+ */
|
|
|
41a6c3 |
+
|
|
|
41a6c3 |
+#ifndef MOD_AUTHZ_OWNER_H
|
|
|
41a6c3 |
+#define MOD_AUTHZ_OWNER_H
|
|
|
41a6c3 |
+
|
|
|
41a6c3 |
+#include "http_request.h"
|
|
|
41a6c3 |
+
|
|
|
41a6c3 |
+/* mod_authz_owner exports an optional function which retrieves the
|
|
|
41a6c3 |
+ * group name of the file identified by r->filename, if available, or
|
|
|
41a6c3 |
+ * else returns NULL. */
|
|
|
41a6c3 |
+APR_DECLARE_OPTIONAL_FN(char*, authz_owner_get_file_group, (request_rec *r));
|
|
|
41a6c3 |
+
|
|
|
41a6c3 |
+#endif /* MOD_AUTHZ_OWNER_H */
|
|
|
41a6c3 |
Index: modules/aaa/mod_authz_groupfile.c
|
|
|
41a6c3 |
===================================================================
|
|
|
41a6c3 |
--- a/modules/aaa/mod_authz_groupfile.c (revision 1420183)
|
|
|
41a6c3 |
+++ b/modules/aaa/mod_authz_groupfile.c (revision 1420184)
|
|
|
41a6c3 |
@@ -55,13 +55,12 @@
|
|
|
41a6c3 |
#include "util_varbuf.h"
|
|
|
41a6c3 |
|
|
|
41a6c3 |
#include "mod_auth.h"
|
|
|
41a6c3 |
+#include "mod_authz_owner.h"
|
|
|
41a6c3 |
|
|
|
41a6c3 |
typedef struct {
|
|
|
41a6c3 |
char *groupfile;
|
|
|
41a6c3 |
} authz_groupfile_config_rec;
|
|
|
41a6c3 |
|
|
|
41a6c3 |
-APR_DECLARE_OPTIONAL_FN(char*, authz_owner_get_file_group, (request_rec *r));
|
|
|
41a6c3 |
-
|
|
|
41a6c3 |
static void *create_authz_groupfile_dir_config(apr_pool_t *p, char *d)
|
|
|
41a6c3 |
{
|
|
|
41a6c3 |
authz_groupfile_config_rec *conf = apr_palloc(p, sizeof(*conf));
|
|
|
41a6c3 |
@@ -200,7 +199,7 @@
|
|
|
41a6c3 |
return AUTHZ_DENIED;
|
|
|
41a6c3 |
}
|
|
|
41a6c3 |
|
|
|
41a6c3 |
-APR_OPTIONAL_FN_TYPE(authz_owner_get_file_group) *authz_owner_get_file_group;
|
|
|
41a6c3 |
+static APR_OPTIONAL_FN_TYPE(authz_owner_get_file_group) *authz_owner_get_file_group;
|
|
|
41a6c3 |
|
|
|
41a6c3 |
static authz_status filegroup_check_authorization(request_rec *r,
|
|
|
41a6c3 |
const char *require_args,
|
|
|
41a6c3 |
@@ -279,10 +278,14 @@
|
|
|
41a6c3 |
NULL,
|
|
|
41a6c3 |
};
|
|
|
41a6c3 |
|
|
|
41a6c3 |
-static void register_hooks(apr_pool_t *p)
|
|
|
41a6c3 |
+
|
|
|
41a6c3 |
+static void authz_groupfile_getfns(void)
|
|
|
41a6c3 |
{
|
|
|
41a6c3 |
authz_owner_get_file_group = APR_RETRIEVE_OPTIONAL_FN(authz_owner_get_file_group);
|
|
|
41a6c3 |
+}
|
|
|
41a6c3 |
|
|
|
41a6c3 |
+static void register_hooks(apr_pool_t *p)
|
|
|
41a6c3 |
+{
|
|
|
41a6c3 |
ap_register_auth_provider(p, AUTHZ_PROVIDER_GROUP, "group",
|
|
|
41a6c3 |
AUTHZ_PROVIDER_VERSION,
|
|
|
41a6c3 |
&authz_group_provider,
|
|
|
41a6c3 |
@@ -291,6 +294,7 @@
|
|
|
41a6c3 |
AUTHZ_PROVIDER_VERSION,
|
|
|
41a6c3 |
&authz_filegroup_provider,
|
|
|
41a6c3 |
AP_AUTH_INTERNAL_PER_CONF);
|
|
|
41a6c3 |
+ ap_hook_optional_fn_retrieve(authz_groupfile_getfns, NULL, NULL, APR_HOOK_MIDDLE);
|
|
|
41a6c3 |
}
|
|
|
41a6c3 |
|
|
|
41a6c3 |
AP_DECLARE_MODULE(authz_groupfile) =
|
|
|
41a6c3 |
Index: modules/aaa/mod_authz_dbm.c
|
|
|
41a6c3 |
===================================================================
|
|
|
41a6c3 |
--- a/modules/aaa/mod_authz_dbm.c (revision 1420183)
|
|
|
41a6c3 |
+++ b/modules/aaa/mod_authz_dbm.c (revision 1420184)
|
|
|
41a6c3 |
@@ -29,6 +29,7 @@
|
|
|
41a6c3 |
#include "http_request.h" /* for ap_hook_(check_user_id | auth_checker)*/
|
|
|
41a6c3 |
|
|
|
41a6c3 |
#include "mod_auth.h"
|
|
|
41a6c3 |
+#include "mod_authz_owner.h"
|
|
|
41a6c3 |
|
|
|
41a6c3 |
typedef struct {
|
|
|
41a6c3 |
const char *grpfile;
|
|
|
41a6c3 |
@@ -35,9 +36,7 @@
|
|
|
41a6c3 |
const char *dbmtype;
|
|
|
41a6c3 |
} authz_dbm_config_rec;
|
|
|
41a6c3 |
|
|
|
41a6c3 |
-APR_DECLARE_OPTIONAL_FN(char*, authz_owner_get_file_group, (request_rec *r));
|
|
|
41a6c3 |
|
|
|
41a6c3 |
-
|
|
|
41a6c3 |
/* This should go into APR; perhaps with some nice
|
|
|
41a6c3 |
* caching/locking/flocking of the open dbm file.
|
|
|
41a6c3 |
*/
|
|
|
41a6c3 |
@@ -199,7 +198,7 @@
|
|
|
41a6c3 |
return AUTHZ_DENIED;
|
|
|
41a6c3 |
}
|
|
|
41a6c3 |
|
|
|
41a6c3 |
-APR_OPTIONAL_FN_TYPE(authz_owner_get_file_group) *authz_owner_get_file_group;
|
|
|
41a6c3 |
+static APR_OPTIONAL_FN_TYPE(authz_owner_get_file_group) *authz_owner_get_file_group;
|
|
|
41a6c3 |
|
|
|
41a6c3 |
static authz_status dbmfilegroup_check_authorization(request_rec *r,
|
|
|
41a6c3 |
const char *require_args,
|
|
|
41a6c3 |
@@ -279,11 +278,13 @@
|
|
|
41a6c3 |
NULL,
|
|
|
41a6c3 |
};
|
|
|
41a6c3 |
|
|
|
41a6c3 |
+static void authz_dbm_getfns(void)
|
|
|
41a6c3 |
+{
|
|
|
41a6c3 |
+ authz_owner_get_file_group = APR_RETRIEVE_OPTIONAL_FN(authz_owner_get_file_group);
|
|
|
41a6c3 |
+}
|
|
|
41a6c3 |
|
|
|
41a6c3 |
static void register_hooks(apr_pool_t *p)
|
|
|
41a6c3 |
{
|
|
|
41a6c3 |
- authz_owner_get_file_group = APR_RETRIEVE_OPTIONAL_FN(authz_owner_get_file_group);
|
|
|
41a6c3 |
-
|
|
|
41a6c3 |
ap_register_auth_provider(p, AUTHZ_PROVIDER_GROUP, "dbm-group",
|
|
|
41a6c3 |
AUTHZ_PROVIDER_VERSION,
|
|
|
41a6c3 |
&authz_dbmgroup_provider,
|
|
|
41a6c3 |
@@ -292,6 +293,7 @@
|
|
|
41a6c3 |
AUTHZ_PROVIDER_VERSION,
|
|
|
41a6c3 |
&authz_dbmfilegroup_provider,
|
|
|
41a6c3 |
AP_AUTH_INTERNAL_PER_CONF);
|
|
|
41a6c3 |
+ ap_hook_optional_fn_retrieve(authz_dbm_getfns, NULL, NULL, APR_HOOK_MIDDLE);
|
|
|
41a6c3 |
}
|
|
|
41a6c3 |
|
|
|
41a6c3 |
AP_DECLARE_MODULE(authz_dbm) =
|