Schrift
[thread]10636[/thread]

Auto Login auf einer Basic Auth seite

Leser: 1


<< >> 10 Einträge, 1 Seite
phonk
 2007-10-23 13:28
#101224 #101224
User since
2007-10-23
5 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich benutzte einen Proxy Server auf dem ein Apache mit mod_perl läuft.

nun gibt es eine Internetseite, die eine Basic Auth Abfrage hat.

Ich möchte nun auf dem Apache Username und Passwort hinterlegen. So das die Seite von den Clients aus ohne Auth abfrage erreicht werden kann.

Hat jemand eine Idee ?

Ich hab schon mal mit LWP etwas probiert, aber ohne Erfolg.
bloonix
 2007-10-23 15:25
#101233 #101233
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
    AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/apache2/user.pwd
Require user foo
Order deny,allow
Deny from all
Allow from localhost
Satisfy any


Bitte beachte hier die Kombination von "Allow" und "Satisfy".
Die Regel "Satisfy any" besagt, das eine der beiden Voraus-
setzungen erfüllt sein muss... entweder localhost oder die
Basic Authentifizierung. In diesem Beispiel braucht sich der
Benutzer, der Anfragen von localhost stellt, sich nicht
authentifizieren, aber alle anderen. Du kannst also statt
localhost das interne Netz freigeben ala

Code: (dl )
Allow from 192.168


Schau aber nochmal in die Doku...

http://buecher.lingoworld.de/apache2/showdir.php?id=680
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
phonk
 2007-10-24 14:02
#101264 #101264
User since
2007-10-23
5 Artikel
BenutzerIn
[default_avatar]
Danke schon mal für die Antwort.

Ich glaube aber meine Frage ist falsch verstanden worden.

Ich habe keinen Zugriff auf den externen Webserver.

Die Verbindung sollte so aussehen:

Client surft interne Apache seite ein (mein Perlscript) -> Perlscript Autentifizert sich mit festen User und Pass an einer externen HTML Seite mit Basic Auth -> Client bekommt somit keine Aufforderung zum Login und soll sich frei auf der Seite bewegen können.

So sollte es sein.
pq
 2007-10-24 14:22
#101266 #101266
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
phonk+2007-10-23 11:28:04--
Ich hab schon mal mit LWP etwas probiert, aber ohne Erfolg.

was genau hast du denn probiert? willst du, dass dir jemand ein fertiges
skript schreibt, oder zeigst du uns mal deinen versuch? es geht hier nicht
darum, deinen code zu verstecken, sondern nur wenn jemand postet, was
er schon gemacht hat, kann man ihm auch vernunftige antworten
gaben. warum? na weil man so sieht, wie weit du bist. einem erfahreren
user gibt man sicher eine andere antwort als einem perl-neuling.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
phonk
 2007-10-24 14:53
#101269 #101269
User since
2007-10-23
5 Artikel
BenutzerIn
[default_avatar]
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package test::login;

use strict;
use Apache::RequestRec ();
use LWP;
use LWP::UserAgent;
my $response = "";

sub handler {
my $r = shift;
$r->content_type('text/html');
$r->rflush; # send the headers out

my $agent = LWP::UserAgent->new;

my $request = HTTP::Request->new(GET =>"http://www.test.com/index.jsp");
$request->authorization_basic('user', 'pass');
$response = $agent->request($request);
$response->is_success or print STDERR "Fehler: ", $response->message, "\n" and die;

$r->print("<meta http-equiv='refresh' content='1;URL=http://www.test.com/index.jsp'>"  );

return Apache::OK;
}

1;


So habe ich es probiert.
pq
 2007-10-24 16:35
#101273 #101273
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
das sieht ja schonmal gut aus. jetzt bitte noch erklären, was "ohne erfolg" heisst, damit es
nicht jeder, der den thread liest, selbst ausprobieren muss.

im übrigen ist das noch nicht das, was du letzten endes willst, oder? mit dem
meta-refresh leitest du den benutzer ja doch wieder auf die geschützte seite weiter
und er muss das passwort eingeben. willst du nicht viel eher den content von $response
ausgeben?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
phonk
 2007-10-24 17:27
#101274 #101274
User since
2007-10-23
5 Artikel
BenutzerIn
[default_avatar]
OK, ich dachte, das mit dem refresh der Anmeldecookie bereits gesetzt sei. und die Anmeldung dann nicht kommt.

Aber wir du schon sagstest, sie kommt trotzdem.

Hast einen Hint für die Ausgabe des content ?
pq
 2007-10-24 17:47
#101276 #101276
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Code (perl): (dl )
print $response->content


woher soll der browser wissen, dass dein perlscript auf dem server sich bei
dem 2. server authentifiziert hat? und woher soll der 2. server wissen, welche
anfrage vorher dein script aufgerufen hat?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
phonk
 2007-10-24 18:06
#101279 #101279
User since
2007-10-23
5 Artikel
BenutzerIn
[default_avatar]
OK, hast recht.

Ich teste es mit content, vielen Dank.

Zur Zeit ist leider der externe Server down ... also werde ich noch etwas warten müssen.

Melde mich dann.
ptk
 2007-10-24 23:56
#101294 #101294
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Besser:
Code (perl): (dl )
$response->decoded_content

Damit wird das Encoding richtig aufgelöst, sowohl Charsets als auch die Komprimierung.
<< >> 10 Einträge, 1 Seite



View all threads created 2007-10-23 13:28.