From: Shiv Kaushal Date: Mon, 6 Feb 2006 15:38:22 +0000 (+0000) Subject: Added GridSiteDelegationURI directive to allow discovery of the Delegation service... X-Git-Tag: merge_for_3_1_dst~25 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=cc25a448347c03db4a7de3b6f9eba1f37a486415;p=jra1mw.git Added GridSiteDelegationURI directive to allow discovery of the Delegation service by Firefox extension --- diff --git a/org.gridsite.core/src/mod_gridsite.c b/org.gridsite.core/src/mod_gridsite.c index 95c089e..ae4ada7 100644 --- a/org.gridsite.core/src/mod_gridsite.c +++ b/org.gridsite.core/src/mod_gridsite.c @@ -146,6 +146,7 @@ typedef struct int soap2cgi; char *aclformat; char *execmethod; + char *delegationuri; ap_unix_identity_t execugid; apr_fileperms_t diskmode; } mod_gridsite_dir_cfg; /* per-directory config choices */ @@ -584,7 +585,15 @@ char *make_admin_footer(request_rec *r, mod_gridsite_dir_cfg *conf, "GridSite %s\n", VERSION); out = apr_pstrcat(r->pool, out, temp, NULL); } - + + if (conf->delegationuri) + { + temp = apr_psprintf(r->pool, + "
Delegation service active\n", + r->server->server_hostname, conf->delegationuri); + out = apr_pstrcat(r->pool, out, temp, NULL); + + } out = apr_pstrcat(r->pool, out, "\n\n", NULL); return out; @@ -1675,7 +1684,7 @@ static void *create_gridsite_dir_config(apr_pool_t *p, char *path) conf->unzip = NULL; /* GridSiteUnzip file-path */ conf->methods = apr_pstrdup(p, " GET "); - /* GridSiteMethods methods */ + /* GridSiteMethods methods */ conf->editable = apr_pstrdup(p, " txt shtml html htm css js php jsp "); /* GridSiteEditable types */ @@ -1687,7 +1696,8 @@ static void *create_gridsite_dir_config(apr_pool_t *p, char *path) conf->gridhttp = 0; /* GridSiteGridHTTP on/off */ conf->soap2cgi = 0; /* GridSiteSoap2cgi on/off */ conf->aclformat = apr_pstrdup(p, "GACL"); - /* GridSiteACLFormat gacl/xacml */ + /* GridSiteACLFormat gacl/xacml */ + conf->delegationuri = NULL; /* GridSiteDelegationURI URI-value */ conf->execmethod = NULL; /* GridSiteExecMethod nosetuid/suexec/X509DN/directory */ @@ -1722,6 +1732,7 @@ static void *create_gridsite_dir_config(apr_pool_t *p, char *path) conf->gridhttp = UNSET; /* GridSiteGridHTTP on/off */ conf->soap2cgi = UNSET; /* GridSiteSoap2cgi on/off */ conf->aclformat = NULL; /* GridSiteACLFormat gacl/xacml */ + conf->delegationuri = NULL; /* GridSiteDelegationURI URI-value */ conf->execmethod = NULL; /* GridSiteExecMethod */ conf->execugid.uid = UNSET; /* GridSiteUserGroup User Group */ conf->execugid.gid = UNSET; /* ditto */ @@ -1806,6 +1817,9 @@ static void *merge_gridsite_dir_config(apr_pool_t *p, void *vserver, if (direct->aclformat != NULL) conf->aclformat = direct->aclformat; else conf->aclformat = server->aclformat; + if (direct->delegationuri != NULL) conf->delegationuri = direct->delegationuri; + else conf->delegationuri = server->delegationuri; + if (direct->execmethod != NULL) conf->execmethod = direct->execmethod; else conf->execmethod = server->execmethod; @@ -1984,6 +1998,16 @@ static const char *mod_gridsite_take1_cmds(cmd_parms *a, void *cfg, ((mod_gridsite_dir_cfg *) cfg)->aclformat = apr_pstrdup(a->pool, parm); } + + else if (strcasecmp(a->cmd->name, "GridSiteDelegationURI") == 0) + { + if (*parm != '/') return "GridSiteDelegationURI must begin with /"; + + if (*parm != '\0') + ((mod_gridsite_dir_cfg *) cfg)->delegationuri = + apr_pstrdup(a->pool, parm); + + } else if (strcasecmp(a->cmd->name, "GridSiteExecMethod") == 0) { if (strcasecmp(parm, "nosetuid") == 0) @@ -2159,6 +2183,9 @@ static const command_rec mod_gridsite_cmds[] = AP_INIT_TAKE1("GridSiteACLFormat", mod_gridsite_take1_cmds, NULL, OR_FILEINFO, "format to save access control lists in"), + AP_INIT_TAKE1("GridSiteDelegationURI", mod_gridsite_take1_cmds, + NULL, OR_FILEINFO, "location of the delegation service CGI"), + AP_INIT_TAKE1("GridSiteExecMethod", mod_gridsite_take1_cmds, NULL, OR_FILEINFO, "execution strategy used by gsexec"), @@ -2564,6 +2591,11 @@ static int mod_gridsite_perm_handler(request_rec *r) apr_table_setn(env, "GRST_ACL_FORMAT", ((mod_gridsite_dir_cfg *) cfg)->aclformat); + if (((mod_gridsite_dir_cfg *) cfg)->delegationuri != NULL) + apr_table_setn(env, "GRST_DELEGATION_URI", + ((mod_gridsite_dir_cfg *) cfg)->delegationuri); + + if (((mod_gridsite_dir_cfg *) cfg)->execmethod != NULL) { apr_table_setn(env, "GRST_EXEC_METHOD",