You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Ryan Slack <ry...@evine.ca> on 2005/12/13 21:53:06 UTC
Jaas authentication service
After fighting with container managed security to get true single-signon
(not just container wide signon), I have decided I need to role my own.
Below is a *quick* overview of a working system I have, but one which I
feel has some potintial, pending input from the wider community.
-------------
The basic idea is to provide an authentication service to login and logout.
This service will be built on HiveMind using Jaas, and can be thought of
as "Jaas Authentication for Tapestry", but could work for any HiveMind
(or IoC) based application.
There are two main services: a CallbackHandlerService, and a
AuthenticationService, along with a handfull of services that implement
CallbackHandler.
The CallbackHandlerService is the CallbackHandler instance used in
createing a new Jaas LoginContext instance. It dispatchs Callbacks to an
appropriate CallbackHandler service, which are registered with it via a
HiveMind contribution point. These deligate CallbackHandlers can be
injected with any information they need, allowing any number of ways to
get the authentication data into the Jaas LoginModules.
The AuthenticationService is mostly a wrapper around a LoginContext, but
also handels any extra authentication tasks, such as storing the Subject
where the application server will find and use it. Since the afore
mentioned CallbackHandler services should know how to get the
information needed, the application need only to call
authenticationService.login(), and wait for the result.
-----------
While I know there are many views on what the best way to handel
authentication and authorization is, I like Jaas, and feel that this
type of system keeps things flexable.
Thx for the input,
--Ryan
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org