Je suis SharePoint Developer essayant de faire fonctionner un module Perl avec Subversion, mais je pense que quelque chose ne va pas dans ma syntaxe. J'ai juste besoin d'obtenir le nom d'utilisateur et mot de passe, le passer dans le webservice, obtenir un vrai/faux et authentifier en fonction de cette information. Voici le code du module en Perl:Problèmes de module d'authentification avec Apache 2 et Perl
package Apache2::AuthGetUser; #authenticates users based on bool value from a asmx webservice
use SOAP::Lite;
use Data::Dumper;
use strict;
use warnings;
use Apache2::Access();
use Apache2::RequestRec();
use Apache2::Const ':common';
sub handler {
my $r = shift;
my $username = $r->user;
my ($status, $password) = $r->get_basic_auth_pw;
return $status unless $status == Apache2::Const::OK;
my $endpoint = "http://localhost:2010/CIM.FBAAuthentication/12/template/layouts/wsFBAAuthentication.asmx"; #endpoint
my $namespace = "http://tempuri.org/"; #namespace
my $wsfunction = "AuthenticateUser"; #webservice function
my $webservice = SOAP::Lite
->uri($namespace)
->on_action(sub { join '/', $namespace, $_[1] })
->proxy($endpoint);
#my $method = SOAP::Data->name($wsfunction)
my $method = SOAP::Data->name($wsfunction)
->attr({xmlns => $namespace});
my @params = (SOAP::Data->name('UserName')->value($username)->type(''), SOAP::Data->name('Password')->value($password)->type(''));
my $result = $webservice->call($method=>@params)->result;
if($result ne "true"){
$r->note_basic_auth_failure;
#$r->log_reason($result);
return AUTH_REQUIRED;
}
return Apache2::Const::OK;
}
1;
Si quelqu'un a des suggestions s'il vous plaît faites le moi savoir. Je reçois une telle erreur dans les fichiers Apache Config: Impossible d'appeler la méthode "value" sur une valeur indéfinie sur C: /usr/site/lib/Apache2/AuthGetUser.pm ligne 30. Merci pour tout. Si je reçois ceci pour fonctionner, j'aurai un post de blog à venir.
Il y a quelque chose de visqueux qui se passe encore, ça pourrait être avec la zone supérieure qui reçoit le nom d'utilisateur ... J'ai essayé de lancer $ r-> user ('user') mais je ne pense pas que ça a aidé ... et en ajoutant des types probablement fait quelque chose aussi c'est juste pas encore tout à fait encore là. – MOSSLover