On 05/02/13 11:28, Bruno Matos wrote:
Hi Fraser,

I've started a new thread to clean history, I hope you don't mind.
No not at all that makes sense. That's actually quite amusingly appropriate given the nature of the new thread :-D

In the login window, if I use a wrong password it resets all text boxes
(as expected), but if I use a wrong username the browser (chrome) shows
an error page and I have to restart the browser to see the login window
again. (Maybe because it's saving the wrong username in the cache).
At the risk of being slopey shouldered :-) That sounds like it's a behaviour of the browser(s). How does it behave with other application logins?

The authentication stuff that I've implemented to date is, ahem, fairly basic, it uses the org.apache.qpid.restapi.httpserver.Authenticator classes so I basically do:

server.createContext("/qpid/connection", qpidserver).setAuthenticator(authenticator);

in the main QpidRestAPI class and the authenticator is an implementation of com.sun.net.httpserver.BasicAuthenticator.

So the "authentication user interface" such as it is really is just the standard browser specific dialogue that appears when an HTTP 401 Not Authorized response gets sent (that's sent automagically by the BasicAuthenticator class under the covers).

I've just tried the same in Firefox and I'm seeing similar behaviour, so if I go to the main login and type admin as a user name I can try a bunch of passwords and it just keeps clearing, but if I type a random username even with no password at all I get a "The connection was reset".

In Firefox if I do Edit->Preferences->Privacy->clear_all_current_history

It seems to sort things - though not always reliably and I sometimes have to exit FF and restart.

To be honest I'm not an expert in this, but I'm /fairly convinced/ this is "just how browsers behave", though I'd have to admit that it's not terribly friendly :-( I guess that's why a lot of sites use "form based" login. I quite like using the proper security principal - I'm using that to help demultiplex, so between that and UUIDs for connection names I've avoided passing cookies around. I'm not sure of another way to get this passed by the browser without using the default form. If anyone knows a good way then I'm all ears as I think that the default dialogue is pretty ugly (it's OK in mobile Safari, passible in IE and ugly as sin in Firefox :-)).

Ultimately I'd quite like to fire it up over SSL, a bespoke form might be OK then, though TBH it'd be quite cool to do something like symmetric authentication using a client certificate/kerberos, but it's all a bit tedious and I'm no expert, so it'd be a bit of learning and wasn't high on my todo list :-)


PS: I'm using RestAPI as substitution for the command line tools
already. Sometimes I still go to the command line, but it's only because
I'm used too.
That's really great to know I'm so pleased!! Thanks for all the feedback to date, I appreciate it.

Is there anything that you reckon you can do on the command line that you aren't able to do via the GUI? The only things I can think of relate to the qpid-route stuff, I *thought* I'd covered off everything else - but I've been so close to it for so long I'm at risk of not seeing wood for trees....

Hopefully you've seen my posts on the weird "anonymous" broker authentication stuff we've chatted about. It looks like we may be seeing different behaviours there possibly down to different Qpid versions. If I have a ConnectionURL amqp://:@QpidJMS/vhost?brokerlist='tcp://0.0.0.0:5672?sasl_mechs='ANONYMOUS'' it's happy on a broker with --auth yes - I don't even need anonymous:anonymous as username/password, but if I don't include the sasl_mechs bit the broker isn't happy, so either there's some difference in how Qpid versions behave here or you've got something extra in qpidd.conf or the sasl conf?

Either way if I update ConnectionHelper to default to sasl_mechs='ANONYMOUS' if no username has been supplied then that should give the same default behaviour as C++ and python URLs.


Did you ever get a chance to try and get to the bottom of the "refresh time" issue that you'd been seeing. I remain stumped by this and would love to know how things compare in back to back comparisons with qpid-queue-stats and qpid-tool. You said in a previous email that you reckoned qpid-tool was being sluggish too, so that does sort of point to it being something your end such as a loaded network or loaded broker, but I'd really love to know. Until I can reproduce it it's going to be hard to figure out. It'll be interesting to know if you see any difference for connections configured with and without "Disable Events" set and what sort of thing you are seeing in your graphs.

Cheers,
Frase







Reply via email to