Cog::Security::Myproxy - Perl extension for interacting with a Myproxy server.
use Cog::Security::Myproxy;
use Cog::Security::Myproxy;
my $mp = Cog::Security::Myproxy->new(server=>$server);
my $init = $mp->init(
username=>$user,
passphrase=>$l_pass,
myproxy_passphrase=>$my_pass,
cert=>$cert,
key=>$key
);
my $result = $mp->get_delegation(username=>$user,
passphrase=>$my_pass,
out=>$proxy_file);
my @out = $mp->info(username=>$user, proxy=>$proxy_file);
my $change = $mp->change_pass_phrase(username=>$user,
old_passphrase=>$opass,
new_passphrase=>$npass);
my @destroy = $mp->destroy(username=>$user,
proxy=>$proxy_file);
This allows you to interact from perl with a myproxy server that is already running. It allows you to put a proxy on the server, get a proxy from the server, change passphrase, get info on your stored credential, and destory a proxy on the server.
Maytal Dahan, maytal@tacc.utexas.edu Catherine Mills, cmills@sdsc.edu Stephen Mock, mock@sdsc.edu
new()
Description/Usage:
Unsed to instantiate a myproxy object with parameters describing the
myproxy server.
$myproxy = Cog::Security::Myproxy->new(
server=>$server,
[port=>$port] );
Required Arguments:
server - the hostname of the myproxy server (myproxy.yourdomain.edu)
Optional Arguments:
port - the port that the myproxy server is running on. if not specified
it uses the default port
Returns: a Cog::Security::Myproxy object or undef
get_error()
Description/Usage:
Used to return error messages set within the Myproxy object.
It clears the stored error messages as it returns the string.
$myproxy = Cog::Security::Myproxy->new( server=>$server);
$myproxy->get_delegation( bad input etc.... );
$error = $myproxy->get_error();
init()
Description/Usage:
Used to gather a delegated proxy credential from a Myproxy server.
$myproxy = Cog::Security::Myproxy->new(
server=>$server
);
my $init = $myproxy->init(
username=>$username,
passphrase=>$local_passphrase,
myproxy_passphrase=>$myproxy_passphrase,
key=>$path_to_keyfile,
cert=>$path_to_certfile
);
if(defined($init)) { print "yay!\n$init"; }
else { print $mp->get_error(); }
Required Arguments:
username - the myproxy username used to store the credential
cert - the path to the certificate to be used
key - the path to the keyfile to be used
passphrase - the passphrase to the cert and keyfile used to
generate a proxy credential
myproxy_passphrase - the passphrase used to store the credential in
the myproxy server
Optional Arguments:
cred_lifetime - <hours> Lifetime of delegated proxy on
server (default 1 week)
proxy_lifetime - <hours> Lifetime of proxies delegated by
server (default 2 hours)
Returns:
-on success: a scalar containing a message like:
"A proxy valid for 168 hours (7.0 days) for user mock now exists
on wintermute.sdsc.edu."
-on failure: undef (undefined)
Side Effects:
-on failure, call $myproxy->get_error() to receive an error
message.
get_delegation()
Description/Usage:
Used to gather a delegated proxy credential from a Myproxy server.
$myproxy = Cog::Security::Myproxy->new(
server=>$server
);
my $proxyfile = $myproxy->get_delegation(
username=>$username,
passphrase=>$myproxy_passphrase,
out=>'/home/portal/proxies/$user.proxy'
);
Required Arguments: (description below)
username, passphrase
or
auth_cred
Optional Arguments:
username - the myproxy username used to store the credential
passphrase - the passphrase used to store the credential in
the myproxy server
out - the location to create the delegated credential in
-if not specified, this will be put in /tmp/x509up_u[uid]
lifetime - the time in hours that the credential will be valid for
auth_cred - set this to the authorization credential to use to
authenticate to the myproxy server (instead of passphrase)
DN - if set to 'true', then the DN of the auth_cred will be used
Returns:
-on success: a scalar containing the location of the proxy
-on failure: undef (undefined)
Side Effects:
-on failure, call $myproxy->get_error() to receive an error
message.
info()
Description/Usage:
Used to get information about a credential stored in a myproxy server.
$myproxy = Cog::Security::Myproxy->new(
server=>$server
);
my @out = $myproxy->info(
username=>$username,
proxy=>$path_to_proxyfile,
);
Required Arguments:
username - the username associated with the credential in
the myproxy server
proxy - the full path to a live proxy file
Optional Arguments:
Returns:
-on success: an array with the information about the proxy
-on failure: undef (undefined)
destroy()
Description/Usage:
Used to delete a credential from a myproxy server.
$myproxy = Cog::Security::Myproxy->new(
server=>$server
);
my @out = $myproxy->destroy(
username=>$username,
proxy=>$path_to_proxyfile,
);
Required Arguments:
username - the username associated with the credential in
the myproxy server
proxy - the full path to a live proxy file
Returns:
-on success: an array containing a string like:
"Default MyProxy credential for user cartman was
succesfully removed."
-on failure: undef (undefined)
change_pass_phrase()
Description/Usage:
Used to change the passphrase for a credential on a myproxy-server
$myproxy = Cog::Security::Myproxy->new(
server=>$server
);
my $out = $myproxy->change_pass_phrase(
username=>$username,
old_passphrase=>$old_pass,
new_passphrase=>$new_pass
);
Required Arguments:
username - the username associated with the credential in
the myproxy server
old_passphrase - the existing myproxy passphrase
new_passphrase - the new passphrase you want to change to
Returns:
-on success: a scalar containing the string:
"Passphrase changed"
-on failure: undef (undefined)
Cog::lib::Cog::Globus::Job, Cog::lib::Cog::Globus::RSL, Cog::lib::Cog::Globus::Run, Cog::lib::Cog::Globus::URLCopy, Cog::lib::Cog::MDS::Search, Cog::lib::Cog::Security::Cacl, Cog::lib::Cog::Security::Myproxy, Cog::lib::Cog::Security::Proxy, Cog::src::Config, CogUtil::lib::CogUtil::Log, CogUtil::lib::CogUtil::UnixRun, Gridport::lib::Gridport::Authentication, Gridport::lib::Gridport::FileTransfer, Gridport::lib::Gridport::Job, Gridport::lib::Gridport::ProxyForward, Gridport::lib::Gridport::SRB, NWS::lib::NWS, SRB::lib::SRB