Fred Dushin wrote:
I don't get something you said ("anybody using it would have to
subclass it anyway").
What I meant was, that if you were going to use the AuthenticationPolicy
object to return information, let's say from getUsername() from any
source other than the result of using the "setUsername()" operation,
you'd have to subclass it changing getUsername() to do something else,
i.e. look it up in a file, get it as result of a login window, etc.
violating it's contract with "setUsername()", etc.
That maybe classified as "re-use", but more like reusing a bus to mow
your lawn.
But more to the point, why isn't the current AuthenticationPolicy
object (leaving aside issues with name choice) just an instance of
your UserPass object (other than the fact that one is an interface and
the other is not, or is that relevant?) That's what I was getting at
by "re-use", BTW.
My use of an interface for UserPass is merely a way to describe what is
being returned. We could very well specify to return one of these
AuthenticationPolicy objects. We might have to modify this anyway to
think to return user password information for the proxy as well. More on
that later.
However, what's the purpose of returning an informational object in this
case in which you have "set" operations?
Also, I am fundamentally opposed to defining an interface when you
mean a struct. Unless I am missing something about why you'd want
UserPass to be an interface, or even anything other than a struct.
You mean "struct" as just a Java class with fields? Sure, but I thought
we had "checkstyle" hogwartiners preventing us from accessing fields
with out "get" operations.
I am all for dynamic loading of something along the lines you propose,
instead of requiring up-front, a priori knowledge of the realm into
which you will be authenticating.
Well, I personally wouldn't do it this way, but that's how the http
protocol works, so we have to make it work that way. I guess I meant, I
wouldn't be using http for an object request response protocol. :) But
the gods are crazy.
-Fred
PS> Not to keep beating the same drum, but apropos to the issue of
in-memory keystores, it might also be good to have the same kind of
thing you propose, but for key retrieval, as well:
<bean
name="{http://....../EndpointName}.http-conduit.key-retrieval-mechanism"
class="...."/>
Why not?
Cheers,
-Polar
On Mar 9, 2007, at 2:37 PM, Polar Humenn wrote:
The AuthenticationPolicy object is only useful for preemptive supply
of user-pass information. The AuthenticationPolicy object is a JAXB
generated object based on some XML schema, so anybody using it would
have to subclass it anyway veering from it's intended use as the
representation of a static XML document.
Also, if the object is created programmatically and put on message
properties, it still cannot react to a 401 response in which a realm
is specified.
Furthermore, if we take "configuration" as being part of the
"application" the only configuration option we have is to place
sensitive username password information in config file conforming to
the AuthenticatonPolicy's corresponding XML schema definition.
If configuration is the "way forward" for "modern programming" I'd
like to see an object like the one proposed to be instantiated for a
particular endpoint, something like so:
<bean name="{http://....../EndpointName}.http-conduit.user-pass-auth"
class="...."/>
Cheers,
-Polar
Fred Dushin wrote:
Would the AuthenticationPolicy object be useful in a 401 challenge
scenario? I have no qualms with re-use of this object, but bear in
mind that we want to be able to support dynamic retrieval of a u/p,
which must be keyed off the realm passed back from the server in a
WWW-authenticate header.
On Mar 9, 2007, at 12:44 PM, Daniel Kulp wrote:
Polar,
On Friday 09 March 2007 12:30, Polar Humenn wrote:
I have a concern about the HTTP Authentication Policy that is
configurable in a CXF deployment. My first concern is that
username and
passwords are stored in a config file. This situation may be
acceptable
in a few cases, but I would like to see alternatives.
There are already alternatives. The AuthenticationPolicy object
can be
created programatically and passed in via the message properties.
If the
object is available on the message, it's used. Likewise for all the
SSLClientPolicy.
The JAX-WS frontend maps the standard JAX-WS USERNAME and PASSWORD
properties onto the AuthenticationPolicy object. However, they
also have
access to the Policy object itself if they want. I'd greatly
prefer to
keep it that way.
--J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727 C: 508-380-7194
[EMAIL PROTECTED]
http://www.dankulp.com/blog