http://bugzilla.novell.com/show_bug.cgi?id=585455
http://bugzilla.novell.com/show_bug.cgi?id=585455#c0 Summary: HttpListener does not handle authentication completely Classification: Mono Product: Mono: Class Libraries Version: SVN Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: System AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- Created an attachment (id=346551) --> (http://bugzilla.novell.com/attachment.cgi?id=346551) fix candidate patch I have been investigating on why HttpListener Basic authentication does not work (as well as others) well, and noticed that it has some misbehavior on Begin/EndGetContext() handling. // ---- repro listener code ---- using System; using System.Net; using System.IO; public class Test { public static void Main () { var l = new HttpListener (); l.AuthenticationSchemes = AuthenticationSchemes.Basic; l.Prefixes.Add ("http://localhost:8080/"); l.Start (); var ir = l.BeginGetContext (null, null); Console.WriteLine ("Type [CR] to continue..."); Console.ReadLine (); var ctx = l.EndGetContext (ir); Console.WriteLine (ctx.User.Identity); var ident = ctx.User.Identity as HttpListenerBasicIdentity; Console.WriteLine (ident.Name); ctx.Response.Close (); } } To test the repro, first compile and start the listener. It will wait for enter key. gmcs listener.cs mono listener.exe And then run wget: wget --http-user=user --http-password=right http://localhost:8080/index.html Enter [CR] on the listener console and it will continue to EndGetContext(). When successfully done, it prints "user". I have a patch (attached) that makes it work to some extent. Basically it is wrong to signal the WaitHandle as if it were finished request processing while it indeed isn't (it's still processing negotiation connection). It successfully passes basic authentication, but on windows it somehow results in weird runtime crash (probably invalid access to thread or network resources). Stacktrace: This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. Even after applying my patch it still fails on WCF authentication samples (olive/samples/wcf/authentication), but it is likely another issue in HttpListener. -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
