PROXY_REPOSITORY="$GLITE_LOCATION_VAR/spool/glite-renewd"
+unset creds
+
start()
{
if test -z "$GLITE_USER" ;then
return 1
fi
- if [ -n "$GLITE_HOST_CERT" ]; then
- X509_USER_CERT="$GLITE_HOST_CERT"
- export X509_USER_CERT
- fi
- if [ -n "$GLITE_HOST_KEY" ]; then
- X509_USER_KEY="$GLITE_HOST_KEY"
- export X509_USER_KEY
+ [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ] &&
+ creds="-t $GLITE_HOST_CERT -k $GLITE_HOST_KEY"
+
+ if test -z "$creds"; then
+ if su - $GLITE_USER -c "test -r /etc/grid-security/hostkey.pem -a -r /etc/grid-security/hostcert.pem"; then
+ echo "$0: WARNING: /etc/grid-security/hostkey.pem readable by $GLITE_USER"
+ creds="-t /etc/grid-security/hostcert.pem -k /etc/grid-security/hostkey.pem"
+ fi
fi
+ [ -z "$creds" ] &&
+ echo $0: WARNING: No credentials specified. Using default lookup which is dangerous. >&2
+
echo -n Starting ProxyRenewal Daemon: glite-proxy-renewd ...
if [ ! -d "$PROXY_REPOSITORY" ]; then
fi
su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-proxy-renewd \
- -r $PROXY_REPOSITORY" && echo " done"
+ -r $PROXY_REPOSITORY $creds" && echo " done"
}
stop()
char *cadir = NULL;
char *vomsdir = NULL;
int voms_enabled = 0;
+char *cert = NULL;
+char *key = NULL;
char *vomsconf = "/opt/edg/etc/vomses";
#ifndef NOVOMS
{ "VOMSdir", required_argument, NULL, 'V' },
{ "enable-voms", no_argument, NULL, 'A' },
{ "voms-config", required_argument, NULL, 'G' },
+ { "cert", required_argument, NULL, 't' },
+ { "key", required_argument, NULL, 'k' },
{ NULL, 0, NULL, 0 }
};
repository = EDG_WLPR_REPOSITORY_ROOT;
debug = 0;
- while ((opt = getopt_long(argc, argv, "hvdr:c:C:V:AG:", opts, NULL)) != EOF)
+ while ((opt = getopt_long(argc, argv, "hvdr:c:C:V:AG:t:k:", opts, NULL)) != EOF)
switch (opt) {
case 'h': usage(progname); exit(0);
case 'v': fprintf(stdout, "%s:\t%s\n", progname, rcsid); exit(0);
case 'V': vomsdir = optarg; break;
case 'A': voms_enabled = 1; break;
case 'G': vomsconf = optarg; break;
+ case 't': cert = optarg; break;
+ case 'k': key = optarg; break;
case '?': usage(progname); return 1;
}
openlog(progname, LOG_PID, LOG_DAEMON);
}
+ if (cert)
+ setenv("X509_USER_CERT", cert, 1);
+
+ if (key)
+ setenv("X509_USER_KEY", key, 1);
+
+ if (cadir)
+ setenv("X509_CERT_DIR", cadir, 1);
+
if (voms_enabled) {
char *path;
char *new_path;