Jim,

Thanks for your example that looks like it will do the trick. I was only 
looking at the ApplicationListener as it looked like an elegant solution.

Jonathan,

The services are indeed Spring services that I am seeing the events from, I am 
assuming when the Spring services start they register with the 
ApplicationListener in the context. It must be the order that the AppModule 
initialises items with regards to Spring, I am only guessing though. I wonder 
if its worth investigating further? 

Thanks
David


On 31 Mar 2011, at 03:24, Jonathan Barker wrote:

> Jim,
> 
> I would be interested in seeing your HTTPSessionListener implementation.
> 
> 
> David,
> 
> I'm going to hazard a guess that indeed you would need to do some
> configuration through tapestry-ioc.  Can I assume that the events that you
> do see are from services that you have configured entirely in Spring?
> 
> 
> Regards,
> 
> Jonathan
> 
> 
> On Wed, Mar 30, 2011 at 12:14 PM, Jim O'Callaghan 
> <jc1000...@yahoo.co.uk>wrote:
> 
>> Hi David,
>> 
>> Is there something specific in the ApplicationListener approach you
>> require?  I use TSS and have a login page that in its onSuccess method
>> sends
>> a redirect like so:
>> 
>> @Inject
>> private HttpServletResponse response;
>> .
>> .
>> .
>>         Object onSuccess() throws IOException
>>         {
>>                response.sendRedirect(request.getContextPath() + checkUrl +
>> "?j_username=" +
>>                             login.getUserName() + "&j_password=" +
>> login.getPassword() +
>>                           "&_spring_security_remember_me=" +
>> (login.isRememberMe() ? "checked" : ""));
>> 
>> and then in it’s onActivate method:
>> 
>>           void onActivate(String extra) {
>>               if (extra.equals("failed")) {
>>                  failed = true;
>> 
>> form.recordError(messages.get("login.invalidUsernameOrPassword"));
>>               } else {
>>                     // do your thing
>>                     .
>>                     .
>>                     .
>>           }
>> 
>> 
>> I use a registered listener that implements HTTPSessionListener to update a
>> hashtable of where a user has last been etc. for a kind of dashboard page,
>> and some db calls to update a persisted logged on flag on a user table –
>> would this approach be of any use to you?
>> 
>> Regards,
>> Jim.
>> 
>> From: David Uttley [mailto:dutt...@democracysystems.com]
>> Sent: 30 March 2011 16:29
>> To: Tapestry users
>> Subject: Re: Logon notification
>> 
>> Hi Peter,
>> 
>> If it was as easy as what you suggest I wouldn't have bothered with the
>> mailing list, this is a last resort I don't use these mailing lists lightly
>> only when I  start banging my head against a wall, I had already done the
>> registering of the ApplicationListener. As for lack of detail I am not
>> really sure what to post that would be of help. I would also argue that it
>> is a Tapestry question as I am using Tapestry Spring Security which is
>> configured directly by T5. Spring is reporting events to the
>> ApplicationListener its the events that occur in Tapestry Spring Security
>> that are not appearing. If I use the first example then I get other events
>> from the container but not from TSS.
>> 
>> I have been in contact with the guy from TSS and he told me his Spring
>> knowledge was limited and directed me to the Tapestry mailing board.
>> 
>> From looking through the debugger it appears that TSS has no application
>> listeners to notify when it wishes to send an event. However, Spring has an
>> application listener as I am getting other events from it. Therefore, I am
>> confused how the ApplicationListener is set on TSS, I wonder if I have to
>> specifically add the ApplicationListener for Tapestry in the AppModule. It
>> seems like the TSS is initialised before the Spring context files and
>> annotations.
>> 
>> It looks like TSS has little support and I probably should cut my losses
>> now
>> and remove it and just go for a pure Spring based implementation.
>> 
>> Thanks
>> David
>> 
>> 
>> On 30 Mar 2011, at 16:00, p.stavrini...@albourne.com wrote:
>> 
>>> Hi David,
>>> 
>>> Apart from the lack of details in your question, this is also hardly a
>> Tapestry question. You should direct it to the Spring forums instead, but
>> if
>> this reply helps so be it:
>>> 
>>> You will need in your applicationContext.xml to define a bean that will
>> automatically start receiving events (I assume you know how)... I am not
>> familiar with Spring security, but the API docs are quite clear:
>>> 
>>> 
>> 
>> http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframe
>> work/context/ApplicationListener.html
>>> 
>>> So code that might have looked something like this in the past:
>>> 
>>> public void onApplicationEvent(ApplicationEvent applicationEvent)
>>> {
>>>   if (applicationEvent instanceof AuthenticationSuccessEvent)
>>>   {
>>>       AuthenticationSuccessEvent event = (AuthenticationSuccessEvent)
>> applicationEvent;
>>>       UserDetails userDetails = (UserDetails)
>> event.getAuthentication().getPrincipal();
>>> 
>>>       //notify here now, etc.
>>>   }
>>> }
>>> 
>>> 'In theory' (untested of course) can now be replaced by:
>>> 
>>> public void onApplicationEvent(AuthenticationSuccessEvent successEvent)
>>> {
>>>   UserDetails userDetails = (UserDetails)
>> successEvent.getAuthentication().getPrincipal();
>>>   //notify here etc.
>>> 
>>> }
>>> 
>>> And thats all?!
>>> 
>>> Cheers,
>>> Peter
>>> 
>>> 
>>> 
>>> ----- Original Message -----
>>> From: "David Uttley" <dutt...@democracysystems.com>
>>> To: "Tapestry users" <users@tapestry.apache.org>
>>> Sent: Wednesday, 30 March, 2011 16:50:26 GMT +02:00 Athens, Beirut,
>> Bucharest, Istanbul
>>> Subject: Logon notification
>>> 
>>> So do I have any takers for this problem?
>>> 
>>> Somebody must be recording logins somewhere, I don't have to use Spring
>> to
>> do it.
>>> 
>>> ------Original message
>>> 
>>> I am trying to get spring security to notify me of a successful logon
>> using the Spring ApplicationListener. However, the ApplicationListener
>> doesn't seem to be notified of the events.
>>> 
>>> Any help or pointers will be appreciated.
>>> 
>>> I am using t5.2 Spring 3.0 and the 3.0.0-snapshot of t5 Spring Security.
>>> 
>>> 
>>> -------
>>> 
>>> Thanks
>>> David
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>> 
>> ________________________________________
>> No virus found in this message.
>> Checked by AVG - www.avg.com
>> Version: 10.0.1209 / Virus Database: 1500/3538 - Release Date: 03/29/11
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>> 
>> 
> 
> 
> -- 
> Jonathan Barker
> ITStrategic

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to