]> git.proxmox.com Git - pve-access-control.git/commitdiff
openid: fix username-claim fallback
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Thu, 25 Nov 2021 06:57:10 +0000 (07:57 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Thu, 25 Nov 2021 06:58:48 +0000 (07:58 +0100)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
src/PVE/API2/OpenId.pm

index 03a7a04bb33ee7a4e4bc9787dc206d58400d5dfb..c838b2cc2377accaff76ec45165025e1e544897f 100644 (file)
@@ -174,19 +174,19 @@ __PACKAGE__->register_method ({
            my $subject = $info->{'sub'};
 
            my $unique_name;
            my $subject = $info->{'sub'};
 
            my $unique_name;
-           if (defined(my $user_attr = $config->{'username-claim'})) {
-               if (defined($info->{$user_attr})) {
-                   $unique_name = $info->{$user_attr};
-               } elsif ($user_attr eq 'subject') { # stay compat with old versions
-                   $unique_name = $subject;
-               } elsif ($user_attr eq 'username') { # stay compat with old versions
-                   my $username = $info->{'preferred_username'};
-                   die "missing claim 'preferred_username'\n" if !defined($username);
-                   $unique_name =  $username;
-               } else {
-                   # neither the attr nor fallback are defined in info..
-                   die "missing configured claim '$user_attr'\n";
-               }
+
+           my $user_attr = $config->{'username-claim'} // 'sub';
+           if (defined($info->{$user_attr})) {
+               $unique_name = $info->{$user_attr};
+           } elsif ($user_attr eq 'subject') { # stay compat with old versions
+               $unique_name = $subject;
+           } elsif ($user_attr eq 'username') { # stay compat with old versions
+               my $username = $info->{'preferred_username'};
+               die "missing claim 'preferred_username'\n" if !defined($username);
+               $unique_name =  $username;
+           } else {
+               # neither the attr nor fallback are defined in info..
+               die "missing configured claim '$user_attr' in returned info object\n";
            }
 
            my $username = "${unique_name}\@${realm}";
            }
 
            my $username = "${unique_name}\@${realm}";