You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlrpc-dev@ws.apache.org by Ellers <el...@ellerton.net> on 2005/02/16 21:15:05 UTC
AuthInvoker class - comments?
Hi all
The company I work for has been ramping up its use of XML-RPC lately -
there's really a lot of activity going on there now :)
We need to use authenticated connections at the office, although we
don't need SSL (we just need to know who did what, not that it be
encrypted).
I may have missed something, but I think there is a need for an
"AuthInvoker" class.
Normally I can define a handler class, like this:
public class SimpleHandler {
public double add( double a, double b ) {
return a+b;
}
}
And then add this class to be a handler as:
SimpleHandler handler = new SimpleHandler( );
m_webserver.addHandler ("simple", handler );
Works great.
I can even connect to the server using normal authentication and the
handler gets called no problem. However, there is no way for the handler
to get the user/password data, or any other context information.
99% of what I need is in the package - including a XmlRpcContext interface.
But I couldn't see a way for my handler to have access to the context
information.
So I added AuthInvoker, by copying the Invoker class and changing about
8 lines.
Now, the SimpleHandler looks like this:
import org.apache.xmlrpc.*;
public class SimpleHandler {
//
// NOTE: use of XmlRpcContext object
//
public String add( double a, double b, XmlRpcContext context ) {
double result = a + b;
// show both the supplied parameter, and the authenticated
String r
= "Hi '"
+ context.getUserName()
+ "', identified by '"
+ context.getPassword()
+ "'. The result of "
+ a
+ " + "
+ b
+ " = "
+ result
;
return r;
}
}
and for this to work, it gets added to the server like this:
SimpleHandler handler = new SimpleHandler( );
m_webserver.addHandler ("simple", new AuthInvoker( handler ));
Now, although I know Java "reasonably", I don't know very much about
servlets and Jetty etc - so I may well be missing something. Please
shout out if so.
But otherwise, would other users find this useful? It makes it easy to
access context information from a "plain" handler object, with a minimum
of programmer effort.
Thanks for any comments :)
Ellers