ports/129016: [patch] Fixes to security/p5-Net-OpenID-Server

Alex Kapranoff kappa at rambler-co.ru
Thu Nov 20 14:30:10 UTC 2008


>Number:         129016
>Category:       ports
>Synopsis:       [patch] Fixes to security/p5-Net-OpenID-Server
>Confidential:   no
>Severity:       non-critical
>Priority:       high
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Thu Nov 20 14:30:10 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Alex Kapranoff
>Release:        FreeBSD 5.2-CURRENT i386
>Organization:
Rambler
>Environment:
FreeBSD capella.park.rambler.ru 6.1-PRERELEASE FreeBSD 6.1-PRERELEASE #0: Fri Mar 17 16:20:26 MSK 2006     root at capella.park.rambler.ru:/usr/obj/usr/src/sys/CAPELLA2  i386

	
>Description:

These fixes are reported to the author of the module. He promised to
include them in the next release but there's no progress yet. So why
not include them at least in FreeBSD?

>How-To-Repeat:
	
>Fix:

===> Generating patch
===> Viewing diff with more
diff -ruN --exclude=CVS /usr/ports/security/p5-Net-OpenID-Server/Makefile /usr/home/kappa/work/ports/p5-Net-OpenID-Server/Makefile
--- /usr/ports/security/p5-Net-OpenID-Server/Makefile	2008-10-29 23:43:07.000000000 +0300
+++ /usr/home/kappa/work/ports/p5-Net-OpenID-Server/Makefile	2008-11-20 17:15:45.000000000 +0300
@@ -7,6 +7,7 @@
 
 PORTNAME=	Net-OpenID-Server
 PORTVERSION=	1.01
+PORTREVISION=	1
 CATEGORIES=	security perl5
 MASTER_SITES=	CPAN
 PKGNAMEPREFIX=	p5-
diff -ruN --exclude=CVS /usr/ports/security/p5-Net-OpenID-Server/files/patch-Server.pm /usr/home/kappa/work/ports/p5-Net-OpenID-Server/files/patch-Server.pm
--- /usr/ports/security/p5-Net-OpenID-Server/files/patch-Server.pm	1970-01-01 03:00:00.000000000 +0300
+++ /usr/home/kappa/work/ports/p5-Net-OpenID-Server/files/patch-Server.pm	2008-11-20 17:15:32.000000000 +0300
@@ -0,0 +1,60 @@
+--- Server.pm.orig	2008-10-13 06:36:19.000000000 +0400
++++ lib/Net/OpenID/Server.pm	2008-11-20 17:14:48.000000000 +0300
+@@ -228,8 +228,11 @@
+     my $ns           = delete $opts{'ns'};
+     my $extra_fields = delete $opts{'additional_fields'} || {};
+ 
+-    # verify the trust_root, if provided
+-    if (my $trust_root = delete $opts{'trust_root'}) {
++    # verify the trust_root and realm, if provided
++    if (my $realm = delete $opts{'realm'}) {
++        return undef unless _url_is_under($realm, $return_to);
++        delete $opts{'trust_root'};
++    } elsif (my $trust_root = delete $opts{'trust_root'}) {
+         return undef unless _url_is_under($trust_root, $return_to);
+     }
+     Carp::croak("Unknown options: " . join(", ", keys %opts)) if %opts;
+@@ -357,15 +360,20 @@
+                       $self->_setup_map("identity"),     $identity,
+                       $self->_setup_map("assoc_handle"), $self->args("openid.assoc_handle"),
+                       );
+-    $setup_args{'ns'}  = $self->args('openid.ns') if $self->args('openid.ns');
++    $setup_args{$self->_setup_map('ns')} = $self->args('openid.ns') if $self->args('openid.ns');
+ 
+     my $setup_url = $self->{setup_url} or Carp::croak("No setup_url defined.");
+     _push_url_arg(\$setup_url, %setup_args);
+ 
+     if ($mode eq "checkid_immediate") {
+         my $ret_url = $return_to;
+-        _push_url_arg(\$ret_url, "openid.mode",           "id_res");
+-        _push_url_arg(\$ret_url, "openid.user_setup_url", $setup_url);
++        if ($self->args('openid.ns') eq $OPENID2_NS) {
++            _push_url_arg(\$ret_url, "openid.ns",             $self->args('openid.ns'));
++            _push_url_arg(\$ret_url, "openid.mode",           "setup_needed");
++        } else {
++            _push_url_arg(\$ret_url, "openid.mode",           "id_res");
++            _push_url_arg(\$ret_url, "openid.user_setup_url", $setup_url);
++        }
+         return ("redirect", $ret_url);
+     } else {
+         # the "checkid_setup" mode, where we take control of the user-agent
+@@ -481,6 +489,19 @@
+     # FUTURE: protocol will let people choose their preferred authn scheme,
+     # in which case we see if we support any of them, and override the
+     # default value of HMAC-SHA1
++    
++    if ($self->pargs('openid.ns') eq $OPENID2_NS &&
++        ($self->pargs('openid.assoc_type') ne $assoc_type ||
++        $self->pargs('openid.session_type') ne 'DH-SHA1')) {
++
++        $prop{'ns'}         = $self->pargs('openid.ns') if $self->pargs('openid.ns');
++        $prop{'error_code'} = "unsupported-type";
++        $prop{'error'}      = "This server support $assoc_type only.";
++        $prop{'assoc_type'} = $assoc_type;
++        $prop{'session_type'} = "DH-SHA1";
++
++        return $self->_serialized_props(\%prop);
++    }
+ 
+     my ($assoc_handle, $secret, $expires) =
+         $self->_generate_association(type => $assoc_type);
===> Done
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list