/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Perl - type scalar
Fra : Morten Christensen


Dato : 28-11-10 20:51

Jeg forsøger at få en openvpn-server, som kører på Ubuntu 10.04, til at
tjekke brugernes login imod active directory (faktisk en
Novell-NDS-version af AD, men det er pt. ikke væsentligt

Jeg har fundet et script ude på internettet, som skulle kunne gøre det,
og installeret pakken libauthen-simple-ldap-perl. De to er åbenbart ikke
helt kompatible.

Iflg. OpenVPN's log bliver login'et afvist, fordi et parameter skal være
af typen 'scalar' men er 'undef'.

Har nogen af jeg forslag til, hvordan parametrene bliver af typen 'scalar'?


Jeg har prøvet at udkommentere 'use strict;' men uden ændring i fejlen.


---> start på perl-script <---
#!/usr/bin/perl
#
#
# http://craig.backfire.ca/pages/computers/openvpn-ad-auth
# ubuntu-pakken libauthen-simple-ldap-perl


#use strict;
use Authen::Simple::ActiveDirectory;

my $adserver = '10.11.12.13';
my $principal = 'example.local';


my ($u,$p) = $ENV{qw/USERNAME PASSWORD/};
my $ad = Authen::Simple::ActiveDirectory->new(
host => $adserver,
principal => $principal,
);

exit ( $ad->authenticate($u, $p) ) ? 0 : 128;
---< slut på perl-script >---


---> start på klip fra openvpn.log <---
Parameter #1 (undef) to Authen::Simple::ActiveDirectory::authenticate
was an 'undef', which is not one of the allowed types: scalar
at /usr/share/perl5/Authen/Simple/Adapter.pm line 42
   Authen::Simple::Adapter::authenticate(undef, undef, undef) called at
/etc/openvpn/openvpn-ad-auth.pl line 21
Sun Nov 28 20:00:07 2010 172.23.89.225:53129 TLS Auth Error: Auth
Username/Password verification failed for peer
---< slut på klip fra openvpn.log >---


---> start på klip fra adapter.pm <---
sub authenticate {
my $self = shift;
my $class = ref($self) || $self;

my ( $username, $password ) = Params::Validate::validate_with(
params => \@_,
spec => [
{
type => Params::Validate::SCALAR
},
{
type => Params::Validate::SCALAR
}
],
called => "$class\::authenticate"
);
---< slut på klip fra adapter.pm >---



--
Morten Christensen

 
 
Leif Neland (29-11-2010)
Kommentar
Fra : Leif Neland


Dato : 29-11-10 09:36


"Morten Christensen" <mc@mc.sletmig.cx> skrev i en meddelelse
news:4cf2b291$0$23763$14726298@news.sunsite.dk...
> Jeg forsøger at få en openvpn-server, som kører på Ubuntu 10.04, til at
> tjekke brugernes login imod active directory (faktisk en
> Novell-NDS-version af AD, men det er pt. ikke væsentligt
>
>
> Jeg har prøvet at udkommentere 'use strict;' men uden ændring i fejlen.

Næ, det nytter ikke at prøve at ignorere fejlen, den skal rettes

> ---> start på klip fra openvpn.log <---
> Parameter #1 (undef) to Authen::Simple::ActiveDirectory::authenticate was
> an 'undef', which is not one of the allowed types: scalar
> at /usr/share/perl5/Authen/Simple/Adapter.pm line 42
> Authen::Simple::Adapter::authenticate(undef, undef, undef) called at
> /etc/openvpn/openvpn-ad-auth.pl line 21
> Sun Nov 28 20:00:07 2010 172.23.89.225:53129 TLS Auth Error: Auth
> Username/Password verification failed for peer
> ---< slut på klip fra openvpn.log >---

Du må vel lede baglæns fra /etc/openvpn/openvpn-ad-auth.pl linie 21, for at
se, hvorfor parametrene er (undef, undef, undef)
eller forlæns for at se, hvor dine parametre bliver af.

Leif



Peter Makholm (29-11-2010)
Kommentar
Fra : Peter Makholm


Dato : 29-11-10 10:20

Morten Christensen <mc@mc.sletmig.cx> writes:

> Jeg forsøger at få en openvpn-server, som kører på Ubuntu 10.04, til
> at tjekke brugernes login imod active directory (faktisk en
> Novell-NDS-version af AD, men det er pt. ikke væsentligt
>
> Jeg har fundet et script ude på internettet, som skulle kunne gøre
> det, og installeret pakken libauthen-simple-ldap-perl. De to er
> åbenbart ikke helt kompatible.
>
> Iflg. OpenVPN's log bliver login'et afvist, fordi et parameter skal
> være af typen 'scalar' men er 'undef'.
>
> Har nogen af jeg forslag til, hvordan parametrene bliver af typen 'scalar'?
>
>
> Jeg har prøvet at udkommentere 'use strict;' men uden ændring i fejlen.
>
>
> ---> start på perl-script <---
> #!/usr/bin/perl
> #
> #
> # http://craig.backfire.ca/pages/computers/openvpn-ad-auth
> # ubuntu-pakken libauthen-simple-ldap-perl
>
>
> #use strict;

At udkommenterer 'use strict' vil aldrig fjerne fejl, det vil højst
gøre dem mere obskure at finde.

> use Authen::Simple::ActiveDirectory;
>
> my $adserver = '10.11.12.13';
> my $principal = 'example.local';

Er disse oplysninger korrekte?

> my ($u,$p) = $ENV{qw/USERNAME PASSWORD/};

$u og $p bliver defineret her og henter deres værdier fra dit
environment. Prøv med

$ export USERNAME=kurt
$ export PASSWORD=s3cr1t

i din shell inden du kører scriptet.

> my $ad = Authen::Simple::ActiveDirectory->new(
> host => $adserver,
> principal => $principal,
> );
>
> exit ( $ad->authenticate($u, $p) ) ? 0 : 128;
> ---< slut på perl-script >---
>
>
> ---> start på klip fra openvpn.log <---
> Parameter #1 (undef) to Authen::Simple::ActiveDirectory::authenticate
> was an 'undef', which is not one of the allowed types: scalar
> at /usr/share/perl5/Authen/Simple/Adapter.pm line 42
>    Authen::Simple::Adapter::authenticate(undef, undef, undef)

Det undrer mig lidt at den nulte parameter også er undef. Men prøv at
fikse ovenstående og se om det ikke virker.

//Makholm

Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407849
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste