JavaScript TypeError mit node.js Modul 'http-auth'

TheGTI

Lt. Commander
Registriert
Apr. 2006
Beiträge
1.703
Hallo,

vielleicht kann mir jemand von euch kurz weiterhelfen:

Ich möchte (jetzt mal ganz verallgemeinert) in node.js mit Hilfe der Module "node-http-proxy" und "http-auth" Authentifizierung auf meinem virtuellen Proxyserver einrichten.

node-http-proxy: https://github.com/nodejitsu/node-http-proxy/
http-auth: https://github.com/gevorg/http-auth

Leider kommt bereits beim ausführen dieses Beispielcodes (direkt von gitHub):

Code:
// HTTP module.
var http = require('http');

// HTTP proxy module.
var httpProxy = require('http-proxy');

// Authentication module.
var auth = require('../lib/http-auth');
var basic = auth.basic({
	realm: "Simon Area.",
	file: __dirname + "/../data/users.htpasswd" // gevorg:gpass, Sarah:testpass ...
});

// Create your proxy server.
httpProxy.createServer(basic, 1338, "127.0.0.1").listen(1337);

// Create your target server.
http.createServer(function (req, res) {
	res.end("Request successfully proxied!");
}).listen(1338);

dieser Fehler hier:

Code:
C:\Users\tester\node_modules\http-auth\lib\server\proxy.coffee:19
      oldProxyRequest = server.proxy.proxyRequest;
                                    ^
TypeError: Cannot read property 'proxyRequest' of undefined
    at Function.httpProxy.createServer (C:\Users\tester\node_modules\http-auth\lib\server\proxy.coffee:19:37)
    at startHttpProxyWithAuthentication (C:\Users\tester\Documents\Aptana Studio 3 Workspace\Proxy\proxy.js:70:12)
    at Object.<anonymous> (C:\Users\christian_blechert\Documents\Aptana Studio 3 Workspace\Proxy\proxy.js:101:4)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3



server.proxy ist aus irgendeinem Grund nicht definiert. Übersehe ich irgendwas? Das Modul "node-http-proxy" ist bei mir natürlich eingebunden. Gleiches gilt für 'htpasswd' und 'htdiggest'.
Ich habe die Vermutung, dass es an der Versionsnummer von "node-http-proxy" liegt. Die oben verwendete Syntax wurde wohl erst Version >0.8 eingeführt, wenn ich das richtig verstanden habe. Nutzt man das Authentifizierungsmodul ohne Proxy (auf einem einfachen http-Server) funktioniert es einwandfrei.

Vielleicht könnte das jemand schnell bei sich lokal testen.

Vielen Dank für Eure Hilfe!
 
Zuletzt bearbeitet:
Package.json korrekt und testet? Das lesen der .htaccess-Geschichten braucht imo auch das fs-Modul. War jedenfalls so als ich das Modul mal genutzt habe und ergibt Sinn.

Wo genau tritt der bei dir Fehler auf? Der Code ist ja nur ein Beispiel von Github.
 
Der Fehler tritt schon beim Ausführen des oben geposteten Beispielcodes auf. (Der ja 1:1 aus der Beispieldatei kopiert wurde.. von den Dateipfaden mal abgesehen) 'node-http-proxy' und 'http-auth' funktionieren beide als eigenständige Module. Nur, wenn man die beiden wie oben gesehen verbinden möchte, kommt dieser Fehler.
Versionen sind die aktuellsten, wie im Momen über npm verteilt werden.

Könntest du dir die beiden Module u.U schnell installieren und den Code von github einfach mal bei dir laufen lassen?
Ergänzung ()

Update:
Ich habe für das Problem direkt im repository auf github einen issue-Thread gestartet.

Das Problem wurde behoben :)

Thanks for reporting, fixed with new version of http-auth#2.2.0, please check it again, also corrected example. Gevorg
 
Zuletzt bearbeitet:
Zurück
Oben