Avatar billede eonix Nybegynder
05. april 2008 - 16:41 Der er 4 kommentarer og
1 løsning

HTTP Authentication i PHP?

Hejsa,

Jeg kunne godt tænke mig at vide hvordan man kan lave et Webservice kald fra PHP til en Webservice som kræver HTTP Authentication.

Jeg kender til denne fikse ting som kontakter en Webservice og giver mig XML responsen tilbage.

    $query_string = "";

    $params = array( 'email' => $RA_USER_EMAIL ,
                'nationcode'  => $cb_customer_national,
                'customerrefno'  => $cb_easycollect_uid,
    );

    foreach ($params as $key => $value) {
            $query_string .= "$key=" . urlencode ($value) . "&";
    }

    $url = "$order_base?$query_string";

    $output = file_get_contents($url);

    $stringData = "setclickandbuycustomerrefno REST Call result: $output\r\n";
    fwrite($fh, $stringData);

Men hvordan laver man et lignende kald til en webservice ser kræver HTTP Authentication.

Jeg har en TICKET/sessionID, som jeg normalt fodre webservicen med - jeg kan f.eks. nemt lave sådan et kald fra .NET og Java, men kan ikke se mig ud af det med PHP.

Håber der er nogle kloge hoveder der kan give mig nogle råd omkring dette.

//EoniX
Avatar billede eonix Nybegynder
05. april 2008 - 16:45 #1
Eller nok nærmere et spørgsmål om hvordan jeg tilføjer Header informationer på mit kald...
Avatar billede eonix Nybegynder
05. april 2008 - 17:10 #2
Finder stille og roligt lidt mere brugbart information til jer:

Her er alfresco's authentication filer - den indeholder functionen der undersøger om Username og Password bliver sendt med - men sørme også muligheden for at sende TICKET med(som jeg har brugt før i .NET og Java).

https://svn.alfresco.com/repos/alfresco-open-mirror/alfresco/HEAD/root/projects/remote-api/source/java/org/alfresco/repo/webdav/auth/AuthenticationFilter.java

Har også fundet en lang artikel fra en person som ønsker at gøre lidt det samme som jeg - han skriver:

"When running as a server module (mod_php) PHP takes care of decoding HTTP basic for you (see HTTP basic authentication in PHP). When a using HTTP basic PHP will automatically populate $_SERVER['PHP_AUTH_USER'] and $_SERVER['PHP_AUTH_PW'] variables with the username and password that were provided. IF and ONLY IF PHP is being run as a server module (like mod_php). If you are running PHP as a CGI then those two variables won’t get created at all, ever, even when using HTTP basic authentication.".

Jeg bruger XAMPP, som er en Apache overbygning, så jeg forventer at jeg har php som et servermodule. Så måske er løsningen inde i PHP's egen dokumentation?

http://us3.php.net/features.http-auth

Der står ret meget omkring headers og forskellelige måder at authenticate på - men bare ikke noget om min ticke$t (ARG_TICKET). Så jeg har altså stadigt brug for jeres hjælp, til at få sat en Ticket på mit kald til Alfresco fra PHP.

Mere info senere :) - byd endeligt ind med løsninger folkens.
Avatar billede eonix Nybegynder
05. april 2008 - 17:11 #3
Avatar billede eonix Nybegynder
05. april 2008 - 17:44 #4
Har formuleret mit spørgsmål på engelsk her - i det officielle Alfresco forum:

http://forums.alfresco.com/viewtopic.php?f=36&t=11843

Skulle andre være interesseret :)
Avatar billede eonix Nybegynder
14. august 2009 - 11:23 #5
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester