[pve-devel] r5741 - pve-manager/trunk/lib/PVE

svn-commits at proxmox.com svn-commits at proxmox.com
Wed Mar 23 06:23:37 CET 2011


Author: dietmar
Date: 2011-03-23 06:23:37 +0100 (Wed, 23 Mar 2011)
New Revision: 5741

Modified:
   pve-manager/trunk/lib/PVE/AuthCookieHandler.pm
   pve-manager/trunk/lib/PVE/Utils.pm
Log:
move ticket code to PVE::Utils


Modified: pve-manager/trunk/lib/PVE/AuthCookieHandler.pm
===================================================================
--- pve-manager/trunk/lib/PVE/AuthCookieHandler.pm	2011-03-22 08:03:26 UTC (rev 5740)
+++ pve-manager/trunk/lib/PVE/AuthCookieHandler.pm	2011-03-23 05:23:37 UTC (rev 5741)
@@ -23,18 +23,6 @@
 use base qw(Apache2::AuthCookie);
 use Encode;
 
-my $secret = (split (/\s/, `md5sum /etc/pve/pve-ssl.key`))[0];
-
-sub sign_soap_ticket {
-    my ($ticket) = @_;
-
-    my ($username, $group, $time, $mac) = split /::/, $ticket;
-
-    my $digest = Digest::SHA1::sha1_hex($username, $group, $time, $mac, $secret);
-
-    return "${ticket}::$digest";
-}
-
 sub authen_cred {
     my $self = shift;
     my $r = shift;
@@ -51,7 +39,7 @@
 	return undef;
     }
 
-    return sign_soap_ticket ($ticket);
+    return PVE::Utils::sign_soap_ticket ($ticket);
 }
 
 sub authen_ses_key {
@@ -61,7 +49,7 @@
 
     my $uri = $r->uri;
 
-    my ($username, $group, $age, $mac) = PVE::Utils::verify_web_ticket ($secret, $session_key);
+    my ($username, $group, $age, $mac) = PVE::Utils::verify_web_ticket ($session_key);
 
     if ($username && $group) {
 
@@ -74,7 +62,7 @@
 	    my $ticket;
 	    eval { 
 		$ticket = PVE::ConfigClient::update_ticket ($session_key); 
-		$session_key = sign_soap_ticket ($ticket);
+		$session_key = PVE::Utils::sign_soap_ticket ($ticket);
 		$self->send_cookie ($r, $session_key);
 	    };
 	    my $err = $@;

Modified: pve-manager/trunk/lib/PVE/Utils.pm
===================================================================
--- pve-manager/trunk/lib/PVE/Utils.pm	2011-03-22 08:03:26 UTC (rev 5740)
+++ pve-manager/trunk/lib/PVE/Utils.pm	2011-03-23 05:23:37 UTC (rev 5741)
@@ -14,6 +14,8 @@
 
 my $clock_ticks = POSIX::sysconf(&POSIX::_SC_CLK_TCK);
 
+my $soap_secret = (split (/\s/, `md5sum /etc/pve/pve-ssl.key`))[0];
+
 # access control
 
 my $accmode = {
@@ -52,6 +54,16 @@
 
 # authentication tickets
 
+sub sign_soap_ticket {
+    my ($ticket) = @_;
+
+    my ($username, $group, $time, $mac) = split(/::/, $ticket);
+
+    my $digest = Digest::SHA1::sha1_hex($username, $group, $time, $mac, $soap_secret);
+
+    return "${ticket}::$digest";
+}
+
 sub load_auth_secret {
     my $secret = (split (/\s/, `md5sum /etc/pve/pve-root-ca.key`))[0];
 
@@ -85,7 +97,7 @@
 
     my $cookie_timeout = 2400; # seconds
 
-    my ($username, $group, $time, $mac) = split /::/, $ticket;
+    my ($username, $group, $time, $mac) = split(/::/, $ticket);
 
     return undef if !verify_username($username);
 
@@ -100,18 +112,18 @@
 }
 
 sub verify_web_ticket {
-    my ($secret, $ticket) = @_;
+    my ($ticket) = @_;
 
     my $cookie_timeout = 2400; # seconds
 
-    my ($username, $group, $time, $mac, $webmac) = split /::/, $ticket;
+    my ($username, $group, $time, $mac, $webmac) = split(/::/, $ticket);
 
     return undef if !verify_username($username);
 
     my $age = time() - $time;
 
     if (($age > -300) && ($age < $cookie_timeout) && 
-	(Digest::SHA1::sha1_hex($username, $group, $time, $mac, $secret) eq $webmac)) {
+	(Digest::SHA1::sha1_hex($username, $group, $time, $mac, $soap_secret) eq $webmac)) {
 	return wantarray ? ($username, $group, $age) : $username;
     }
 



More information about the pve-devel mailing list