You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Lenny Primak <LP...@HOPE.NYC.NY.US> on 2011/09/02 17:10:49 UTC

T5.3 Grid, inPlace Update and expired Sessions

Hi, 
I've looked all over the Internet for this, but nothing works.

I have a basic Grid pulling data from an Entity bean.
Obviously, when session expires, I get the "there is no data to display" message.
What I really want to do is to redirect to the current page, so the user gets to relogin and session
gets re-established.

Here's what I tried:

    @SuppressWarnings("unused")
    @OnEvent(value="inplaceUpdate", component="usersGrid")
    private Object ajaxPageChanged()
    {
        if(request.getSession(false) != null)
        {
            return null;
        }
        else
        {
          return ps.createPageRenderLink(LoginPage.class).;
        }
    }

I get an exception:
Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
	at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)

Thanks for all your help!
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Lenny Primak <lp...@hope.nyc.ny.us>.
I implemented this in my code and it works wonders.
I had to override the Tynamo security login page, which isn't that easy
in a good extensible manner, but this now works.

I still have to monitor the session for expiration though,
because if the session is gone but Shiro's 'remember me' is activated,
the objects will be in a bad state, even though the user is still logged in,
so I wound up using both approaches in my app.

Thanks!

On Sep 11, 2011, at 1:06 PM, Joost Schouten (mailing lists) wrote:

> I am not quite sure if this works for you as we have build our own
> security package that protects page and event access and redirects to
> the loginpage when required. On a loginpage forward we store the
> requested page to be redirected to after login. The trick with the
> AJAX call login forward we solve by an onActivate in the login page as
> follows:
> 
> /**
>     * when a user is redirected to the Logon page through a AJAX
> request after their session has expired,
>     * return an json response that redirects them to the logon page
>     * @return
>     * @throws IOException
>     */
>    @OnEvent(value = EventConstants.ACTIVATE)
>    private Object activate() throws IOException {
>        if(request.isXHR()) {
>            PrintWriter writer = response.getPrintWriter("application/json");
>            Link link = linkSource.createPageRenderLink(Login.class);
>            writer.write("{\n\t\"redirectURL\" : \"" +
> link.toAbsoluteURI() + "\"\n}");
>            writer.close();
>        }
>        return null;
>    }
> 
> Hope it helps,
> Joost
> 
> On Sun, Sep 11, 2011 at 4:06 AM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>> I solved this problem finally by making a component somewhat derivative of
>> tapestry-conversations moderator component.
>> Wasn't easy in the last bit.  I will post the code to wiki shortly.
>> What it does is just redirect to the same page if sessions expires,
>> allowing the user to relogin, or if the 'remember me' feature is used,
>> the page just reloads properly.
>> 
>> Thanks everyone for helping me.
>> 
>> On Sep 10, 2011, at 2:42 PM, Lenny Primak wrote:
>> 
>>> That would be great, but I personally would be very happy with just a redirect to the current page,
>>> which would just get me a login prompt once again,
>>> but I suppose there are deeper tapestry-related javascript issues going on here,
>>> otherwise this problem would have been licked already.
>>> 
>>> On Sep 10, 2011, at 2:37 PM, Fernando Padilla wrote:
>>> 
>>>> Hm..
>>>> 
>>>> Did someone already propose to have Tapestry-Security support a popup-login flow?
>>>> 
>>>> So when tapestry-security hijacks a ajax request, it would return a multizoneupdate that would generate a popup-zone (tapestry doesn't have native support for those yet, but really should!); and would handle the login flow within a popup, and replay the original ajax request after it's done?
>>>> 
>>>> 
>>>> This is a stretch though, since there are a few things needed:
>>>> 
>>>> 1) a zone that support popup or dialog
>>>> 2) security that has a new popup/dialog display option/flow
>>>> 3) a really excited hacker to hack all of this and submit a patch! :)
>>>> 
>>>> 
>>>> On 9/10/11 10:23 AM, Lenny Primak wrote:
>>>>> Did anybody test tapestry-conversation under Tap 5.3 (beta 5?)
>>>>> I am getting ReferenceError: Can't find variable: ConversationModerator
>>>>> The ConversationModerator.js doesn't seem to get included into the Tapestry page,
>>>>> but the component is there.
>>>>> 
>>>>> On Sep 10, 2011, at 12:29 PM, Lenny Primak wrote:
>>>>> 
>>>>>> Thanks, Kalle,
>>>>>> I think this will work.
>>>>>> I would love, if its possible, for tap-security, perhaps? to be able to redirect AJAX requests
>>>>>> correctly to the current page or login page in case the session expired.
>>>>>> That way, it would all work automatically, instead of showing ugly exception on the screen.
>>>>>> I will try your method in the meanwhile, the session end warning sounds like a good idea.
>>>>>> 
>>>>>> On Sep 10, 2011, at 10:52 AM, Kalle Korhonen wrote:
>>>>>> 
>>>>>>> On Sat, Sep 10, 2011 at 2:39 AM, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>> Digging through this a bit deeper, there is an interaction going on here with tapestry-security.
>>>>>>>> When the session expires, the user is no longer logged in, and thus
>>>>>>>> ajax call is being redirected to a login screen, thus the exceptions.
>>>>>>>> But the problem still remains the same, there seems to be no good way
>>>>>>>> to redirect the page to itself when the Grid does inPlace update,
>>>>>>>> and the session is no longer available.
>>>>>>>> Any more thoughts/ideas?
>>>>>>> Sounds like tapestry-security is doing the right thing, no? How I
>>>>>>> would solve the problem, is that either I wouldn't let the session to
>>>>>>> expire or warn the user that the session is about to expire, or a
>>>>>>> combination of both. If you added conversational scope, it'd be
>>>>>>> relatively easy to do (see
>>>>>>> http://tynamo.org/tapestry-conversations+guide for more info).
>>>>>>> 
>>>>>>> Kalle
>>>>>>> 
>>>>>>> 
>>>>>>>> On Sep 10, 2011, at 4:38 AM, Lenny Primak wrote:
>>>>>>>> 
>>>>>>>>> As a matter of fact, I can't get any sort of graceful degradation after session has expired.
>>>>>>>>> 
>>>>>>>>> ----------- Screenshot ------------
>>>>>>>>> <PastedGraphic-1.tiff>
>>>>>>>>> 
>>>>>>>>> // somewhere we trigger session invalidation
>>>>>>>>>       request.getSession(false).invalidate();
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> // now lets try an AJAX event handler to redirect to my index page
>>>>>>>>>   @OnEvent(value = "submit", component = "SearchForm")
>>>>>>>>>   public Object searchCustomer()
>>>>>>>>>   {
>>>>>>>>>           return IndexPage.class;
>>>>>>>>>   }
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Sep 10, 2011, at 1:40 AM, Taha Hafeez wrote:
>>>>>>>>> 
>>>>>>>>>> Hi Lenny
>>>>>>>>>> 
>>>>>>>>>> I handle this issue in a more generic way for all ajax calls.
>>>>>>>>>> 
>>>>>>>>>> http://tapestry.1045711.n5.nabble.com/Tapestry-Zone-and-Expired-Session-td4634714.html#a4634757
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On Sat, Sep 10, 2011 at 10:23 AM, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>>>> I cannot believe that no one has run into that issue.
>>>>>>>>>>> Seems like anyone that's using the AJAX Grid would face it.
>>>>>>>>>>> 
>>>>>>>>>>> Please vote for https://issues.apache.org/jira/browse/TAP5-1634
>>>>>>>>>>> if you care, or if anyone has a workaround, please suggest one.
>>>>>>>>>>> 
>>>>>>>>>>> Thanks
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> Seems to me that this would be a common thing with any of the AJAX components.
>>>>>>>>>>>> Should I open up a JIRA issue?
>>>>>>>>>>>> 
>>>>>>>>>>>> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> I figured that was a simple one.  Should not have thought so.
>>>>>>>>>>>>> all my questions are complicated, otherwise I would have not asked :)
>>>>>>>>>>>> hehehe :)
>>>>>>>>>>>> 
>>>>>>>>>>>>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Oh you are here Thiago!
>>>>>>>>>>>>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> How about my Grid/Sessino invalidation session question?
>>>>>>>>>>>>>> I have no idea . . .
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Thiago H. de Paula Figueiredo
>>>>>>>>>>>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>>>>>>>>>>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>>>>>>>>>>>> http://www.arsmachina.com.br
>>>>>>>>>>>> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>> I've looked all over the Internet for this, but nothing works.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I have a basic Grid pulling data from an Entity bean.
>>>>>>>>>>>>> Obviously, when session expires, I get the "there is no data to display" message.
>>>>>>>>>>>>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>>>>>>>>>>>>> gets re-established.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Here's what I tried:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> @SuppressWarnings("unused")
>>>>>>>>>>>>> @OnEvent(value="inplaceUpdate", component="usersGrid")
>>>>>>>>>>>>> private Object ajaxPageChanged()
>>>>>>>>>>>>> {
>>>>>>>>>>>>>     if(request.getSession(false) != null)
>>>>>>>>>>>>>     {
>>>>>>>>>>>>>         return null;
>>>>>>>>>>>>>     }
>>>>>>>>>>>>>     else
>>>>>>>>>>>>>     {
>>>>>>>>>>>>>       return ps.createPageRenderLink(LoginPage.class).;
>>>>>>>>>>>>>     }
>>>>>>>>>>>>> }
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I get an exception:
>>>>>>>>>>>>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>>>>>>>>>>>>>    at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Thanks for all your help!
>>>>>>>>>>> 
>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> --
>>>>>>>>>> Regards
>>>>>>>>>> 
>>>>>>>>>> Taha Hafeez Siddiqi (tawus)
>>>>>>>>>> http://tawus.wordpress.com
>>>>>>>>>> 
>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>>>>> 
>>>>>>>> 
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>> 
>>>>>> 
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>> 
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Lenny Primak <lp...@hope.nyc.ny.us>.
Thanks Joost. This should work too. I will post this solution in the wiki along with mine. I didn't write the custom login page that plugs into tapestry security yet but this should work 



On Sep 11, 2011, at 1:06 PM, "Joost Schouten (mailing lists)" <jo...@jsportal.com> wrote:

> I am not quite sure if this works for you as we have build our own
> security package that protects page and event access and redirects to
> the loginpage when required. On a loginpage forward we store the
> requested page to be redirected to after login. The trick with the
> AJAX call login forward we solve by an onActivate in the login page as
> follows:
> 
> /**
>     * when a user is redirected to the Logon page through a AJAX
> request after their session has expired,
>     * return an json response that redirects them to the logon page
>     * @return
>     * @throws IOException
>     */
>    @OnEvent(value = EventConstants.ACTIVATE)
>    private Object activate() throws IOException {
>        if(request.isXHR()) {
>            PrintWriter writer = response.getPrintWriter("application/json");
>            Link link = linkSource.createPageRenderLink(Login.class);
>            writer.write("{\n\t\"redirectURL\" : \"" +
> link.toAbsoluteURI() + "\"\n}");
>            writer.close();
>        }
>        return null;
>    }
> 
> Hope it helps,
> Joost
> 
> On Sun, Sep 11, 2011 at 4:06 AM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>> I solved this problem finally by making a component somewhat derivative of
>> tapestry-conversations moderator component.
>> Wasn't easy in the last bit.  I will post the code to wiki shortly.
>> What it does is just redirect to the same page if sessions expires,
>> allowing the user to relogin, or if the 'remember me' feature is used,
>> the page just reloads properly.
>> 
>> Thanks everyone for helping me.
>> 
>> On Sep 10, 2011, at 2:42 PM, Lenny Primak wrote:
>> 
>>> That would be great, but I personally would be very happy with just a redirect to the current page,
>>> which would just get me a login prompt once again,
>>> but I suppose there are deeper tapestry-related javascript issues going on here,
>>> otherwise this problem would have been licked already.
>>> 
>>> On Sep 10, 2011, at 2:37 PM, Fernando Padilla wrote:
>>> 
>>>> Hm..
>>>> 
>>>> Did someone already propose to have Tapestry-Security support a popup-login flow?
>>>> 
>>>> So when tapestry-security hijacks a ajax request, it would return a multizoneupdate that would generate a popup-zone (tapestry doesn't have native support for those yet, but really should!); and would handle the login flow within a popup, and replay the original ajax request after it's done?
>>>> 
>>>> 
>>>> This is a stretch though, since there are a few things needed:
>>>> 
>>>> 1) a zone that support popup or dialog
>>>> 2) security that has a new popup/dialog display option/flow
>>>> 3) a really excited hacker to hack all of this and submit a patch! :)
>>>> 
>>>> 
>>>> On 9/10/11 10:23 AM, Lenny Primak wrote:
>>>>> Did anybody test tapestry-conversation under Tap 5.3 (beta 5?)
>>>>> I am getting ReferenceError: Can't find variable: ConversationModerator
>>>>> The ConversationModerator.js doesn't seem to get included into the Tapestry page,
>>>>> but the component is there.
>>>>> 
>>>>> On Sep 10, 2011, at 12:29 PM, Lenny Primak wrote:
>>>>> 
>>>>>> Thanks, Kalle,
>>>>>> I think this will work.
>>>>>> I would love, if its possible, for tap-security, perhaps? to be able to redirect AJAX requests
>>>>>> correctly to the current page or login page in case the session expired.
>>>>>> That way, it would all work automatically, instead of showing ugly exception on the screen.
>>>>>> I will try your method in the meanwhile, the session end warning sounds like a good idea.
>>>>>> 
>>>>>> On Sep 10, 2011, at 10:52 AM, Kalle Korhonen wrote:
>>>>>> 
>>>>>>> On Sat, Sep 10, 2011 at 2:39 AM, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>> Digging through this a bit deeper, there is an interaction going on here with tapestry-security.
>>>>>>>> When the session expires, the user is no longer logged in, and thus
>>>>>>>> ajax call is being redirected to a login screen, thus the exceptions.
>>>>>>>> But the problem still remains the same, there seems to be no good way
>>>>>>>> to redirect the page to itself when the Grid does inPlace update,
>>>>>>>> and the session is no longer available.
>>>>>>>> Any more thoughts/ideas?
>>>>>>> Sounds like tapestry-security is doing the right thing, no? How I
>>>>>>> would solve the problem, is that either I wouldn't let the session to
>>>>>>> expire or warn the user that the session is about to expire, or a
>>>>>>> combination of both. If you added conversational scope, it'd be
>>>>>>> relatively easy to do (see
>>>>>>> http://tynamo.org/tapestry-conversations+guide for more info).
>>>>>>> 
>>>>>>> Kalle
>>>>>>> 
>>>>>>> 
>>>>>>>> On Sep 10, 2011, at 4:38 AM, Lenny Primak wrote:
>>>>>>>> 
>>>>>>>>> As a matter of fact, I can't get any sort of graceful degradation after session has expired.
>>>>>>>>> 
>>>>>>>>> ----------- Screenshot ------------
>>>>>>>>> <PastedGraphic-1.tiff>
>>>>>>>>> 
>>>>>>>>> // somewhere we trigger session invalidation
>>>>>>>>>       request.getSession(false).invalidate();
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> // now lets try an AJAX event handler to redirect to my index page
>>>>>>>>>   @OnEvent(value = "submit", component = "SearchForm")
>>>>>>>>>   public Object searchCustomer()
>>>>>>>>>   {
>>>>>>>>>           return IndexPage.class;
>>>>>>>>>   }
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Sep 10, 2011, at 1:40 AM, Taha Hafeez wrote:
>>>>>>>>> 
>>>>>>>>>> Hi Lenny
>>>>>>>>>> 
>>>>>>>>>> I handle this issue in a more generic way for all ajax calls.
>>>>>>>>>> 
>>>>>>>>>> http://tapestry.1045711.n5.nabble.com/Tapestry-Zone-and-Expired-Session-td4634714.html#a4634757
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On Sat, Sep 10, 2011 at 10:23 AM, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>>>> I cannot believe that no one has run into that issue.
>>>>>>>>>>> Seems like anyone that's using the AJAX Grid would face it.
>>>>>>>>>>> 
>>>>>>>>>>> Please vote for https://issues.apache.org/jira/browse/TAP5-1634
>>>>>>>>>>> if you care, or if anyone has a workaround, please suggest one.
>>>>>>>>>>> 
>>>>>>>>>>> Thanks
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> Seems to me that this would be a common thing with any of the AJAX components.
>>>>>>>>>>>> Should I open up a JIRA issue?
>>>>>>>>>>>> 
>>>>>>>>>>>> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> I figured that was a simple one.  Should not have thought so.
>>>>>>>>>>>>> all my questions are complicated, otherwise I would have not asked :)
>>>>>>>>>>>> hehehe :)
>>>>>>>>>>>> 
>>>>>>>>>>>>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Oh you are here Thiago!
>>>>>>>>>>>>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> How about my Grid/Sessino invalidation session question?
>>>>>>>>>>>>>> I have no idea . . .
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Thiago H. de Paula Figueiredo
>>>>>>>>>>>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>>>>>>>>>>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>>>>>>>>>>>> http://www.arsmachina.com.br
>>>>>>>>>>>> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>> I've looked all over the Internet for this, but nothing works.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I have a basic Grid pulling data from an Entity bean.
>>>>>>>>>>>>> Obviously, when session expires, I get the "there is no data to display" message.
>>>>>>>>>>>>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>>>>>>>>>>>>> gets re-established.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Here's what I tried:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> @SuppressWarnings("unused")
>>>>>>>>>>>>> @OnEvent(value="inplaceUpdate", component="usersGrid")
>>>>>>>>>>>>> private Object ajaxPageChanged()
>>>>>>>>>>>>> {
>>>>>>>>>>>>>     if(request.getSession(false) != null)
>>>>>>>>>>>>>     {
>>>>>>>>>>>>>         return null;
>>>>>>>>>>>>>     }
>>>>>>>>>>>>>     else
>>>>>>>>>>>>>     {
>>>>>>>>>>>>>       return ps.createPageRenderLink(LoginPage.class).;
>>>>>>>>>>>>>     }
>>>>>>>>>>>>> }
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I get an exception:
>>>>>>>>>>>>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>>>>>>>>>>>>>    at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Thanks for all your help!
>>>>>>>>>>> 
>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> --
>>>>>>>>>> Regards
>>>>>>>>>> 
>>>>>>>>>> Taha Hafeez Siddiqi (tawus)
>>>>>>>>>> http://tawus.wordpress.com
>>>>>>>>>> 
>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>>>>> 
>>>>>>>> 
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>> 
>>>>>> 
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>> 
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by "Joost Schouten (mailing lists)" <jo...@jsportal.com>.
I am not quite sure if this works for you as we have build our own
security package that protects page and event access and redirects to
the loginpage when required. On a loginpage forward we store the
requested page to be redirected to after login. The trick with the
AJAX call login forward we solve by an onActivate in the login page as
follows:

/**
     * when a user is redirected to the Logon page through a AJAX
request after their session has expired,
     * return an json response that redirects them to the logon page
     * @return
     * @throws IOException
     */
    @OnEvent(value = EventConstants.ACTIVATE)
    private Object activate() throws IOException {
        if(request.isXHR()) {
            PrintWriter writer = response.getPrintWriter("application/json");
            Link link = linkSource.createPageRenderLink(Login.class);
            writer.write("{\n\t\"redirectURL\" : \"" +
link.toAbsoluteURI() + "\"\n}");
            writer.close();
        }
        return null;
    }

Hope it helps,
Joost

On Sun, Sep 11, 2011 at 4:06 AM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
> I solved this problem finally by making a component somewhat derivative of
> tapestry-conversations moderator component.
> Wasn't easy in the last bit.  I will post the code to wiki shortly.
> What it does is just redirect to the same page if sessions expires,
> allowing the user to relogin, or if the 'remember me' feature is used,
> the page just reloads properly.
>
> Thanks everyone for helping me.
>
> On Sep 10, 2011, at 2:42 PM, Lenny Primak wrote:
>
>> That would be great, but I personally would be very happy with just a redirect to the current page,
>> which would just get me a login prompt once again,
>> but I suppose there are deeper tapestry-related javascript issues going on here,
>> otherwise this problem would have been licked already.
>>
>> On Sep 10, 2011, at 2:37 PM, Fernando Padilla wrote:
>>
>>> Hm..
>>>
>>> Did someone already propose to have Tapestry-Security support a popup-login flow?
>>>
>>> So when tapestry-security hijacks a ajax request, it would return a multizoneupdate that would generate a popup-zone (tapestry doesn't have native support for those yet, but really should!); and would handle the login flow within a popup, and replay the original ajax request after it's done?
>>>
>>>
>>> This is a stretch though, since there are a few things needed:
>>>
>>> 1) a zone that support popup or dialog
>>> 2) security that has a new popup/dialog display option/flow
>>> 3) a really excited hacker to hack all of this and submit a patch! :)
>>>
>>>
>>> On 9/10/11 10:23 AM, Lenny Primak wrote:
>>>> Did anybody test tapestry-conversation under Tap 5.3 (beta 5?)
>>>> I am getting ReferenceError: Can't find variable: ConversationModerator
>>>> The ConversationModerator.js doesn't seem to get included into the Tapestry page,
>>>> but the component is there.
>>>>
>>>> On Sep 10, 2011, at 12:29 PM, Lenny Primak wrote:
>>>>
>>>>> Thanks, Kalle,
>>>>> I think this will work.
>>>>> I would love, if its possible, for tap-security, perhaps? to be able to redirect AJAX requests
>>>>> correctly to the current page or login page in case the session expired.
>>>>> That way, it would all work automatically, instead of showing ugly exception on the screen.
>>>>> I will try your method in the meanwhile, the session end warning sounds like a good idea.
>>>>>
>>>>> On Sep 10, 2011, at 10:52 AM, Kalle Korhonen wrote:
>>>>>
>>>>>> On Sat, Sep 10, 2011 at 2:39 AM, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>> Digging through this a bit deeper, there is an interaction going on here with tapestry-security.
>>>>>>> When the session expires, the user is no longer logged in, and thus
>>>>>>> ajax call is being redirected to a login screen, thus the exceptions.
>>>>>>> But the problem still remains the same, there seems to be no good way
>>>>>>> to redirect the page to itself when the Grid does inPlace update,
>>>>>>> and the session is no longer available.
>>>>>>> Any more thoughts/ideas?
>>>>>> Sounds like tapestry-security is doing the right thing, no? How I
>>>>>> would solve the problem, is that either I wouldn't let the session to
>>>>>> expire or warn the user that the session is about to expire, or a
>>>>>> combination of both. If you added conversational scope, it'd be
>>>>>> relatively easy to do (see
>>>>>> http://tynamo.org/tapestry-conversations+guide for more info).
>>>>>>
>>>>>> Kalle
>>>>>>
>>>>>>
>>>>>>> On Sep 10, 2011, at 4:38 AM, Lenny Primak wrote:
>>>>>>>
>>>>>>>> As a matter of fact, I can't get any sort of graceful degradation after session has expired.
>>>>>>>>
>>>>>>>> ----------- Screenshot ------------
>>>>>>>> <PastedGraphic-1.tiff>
>>>>>>>>
>>>>>>>> // somewhere we trigger session invalidation
>>>>>>>>       request.getSession(false).invalidate();
>>>>>>>>
>>>>>>>>
>>>>>>>> // now lets try an AJAX event handler to redirect to my index page
>>>>>>>>   @OnEvent(value = "submit", component = "SearchForm")
>>>>>>>>   public Object searchCustomer()
>>>>>>>>   {
>>>>>>>>           return IndexPage.class;
>>>>>>>>   }
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sep 10, 2011, at 1:40 AM, Taha Hafeez wrote:
>>>>>>>>
>>>>>>>>> Hi Lenny
>>>>>>>>>
>>>>>>>>> I handle this issue in a more generic way for all ajax calls.
>>>>>>>>>
>>>>>>>>> http://tapestry.1045711.n5.nabble.com/Tapestry-Zone-and-Expired-Session-td4634714.html#a4634757
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Sat, Sep 10, 2011 at 10:23 AM, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>>> I cannot believe that no one has run into that issue.
>>>>>>>>>> Seems like anyone that's using the AJAX Grid would face it.
>>>>>>>>>>
>>>>>>>>>> Please vote for https://issues.apache.org/jira/browse/TAP5-1634
>>>>>>>>>> if you care, or if anyone has a workaround, please suggest one.
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:
>>>>>>>>>>
>>>>>>>>>>> Seems to me that this would be a common thing with any of the AJAX components.
>>>>>>>>>>> Should I open up a JIRA issue?
>>>>>>>>>>>
>>>>>>>>>>> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>>>>
>>>>>>>>>>>> I figured that was a simple one.  Should not have thought so.
>>>>>>>>>>>> all my questions are complicated, otherwise I would have not asked :)
>>>>>>>>>>> hehehe :)
>>>>>>>>>>>
>>>>>>>>>>>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Oh you are here Thiago!
>>>>>>>>>>>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>>>>>>>>>>>>
>>>>>>>>>>>>>> How about my Grid/Sessino invalidation session question?
>>>>>>>>>>>>> I have no idea . . .
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Thiago H. de Paula Figueiredo
>>>>>>>>>>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>>>>>>>>>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>>>>>>>>>>> http://www.arsmachina.com.br
>>>>>>>>>>> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>> I've looked all over the Internet for this, but nothing works.
>>>>>>>>>>>>
>>>>>>>>>>>> I have a basic Grid pulling data from an Entity bean.
>>>>>>>>>>>> Obviously, when session expires, I get the "there is no data to display" message.
>>>>>>>>>>>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>>>>>>>>>>>> gets re-established.
>>>>>>>>>>>>
>>>>>>>>>>>> Here's what I tried:
>>>>>>>>>>>>
>>>>>>>>>>>> @SuppressWarnings("unused")
>>>>>>>>>>>> @OnEvent(value="inplaceUpdate", component="usersGrid")
>>>>>>>>>>>> private Object ajaxPageChanged()
>>>>>>>>>>>> {
>>>>>>>>>>>>     if(request.getSession(false) != null)
>>>>>>>>>>>>     {
>>>>>>>>>>>>         return null;
>>>>>>>>>>>>     }
>>>>>>>>>>>>     else
>>>>>>>>>>>>     {
>>>>>>>>>>>>       return ps.createPageRenderLink(LoginPage.class).;
>>>>>>>>>>>>     }
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> I get an exception:
>>>>>>>>>>>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>>>>>>>>>>>>    at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks for all your help!
>>>>>>>>>>
>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Regards
>>>>>>>>>
>>>>>>>>> Taha Hafeez Siddiqi (tawus)
>>>>>>>>> http://tawus.wordpress.com
>>>>>>>>>
>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>>>>
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Lenny Primak <lp...@hope.nyc.ny.us>.
I solved this problem finally by making a component somewhat derivative of
tapestry-conversations moderator component.  
Wasn't easy in the last bit.  I will post the code to wiki shortly.
What it does is just redirect to the same page if sessions expires,
allowing the user to relogin, or if the 'remember me' feature is used,
the page just reloads properly.

Thanks everyone for helping me.

On Sep 10, 2011, at 2:42 PM, Lenny Primak wrote:

> That would be great, but I personally would be very happy with just a redirect to the current page,
> which would just get me a login prompt once again,
> but I suppose there are deeper tapestry-related javascript issues going on here,
> otherwise this problem would have been licked already.
> 
> On Sep 10, 2011, at 2:37 PM, Fernando Padilla wrote:
> 
>> Hm..
>> 
>> Did someone already propose to have Tapestry-Security support a popup-login flow?
>> 
>> So when tapestry-security hijacks a ajax request, it would return a multizoneupdate that would generate a popup-zone (tapestry doesn't have native support for those yet, but really should!); and would handle the login flow within a popup, and replay the original ajax request after it's done?
>> 
>> 
>> This is a stretch though, since there are a few things needed:
>> 
>> 1) a zone that support popup or dialog
>> 2) security that has a new popup/dialog display option/flow
>> 3) a really excited hacker to hack all of this and submit a patch! :)
>> 
>> 
>> On 9/10/11 10:23 AM, Lenny Primak wrote:
>>> Did anybody test tapestry-conversation under Tap 5.3 (beta 5?)
>>> I am getting ReferenceError: Can't find variable: ConversationModerator
>>> The ConversationModerator.js doesn't seem to get included into the Tapestry page,
>>> but the component is there.
>>> 
>>> On Sep 10, 2011, at 12:29 PM, Lenny Primak wrote:
>>> 
>>>> Thanks, Kalle,
>>>> I think this will work.
>>>> I would love, if its possible, for tap-security, perhaps? to be able to redirect AJAX requests
>>>> correctly to the current page or login page in case the session expired.
>>>> That way, it would all work automatically, instead of showing ugly exception on the screen.
>>>> I will try your method in the meanwhile, the session end warning sounds like a good idea.
>>>> 
>>>> On Sep 10, 2011, at 10:52 AM, Kalle Korhonen wrote:
>>>> 
>>>>> On Sat, Sep 10, 2011 at 2:39 AM, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>> Digging through this a bit deeper, there is an interaction going on here with tapestry-security.
>>>>>> When the session expires, the user is no longer logged in, and thus
>>>>>> ajax call is being redirected to a login screen, thus the exceptions.
>>>>>> But the problem still remains the same, there seems to be no good way
>>>>>> to redirect the page to itself when the Grid does inPlace update,
>>>>>> and the session is no longer available.
>>>>>> Any more thoughts/ideas?
>>>>> Sounds like tapestry-security is doing the right thing, no? How I
>>>>> would solve the problem, is that either I wouldn't let the session to
>>>>> expire or warn the user that the session is about to expire, or a
>>>>> combination of both. If you added conversational scope, it'd be
>>>>> relatively easy to do (see
>>>>> http://tynamo.org/tapestry-conversations+guide for more info).
>>>>> 
>>>>> Kalle
>>>>> 
>>>>> 
>>>>>> On Sep 10, 2011, at 4:38 AM, Lenny Primak wrote:
>>>>>> 
>>>>>>> As a matter of fact, I can't get any sort of graceful degradation after session has expired.
>>>>>>> 
>>>>>>> ----------- Screenshot ------------
>>>>>>> <PastedGraphic-1.tiff>
>>>>>>> 
>>>>>>> // somewhere we trigger session invalidation
>>>>>>>       request.getSession(false).invalidate();
>>>>>>> 
>>>>>>> 
>>>>>>> // now lets try an AJAX event handler to redirect to my index page
>>>>>>>   @OnEvent(value = "submit", component = "SearchForm")
>>>>>>>   public Object searchCustomer()
>>>>>>>   {
>>>>>>>           return IndexPage.class;
>>>>>>>   }
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> On Sep 10, 2011, at 1:40 AM, Taha Hafeez wrote:
>>>>>>> 
>>>>>>>> Hi Lenny
>>>>>>>> 
>>>>>>>> I handle this issue in a more generic way for all ajax calls.
>>>>>>>> 
>>>>>>>> http://tapestry.1045711.n5.nabble.com/Tapestry-Zone-and-Expired-Session-td4634714.html#a4634757
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On Sat, Sep 10, 2011 at 10:23 AM, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>> I cannot believe that no one has run into that issue.
>>>>>>>>> Seems like anyone that's using the AJAX Grid would face it.
>>>>>>>>> 
>>>>>>>>> Please vote for https://issues.apache.org/jira/browse/TAP5-1634
>>>>>>>>> if you care, or if anyone has a workaround, please suggest one.
>>>>>>>>> 
>>>>>>>>> Thanks
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:
>>>>>>>>> 
>>>>>>>>>> Seems to me that this would be a common thing with any of the AJAX components.
>>>>>>>>>> Should I open up a JIRA issue?
>>>>>>>>>> 
>>>>>>>>>> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>>> 
>>>>>>>>>>> I figured that was a simple one.  Should not have thought so.
>>>>>>>>>>> all my questions are complicated, otherwise I would have not asked :)
>>>>>>>>>> hehehe :)
>>>>>>>>>> 
>>>>>>>>>>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> Oh you are here Thiago!
>>>>>>>>>>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>>>>>>>>>>> 
>>>>>>>>>>>>> How about my Grid/Sessino invalidation session question?
>>>>>>>>>>>> I have no idea . . .
>>>>>>>>>>>> 
>>>>>>>>>>>> --
>>>>>>>>>>>> Thiago H. de Paula Figueiredo
>>>>>>>>>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>>>>>>>>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>>>>>>>>>> http://www.arsmachina.com.br
>>>>>>>>>> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
>>>>>>>>>> 
>>>>>>>>>>> Hi,
>>>>>>>>>>> I've looked all over the Internet for this, but nothing works.
>>>>>>>>>>> 
>>>>>>>>>>> I have a basic Grid pulling data from an Entity bean.
>>>>>>>>>>> Obviously, when session expires, I get the "there is no data to display" message.
>>>>>>>>>>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>>>>>>>>>>> gets re-established.
>>>>>>>>>>> 
>>>>>>>>>>> Here's what I tried:
>>>>>>>>>>> 
>>>>>>>>>>> @SuppressWarnings("unused")
>>>>>>>>>>> @OnEvent(value="inplaceUpdate", component="usersGrid")
>>>>>>>>>>> private Object ajaxPageChanged()
>>>>>>>>>>> {
>>>>>>>>>>>     if(request.getSession(false) != null)
>>>>>>>>>>>     {
>>>>>>>>>>>         return null;
>>>>>>>>>>>     }
>>>>>>>>>>>     else
>>>>>>>>>>>     {
>>>>>>>>>>>       return ps.createPageRenderLink(LoginPage.class).;
>>>>>>>>>>>     }
>>>>>>>>>>> }
>>>>>>>>>>> 
>>>>>>>>>>> I get an exception:
>>>>>>>>>>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>>>>>>>>>>>    at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>>>>>>>>>>> 
>>>>>>>>>>> Thanks for all your help!
>>>>>>>>> 
>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> --
>>>>>>>> Regards
>>>>>>>> 
>>>>>>>> Taha Hafeez Siddiqi (tawus)
>>>>>>>> http://tawus.wordpress.com
>>>>>>>> 
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>>> 
>>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Lenny Primak <lp...@hope.nyc.ny.us>.
That would be great, but I personally would be very happy with just a redirect to the current page,
which would just get me a login prompt once again,
but I suppose there are deeper tapestry-related javascript issues going on here,
otherwise this problem would have been licked already.

On Sep 10, 2011, at 2:37 PM, Fernando Padilla wrote:

> Hm..
> 
> Did someone already propose to have Tapestry-Security support a popup-login flow?
> 
> So when tapestry-security hijacks a ajax request, it would return a multizoneupdate that would generate a popup-zone (tapestry doesn't have native support for those yet, but really should!); and would handle the login flow within a popup, and replay the original ajax request after it's done?
> 
> 
> This is a stretch though, since there are a few things needed:
> 
> 1) a zone that support popup or dialog
> 2) security that has a new popup/dialog display option/flow
> 3) a really excited hacker to hack all of this and submit a patch! :)
> 
> 
> On 9/10/11 10:23 AM, Lenny Primak wrote:
>> Did anybody test tapestry-conversation under Tap 5.3 (beta 5?)
>> I am getting ReferenceError: Can't find variable: ConversationModerator
>> The ConversationModerator.js doesn't seem to get included into the Tapestry page,
>> but the component is there.
>> 
>> On Sep 10, 2011, at 12:29 PM, Lenny Primak wrote:
>> 
>>> Thanks, Kalle,
>>> I think this will work.
>>> I would love, if its possible, for tap-security, perhaps? to be able to redirect AJAX requests
>>> correctly to the current page or login page in case the session expired.
>>> That way, it would all work automatically, instead of showing ugly exception on the screen.
>>> I will try your method in the meanwhile, the session end warning sounds like a good idea.
>>> 
>>> On Sep 10, 2011, at 10:52 AM, Kalle Korhonen wrote:
>>> 
>>>> On Sat, Sep 10, 2011 at 2:39 AM, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>> Digging through this a bit deeper, there is an interaction going on here with tapestry-security.
>>>>> When the session expires, the user is no longer logged in, and thus
>>>>> ajax call is being redirected to a login screen, thus the exceptions.
>>>>> But the problem still remains the same, there seems to be no good way
>>>>> to redirect the page to itself when the Grid does inPlace update,
>>>>> and the session is no longer available.
>>>>> Any more thoughts/ideas?
>>>> Sounds like tapestry-security is doing the right thing, no? How I
>>>> would solve the problem, is that either I wouldn't let the session to
>>>> expire or warn the user that the session is about to expire, or a
>>>> combination of both. If you added conversational scope, it'd be
>>>> relatively easy to do (see
>>>> http://tynamo.org/tapestry-conversations+guide for more info).
>>>> 
>>>> Kalle
>>>> 
>>>> 
>>>>> On Sep 10, 2011, at 4:38 AM, Lenny Primak wrote:
>>>>> 
>>>>>> As a matter of fact, I can't get any sort of graceful degradation after session has expired.
>>>>>> 
>>>>>> ----------- Screenshot ------------
>>>>>> <PastedGraphic-1.tiff>
>>>>>> 
>>>>>> // somewhere we trigger session invalidation
>>>>>>        request.getSession(false).invalidate();
>>>>>> 
>>>>>> 
>>>>>> // now lets try an AJAX event handler to redirect to my index page
>>>>>>    @OnEvent(value = "submit", component = "SearchForm")
>>>>>>    public Object searchCustomer()
>>>>>>    {
>>>>>>            return IndexPage.class;
>>>>>>    }
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On Sep 10, 2011, at 1:40 AM, Taha Hafeez wrote:
>>>>>> 
>>>>>>> Hi Lenny
>>>>>>> 
>>>>>>> I handle this issue in a more generic way for all ajax calls.
>>>>>>> 
>>>>>>> http://tapestry.1045711.n5.nabble.com/Tapestry-Zone-and-Expired-Session-td4634714.html#a4634757
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> On Sat, Sep 10, 2011 at 10:23 AM, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>> I cannot believe that no one has run into that issue.
>>>>>>>> Seems like anyone that's using the AJAX Grid would face it.
>>>>>>>> 
>>>>>>>> Please vote for https://issues.apache.org/jira/browse/TAP5-1634
>>>>>>>> if you care, or if anyone has a workaround, please suggest one.
>>>>>>>> 
>>>>>>>> Thanks
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:
>>>>>>>> 
>>>>>>>>> Seems to me that this would be a common thing with any of the AJAX components.
>>>>>>>>> Should I open up a JIRA issue?
>>>>>>>>> 
>>>>>>>>> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>> 
>>>>>>>>>> I figured that was a simple one.  Should not have thought so.
>>>>>>>>>> all my questions are complicated, otherwise I would have not asked :)
>>>>>>>>> hehehe :)
>>>>>>>>> 
>>>>>>>>>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>>>>>>>>>> 
>>>>>>>>>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> Oh you are here Thiago!
>>>>>>>>>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>>>>>>>>>> 
>>>>>>>>>>>> How about my Grid/Sessino invalidation session question?
>>>>>>>>>>> I have no idea . . .
>>>>>>>>>>> 
>>>>>>>>>>> --
>>>>>>>>>>> Thiago H. de Paula Figueiredo
>>>>>>>>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>>>>>>>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>>>>>>>>> http://www.arsmachina.com.br
>>>>>>>>> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
>>>>>>>>> 
>>>>>>>>>> Hi,
>>>>>>>>>> I've looked all over the Internet for this, but nothing works.
>>>>>>>>>> 
>>>>>>>>>> I have a basic Grid pulling data from an Entity bean.
>>>>>>>>>> Obviously, when session expires, I get the "there is no data to display" message.
>>>>>>>>>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>>>>>>>>>> gets re-established.
>>>>>>>>>> 
>>>>>>>>>> Here's what I tried:
>>>>>>>>>> 
>>>>>>>>>>  @SuppressWarnings("unused")
>>>>>>>>>>  @OnEvent(value="inplaceUpdate", component="usersGrid")
>>>>>>>>>>  private Object ajaxPageChanged()
>>>>>>>>>>  {
>>>>>>>>>>      if(request.getSession(false) != null)
>>>>>>>>>>      {
>>>>>>>>>>          return null;
>>>>>>>>>>      }
>>>>>>>>>>      else
>>>>>>>>>>      {
>>>>>>>>>>        return ps.createPageRenderLink(LoginPage.class).;
>>>>>>>>>>      }
>>>>>>>>>>  }
>>>>>>>>>> 
>>>>>>>>>> I get an exception:
>>>>>>>>>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>>>>>>>>>>     at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>>>>>>>>>> 
>>>>>>>>>> Thanks for all your help!
>>>>>>>> 
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> Regards
>>>>>>> 
>>>>>>> Taha Hafeez Siddiqi (tawus)
>>>>>>> http://tawus.wordpress.com
>>>>>>> 
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>> 
>>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Fernando Padilla <fe...@alum.mit.edu>.
Hm..

Did someone already propose to have Tapestry-Security support a 
popup-login flow?

So when tapestry-security hijacks a ajax request, it would return a 
multizoneupdate that would generate a popup-zone (tapestry doesn't have 
native support for those yet, but really should!); and would handle the 
login flow within a popup, and replay the original ajax request after 
it's done?


This is a stretch though, since there are a few things needed:

1) a zone that support popup or dialog
2) security that has a new popup/dialog display option/flow
3) a really excited hacker to hack all of this and submit a patch! :)


On 9/10/11 10:23 AM, Lenny Primak wrote:
> Did anybody test tapestry-conversation under Tap 5.3 (beta 5?)
> I am getting ReferenceError: Can't find variable: ConversationModerator
> The ConversationModerator.js doesn't seem to get included into the Tapestry page,
> but the component is there.
>
> On Sep 10, 2011, at 12:29 PM, Lenny Primak wrote:
>
>> Thanks, Kalle,
>> I think this will work.
>> I would love, if its possible, for tap-security, perhaps? to be able to redirect AJAX requests
>> correctly to the current page or login page in case the session expired.
>> That way, it would all work automatically, instead of showing ugly exception on the screen.
>> I will try your method in the meanwhile, the session end warning sounds like a good idea.
>>
>> On Sep 10, 2011, at 10:52 AM, Kalle Korhonen wrote:
>>
>>> On Sat, Sep 10, 2011 at 2:39 AM, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>> Digging through this a bit deeper, there is an interaction going on here with tapestry-security.
>>>> When the session expires, the user is no longer logged in, and thus
>>>> ajax call is being redirected to a login screen, thus the exceptions.
>>>> But the problem still remains the same, there seems to be no good way
>>>> to redirect the page to itself when the Grid does inPlace update,
>>>> and the session is no longer available.
>>>> Any more thoughts/ideas?
>>> Sounds like tapestry-security is doing the right thing, no? How I
>>> would solve the problem, is that either I wouldn't let the session to
>>> expire or warn the user that the session is about to expire, or a
>>> combination of both. If you added conversational scope, it'd be
>>> relatively easy to do (see
>>> http://tynamo.org/tapestry-conversations+guide for more info).
>>>
>>> Kalle
>>>
>>>
>>>> On Sep 10, 2011, at 4:38 AM, Lenny Primak wrote:
>>>>
>>>>> As a matter of fact, I can't get any sort of graceful degradation after session has expired.
>>>>>
>>>>> ----------- Screenshot ------------
>>>>> <PastedGraphic-1.tiff>
>>>>>
>>>>> // somewhere we trigger session invalidation
>>>>>         request.getSession(false).invalidate();
>>>>>
>>>>>
>>>>> // now lets try an AJAX event handler to redirect to my index page
>>>>>     @OnEvent(value = "submit", component = "SearchForm")
>>>>>     public Object searchCustomer()
>>>>>     {
>>>>>             return IndexPage.class;
>>>>>     }
>>>>>
>>>>>
>>>>>
>>>>> On Sep 10, 2011, at 1:40 AM, Taha Hafeez wrote:
>>>>>
>>>>>> Hi Lenny
>>>>>>
>>>>>> I handle this issue in a more generic way for all ajax calls.
>>>>>>
>>>>>> http://tapestry.1045711.n5.nabble.com/Tapestry-Zone-and-Expired-Session-td4634714.html#a4634757
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sat, Sep 10, 2011 at 10:23 AM, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>> I cannot believe that no one has run into that issue.
>>>>>>> Seems like anyone that's using the AJAX Grid would face it.
>>>>>>>
>>>>>>> Please vote for https://issues.apache.org/jira/browse/TAP5-1634
>>>>>>> if you care, or if anyone has a workaround, please suggest one.
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:
>>>>>>>
>>>>>>>> Seems to me that this would be a common thing with any of the AJAX components.
>>>>>>>> Should I open up a JIRA issue?
>>>>>>>>
>>>>>>>> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>
>>>>>>>>> I figured that was a simple one.  Should not have thought so.
>>>>>>>>> all my questions are complicated, otherwise I would have not asked :)
>>>>>>>> hehehe :)
>>>>>>>>
>>>>>>>>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>>>>>>>>>
>>>>>>>>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak<lp...@hope.nyc.ny.us>  wrote:
>>>>>>>>>>
>>>>>>>>>>> Oh you are here Thiago!
>>>>>>>>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>>>>>>>>>
>>>>>>>>>>> How about my Grid/Sessino invalidation session question?
>>>>>>>>>> I have no idea . . .
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Thiago H. de Paula Figueiredo
>>>>>>>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>>>>>>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>>>>>>>> http://www.arsmachina.com.br
>>>>>>>> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>> I've looked all over the Internet for this, but nothing works.
>>>>>>>>>
>>>>>>>>> I have a basic Grid pulling data from an Entity bean.
>>>>>>>>> Obviously, when session expires, I get the "there is no data to display" message.
>>>>>>>>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>>>>>>>>> gets re-established.
>>>>>>>>>
>>>>>>>>> Here's what I tried:
>>>>>>>>>
>>>>>>>>>   @SuppressWarnings("unused")
>>>>>>>>>   @OnEvent(value="inplaceUpdate", component="usersGrid")
>>>>>>>>>   private Object ajaxPageChanged()
>>>>>>>>>   {
>>>>>>>>>       if(request.getSession(false) != null)
>>>>>>>>>       {
>>>>>>>>>           return null;
>>>>>>>>>       }
>>>>>>>>>       else
>>>>>>>>>       {
>>>>>>>>>         return ps.createPageRenderLink(LoginPage.class).;
>>>>>>>>>       }
>>>>>>>>>   }
>>>>>>>>>
>>>>>>>>> I get an exception:
>>>>>>>>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>>>>>>>>>      at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>>>>>>>>>
>>>>>>>>> Thanks for all your help!
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Regards
>>>>>>
>>>>>> Taha Hafeez Siddiqi (tawus)
>>>>>> http://tawus.wordpress.com
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Lenny Primak <lp...@hope.nyc.ny.us>.
Did anybody test tapestry-conversation under Tap 5.3 (beta 5?)
I am getting ReferenceError: Can't find variable: ConversationModerator
The ConversationModerator.js doesn't seem to get included into the Tapestry page,
but the component is there.

On Sep 10, 2011, at 12:29 PM, Lenny Primak wrote:

> Thanks, Kalle,
> I think this will work.
> I would love, if its possible, for tap-security, perhaps? to be able to redirect AJAX requests
> correctly to the current page or login page in case the session expired.
> That way, it would all work automatically, instead of showing ugly exception on the screen.
> I will try your method in the meanwhile, the session end warning sounds like a good idea.
> 
> On Sep 10, 2011, at 10:52 AM, Kalle Korhonen wrote:
> 
>> On Sat, Sep 10, 2011 at 2:39 AM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>> Digging through this a bit deeper, there is an interaction going on here with tapestry-security.
>>> When the session expires, the user is no longer logged in, and thus
>>> ajax call is being redirected to a login screen, thus the exceptions.
>>> But the problem still remains the same, there seems to be no good way
>>> to redirect the page to itself when the Grid does inPlace update,
>>> and the session is no longer available.
>>> Any more thoughts/ideas?
>> 
>> Sounds like tapestry-security is doing the right thing, no? How I
>> would solve the problem, is that either I wouldn't let the session to
>> expire or warn the user that the session is about to expire, or a
>> combination of both. If you added conversational scope, it'd be
>> relatively easy to do (see
>> http://tynamo.org/tapestry-conversations+guide for more info).
>> 
>> Kalle
>> 
>> 
>>> On Sep 10, 2011, at 4:38 AM, Lenny Primak wrote:
>>> 
>>>> As a matter of fact, I can't get any sort of graceful degradation after session has expired.
>>>> 
>>>> ----------- Screenshot ------------
>>>> <PastedGraphic-1.tiff>
>>>> 
>>>> // somewhere we trigger session invalidation
>>>>        request.getSession(false).invalidate();
>>>> 
>>>> 
>>>> // now lets try an AJAX event handler to redirect to my index page
>>>>    @OnEvent(value = "submit", component = "SearchForm")
>>>>    public Object searchCustomer()
>>>>    {
>>>>            return IndexPage.class;
>>>>    }
>>>> 
>>>> 
>>>> 
>>>> On Sep 10, 2011, at 1:40 AM, Taha Hafeez wrote:
>>>> 
>>>>> Hi Lenny
>>>>> 
>>>>> I handle this issue in a more generic way for all ajax calls.
>>>>> 
>>>>> http://tapestry.1045711.n5.nabble.com/Tapestry-Zone-and-Expired-Session-td4634714.html#a4634757
>>>>> 
>>>>> 
>>>>> 
>>>>> On Sat, Sep 10, 2011 at 10:23 AM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>>>> I cannot believe that no one has run into that issue.
>>>>>> Seems like anyone that's using the AJAX Grid would face it.
>>>>>> 
>>>>>> Please vote for https://issues.apache.org/jira/browse/TAP5-1634
>>>>>> if you care, or if anyone has a workaround, please suggest one.
>>>>>> 
>>>>>> Thanks
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:
>>>>>> 
>>>>>>> Seems to me that this would be a common thing with any of the AJAX components.
>>>>>>> Should I open up a JIRA issue?
>>>>>>> 
>>>>>>> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>>>>> 
>>>>>>>> I figured that was a simple one.  Should not have thought so.
>>>>>>>> all my questions are complicated, otherwise I would have not asked :)
>>>>>>> 
>>>>>>> hehehe :)
>>>>>>> 
>>>>>>>> 
>>>>>>>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>>>>>>>> 
>>>>>>>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>>>>>>> 
>>>>>>>>>> Oh you are here Thiago!
>>>>>>>>> 
>>>>>>>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>>>>>>>> 
>>>>>>>>>> How about my Grid/Sessino invalidation session question?
>>>>>>>>> 
>>>>>>>>> I have no idea . . .
>>>>>>>>> 
>>>>>>>>> --
>>>>>>>>> Thiago H. de Paula Figueiredo
>>>>>>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>>>>>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>>>>>>> http://www.arsmachina.com.br
>>>>>>> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
>>>>>>> 
>>>>>>>> Hi,
>>>>>>>> I've looked all over the Internet for this, but nothing works.
>>>>>>>> 
>>>>>>>> I have a basic Grid pulling data from an Entity bean.
>>>>>>>> Obviously, when session expires, I get the "there is no data to display" message.
>>>>>>>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>>>>>>>> gets re-established.
>>>>>>>> 
>>>>>>>> Here's what I tried:
>>>>>>>> 
>>>>>>>>  @SuppressWarnings("unused")
>>>>>>>>  @OnEvent(value="inplaceUpdate", component="usersGrid")
>>>>>>>>  private Object ajaxPageChanged()
>>>>>>>>  {
>>>>>>>>      if(request.getSession(false) != null)
>>>>>>>>      {
>>>>>>>>          return null;
>>>>>>>>      }
>>>>>>>>      else
>>>>>>>>      {
>>>>>>>>        return ps.createPageRenderLink(LoginPage.class).;
>>>>>>>>      }
>>>>>>>>  }
>>>>>>>> 
>>>>>>>> I get an exception:
>>>>>>>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>>>>>>>>     at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>>>>>>>> 
>>>>>>>> Thanks for all your help!
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> Regards
>>>>> 
>>>>> Taha Hafeez Siddiqi (tawus)
>>>>> http://tawus.wordpress.com
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>> 
>>>> 
>>> 
>>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Lenny Primak <lp...@hope.nyc.ny.us>.
Thanks, Kalle,
I think this will work.
 I would love, if its possible, for tap-security, perhaps? to be able to redirect AJAX requests
correctly to the current page or login page in case the session expired.
That way, it would all work automatically, instead of showing ugly exception on the screen.
I will try your method in the meanwhile, the session end warning sounds like a good idea.

On Sep 10, 2011, at 10:52 AM, Kalle Korhonen wrote:

> On Sat, Sep 10, 2011 at 2:39 AM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>> Digging through this a bit deeper, there is an interaction going on here with tapestry-security.
>> When the session expires, the user is no longer logged in, and thus
>> ajax call is being redirected to a login screen, thus the exceptions.
>> But the problem still remains the same, there seems to be no good way
>> to redirect the page to itself when the Grid does inPlace update,
>> and the session is no longer available.
>> Any more thoughts/ideas?
> 
> Sounds like tapestry-security is doing the right thing, no? How I
> would solve the problem, is that either I wouldn't let the session to
> expire or warn the user that the session is about to expire, or a
> combination of both. If you added conversational scope, it'd be
> relatively easy to do (see
> http://tynamo.org/tapestry-conversations+guide for more info).
> 
> Kalle
> 
> 
>> On Sep 10, 2011, at 4:38 AM, Lenny Primak wrote:
>> 
>>> As a matter of fact, I can't get any sort of graceful degradation after session has expired.
>>> 
>>> ----------- Screenshot ------------
>>> <PastedGraphic-1.tiff>
>>> 
>>> // somewhere we trigger session invalidation
>>>         request.getSession(false).invalidate();
>>> 
>>> 
>>> // now lets try an AJAX event handler to redirect to my index page
>>>     @OnEvent(value = "submit", component = "SearchForm")
>>>     public Object searchCustomer()
>>>     {
>>>             return IndexPage.class;
>>>     }
>>> 
>>> 
>>> 
>>> On Sep 10, 2011, at 1:40 AM, Taha Hafeez wrote:
>>> 
>>>> Hi Lenny
>>>> 
>>>> I handle this issue in a more generic way for all ajax calls.
>>>> 
>>>> http://tapestry.1045711.n5.nabble.com/Tapestry-Zone-and-Expired-Session-td4634714.html#a4634757
>>>> 
>>>> 
>>>> 
>>>> On Sat, Sep 10, 2011 at 10:23 AM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>>> I cannot believe that no one has run into that issue.
>>>>> Seems like anyone that's using the AJAX Grid would face it.
>>>>> 
>>>>> Please vote for https://issues.apache.org/jira/browse/TAP5-1634
>>>>> if you care, or if anyone has a workaround, please suggest one.
>>>>> 
>>>>> Thanks
>>>>> 
>>>>> 
>>>>> 
>>>>> On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:
>>>>> 
>>>>>> Seems to me that this would be a common thing with any of the AJAX components.
>>>>>> Should I open up a JIRA issue?
>>>>>> 
>>>>>> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>>>> 
>>>>>>> I figured that was a simple one.  Should not have thought so.
>>>>>>> all my questions are complicated, otherwise I would have not asked :)
>>>>>> 
>>>>>> hehehe :)
>>>>>> 
>>>>>>> 
>>>>>>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>>>>>>> 
>>>>>>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>>>>>> 
>>>>>>>>> Oh you are here Thiago!
>>>>>>>> 
>>>>>>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>>>>>>> 
>>>>>>>>> How about my Grid/Sessino invalidation session question?
>>>>>>>> 
>>>>>>>> I have no idea . . .
>>>>>>>> 
>>>>>>>> --
>>>>>>>> Thiago H. de Paula Figueiredo
>>>>>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>>>>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>>>>>> http://www.arsmachina.com.br
>>>>>> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
>>>>>> 
>>>>>>> Hi,
>>>>>>> I've looked all over the Internet for this, but nothing works.
>>>>>>> 
>>>>>>> I have a basic Grid pulling data from an Entity bean.
>>>>>>> Obviously, when session expires, I get the "there is no data to display" message.
>>>>>>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>>>>>>> gets re-established.
>>>>>>> 
>>>>>>> Here's what I tried:
>>>>>>> 
>>>>>>>   @SuppressWarnings("unused")
>>>>>>>   @OnEvent(value="inplaceUpdate", component="usersGrid")
>>>>>>>   private Object ajaxPageChanged()
>>>>>>>   {
>>>>>>>       if(request.getSession(false) != null)
>>>>>>>       {
>>>>>>>           return null;
>>>>>>>       }
>>>>>>>       else
>>>>>>>       {
>>>>>>>         return ps.createPageRenderLink(LoginPage.class).;
>>>>>>>       }
>>>>>>>   }
>>>>>>> 
>>>>>>> I get an exception:
>>>>>>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>>>>>>>      at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>>>>>>> 
>>>>>>> Thanks for all your help!
>>>>>> 
>>>>> 
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> --
>>>> Regards
>>>> 
>>>> Taha Hafeez Siddiqi (tawus)
>>>> http://tawus.wordpress.com
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>> 
>>> 
>> 
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Kalle Korhonen <ka...@gmail.com>.
On Sat, Sep 10, 2011 at 2:39 AM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
> Digging through this a bit deeper, there is an interaction going on here with tapestry-security.
> When the session expires, the user is no longer logged in, and thus
> ajax call is being redirected to a login screen, thus the exceptions.
> But the problem still remains the same, there seems to be no good way
> to redirect the page to itself when the Grid does inPlace update,
> and the session is no longer available.
> Any more thoughts/ideas?

Sounds like tapestry-security is doing the right thing, no? How I
would solve the problem, is that either I wouldn't let the session to
expire or warn the user that the session is about to expire, or a
combination of both. If you added conversational scope, it'd be
relatively easy to do (see
http://tynamo.org/tapestry-conversations+guide for more info).

Kalle


> On Sep 10, 2011, at 4:38 AM, Lenny Primak wrote:
>
>> As a matter of fact, I can't get any sort of graceful degradation after session has expired.
>>
>> ----------- Screenshot ------------
>> <PastedGraphic-1.tiff>
>>
>> // somewhere we trigger session invalidation
>>         request.getSession(false).invalidate();
>>
>>
>> // now lets try an AJAX event handler to redirect to my index page
>>     @OnEvent(value = "submit", component = "SearchForm")
>>     public Object searchCustomer()
>>     {
>>             return IndexPage.class;
>>     }
>>
>>
>>
>> On Sep 10, 2011, at 1:40 AM, Taha Hafeez wrote:
>>
>>> Hi Lenny
>>>
>>> I handle this issue in a more generic way for all ajax calls.
>>>
>>> http://tapestry.1045711.n5.nabble.com/Tapestry-Zone-and-Expired-Session-td4634714.html#a4634757
>>>
>>>
>>>
>>> On Sat, Sep 10, 2011 at 10:23 AM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>> I cannot believe that no one has run into that issue.
>>>> Seems like anyone that's using the AJAX Grid would face it.
>>>>
>>>> Please vote for https://issues.apache.org/jira/browse/TAP5-1634
>>>> if you care, or if anyone has a workaround, please suggest one.
>>>>
>>>> Thanks
>>>>
>>>>
>>>>
>>>> On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:
>>>>
>>>>> Seems to me that this would be a common thing with any of the AJAX components.
>>>>> Should I open up a JIRA issue?
>>>>>
>>>>> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>>>
>>>>>> I figured that was a simple one.  Should not have thought so.
>>>>>> all my questions are complicated, otherwise I would have not asked :)
>>>>>
>>>>> hehehe :)
>>>>>
>>>>>>
>>>>>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>>>>>>
>>>>>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>>>>>
>>>>>>>> Oh you are here Thiago!
>>>>>>>
>>>>>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>>>>>>
>>>>>>>> How about my Grid/Sessino invalidation session question?
>>>>>>>
>>>>>>> I have no idea . . .
>>>>>>>
>>>>>>> --
>>>>>>> Thiago H. de Paula Figueiredo
>>>>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>>>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>>>>> http://www.arsmachina.com.br
>>>>> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
>>>>>
>>>>>> Hi,
>>>>>> I've looked all over the Internet for this, but nothing works.
>>>>>>
>>>>>> I have a basic Grid pulling data from an Entity bean.
>>>>>> Obviously, when session expires, I get the "there is no data to display" message.
>>>>>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>>>>>> gets re-established.
>>>>>>
>>>>>> Here's what I tried:
>>>>>>
>>>>>>   @SuppressWarnings("unused")
>>>>>>   @OnEvent(value="inplaceUpdate", component="usersGrid")
>>>>>>   private Object ajaxPageChanged()
>>>>>>   {
>>>>>>       if(request.getSession(false) != null)
>>>>>>       {
>>>>>>           return null;
>>>>>>       }
>>>>>>       else
>>>>>>       {
>>>>>>         return ps.createPageRenderLink(LoginPage.class).;
>>>>>>       }
>>>>>>   }
>>>>>>
>>>>>> I get an exception:
>>>>>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>>>>>>      at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>>>>>>
>>>>>> Thanks for all your help!
>>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Regards
>>>
>>> Taha Hafeez Siddiqi (tawus)
>>> http://tawus.wordpress.com
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Lenny Primak <lp...@hope.nyc.ny.us>.
Digging through this a bit deeper, there is an interaction going on here with tapestry-security.
When the session expires, the user is no longer logged in, and thus
ajax call is being redirected to a login screen, thus the exceptions.

But the problem still remains the same, there seems to be no good way
to redirect the page to itself when the Grid does inPlace update,
and the session is no longer available.

Any more thoughts/ideas?

On Sep 10, 2011, at 4:38 AM, Lenny Primak wrote:

> As a matter of fact, I can't get any sort of graceful degradation after session has expired.
> 
> ----------- Screenshot ------------
> <PastedGraphic-1.tiff>
> 
> // somewhere we trigger session invalidation
>         request.getSession(false).invalidate();
>     
> 
> // now lets try an AJAX event handler to redirect to my index page
>     @OnEvent(value = "submit", component = "SearchForm")
>     public Object searchCustomer()
>     {
>             return IndexPage.class;
>     }
>     
>     
> 
> On Sep 10, 2011, at 1:40 AM, Taha Hafeez wrote:
> 
>> Hi Lenny
>> 
>> I handle this issue in a more generic way for all ajax calls.
>> 
>> http://tapestry.1045711.n5.nabble.com/Tapestry-Zone-and-Expired-Session-td4634714.html#a4634757
>> 
>> 
>> 
>> On Sat, Sep 10, 2011 at 10:23 AM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>> I cannot believe that no one has run into that issue.
>>> Seems like anyone that's using the AJAX Grid would face it.
>>> 
>>> Please vote for https://issues.apache.org/jira/browse/TAP5-1634
>>> if you care, or if anyone has a workaround, please suggest one.
>>> 
>>> Thanks
>>> 
>>> 
>>> 
>>> On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:
>>> 
>>>> Seems to me that this would be a common thing with any of the AJAX components.
>>>> Should I open up a JIRA issue?
>>>> 
>>>> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>> 
>>>>> I figured that was a simple one.  Should not have thought so.
>>>>> all my questions are complicated, otherwise I would have not asked :)
>>>> 
>>>> hehehe :)
>>>> 
>>>>> 
>>>>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>>>>> 
>>>>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>>>> 
>>>>>>> Oh you are here Thiago!
>>>>>> 
>>>>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>>>>> 
>>>>>>> How about my Grid/Sessino invalidation session question?
>>>>>> 
>>>>>> I have no idea . . .
>>>>>> 
>>>>>> --
>>>>>> Thiago H. de Paula Figueiredo
>>>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>>>> http://www.arsmachina.com.br
>>>> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
>>>> 
>>>>> Hi,
>>>>> I've looked all over the Internet for this, but nothing works.
>>>>> 
>>>>> I have a basic Grid pulling data from an Entity bean.
>>>>> Obviously, when session expires, I get the "there is no data to display" message.
>>>>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>>>>> gets re-established.
>>>>> 
>>>>> Here's what I tried:
>>>>> 
>>>>>   @SuppressWarnings("unused")
>>>>>   @OnEvent(value="inplaceUpdate", component="usersGrid")
>>>>>   private Object ajaxPageChanged()
>>>>>   {
>>>>>       if(request.getSession(false) != null)
>>>>>       {
>>>>>           return null;
>>>>>       }
>>>>>       else
>>>>>       {
>>>>>         return ps.createPageRenderLink(LoginPage.class).;
>>>>>       }
>>>>>   }
>>>>> 
>>>>> I get an exception:
>>>>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>>>>>      at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>>>>> 
>>>>> Thanks for all your help!
>>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>> 
>>> 
>> 
>> 
>> 
>> -- 
>> Regards
>> 
>> Taha Hafeez Siddiqi (tawus)
>> http://tawus.wordpress.com
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
> 


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Lenny Primak <lp...@hope.nyc.ny.us>.
As a matter of fact, I can't get any sort of graceful degradation after session has expired.

----------- Screenshot ------------


// somewhere we trigger session invalidation
        request.getSession(false).invalidate();
    

// now lets try an AJAX event handler to redirect to my index page
    @OnEvent(value = "submit", component = "SearchForm")
    public Object searchCustomer()
    {
            return IndexPage.class;
    }
    
    

On Sep 10, 2011, at 1:40 AM, Taha Hafeez wrote:

> Hi Lenny
> 
> I handle this issue in a more generic way for all ajax calls.
> 
> http://tapestry.1045711.n5.nabble.com/Tapestry-Zone-and-Expired-Session-td4634714.html#a4634757
> 
> 
> 
> On Sat, Sep 10, 2011 at 10:23 AM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>> I cannot believe that no one has run into that issue.
>> Seems like anyone that's using the AJAX Grid would face it.
>> 
>> Please vote for https://issues.apache.org/jira/browse/TAP5-1634
>> if you care, or if anyone has a workaround, please suggest one.
>> 
>> Thanks
>> 
>> 
>> 
>> On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:
>> 
>>> Seems to me that this would be a common thing with any of the AJAX components.
>>> Should I open up a JIRA issue?
>>> 
>>> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>> 
>>>> I figured that was a simple one.  Should not have thought so.
>>>> all my questions are complicated, otherwise I would have not asked :)
>>> 
>>> hehehe :)
>>> 
>>>> 
>>>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>>>> 
>>>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>>> 
>>>>>> Oh you are here Thiago!
>>>>> 
>>>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>>>> 
>>>>>> How about my Grid/Sessino invalidation session question?
>>>>> 
>>>>> I have no idea . . .
>>>>> 
>>>>> --
>>>>> Thiago H. de Paula Figueiredo
>>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>>> http://www.arsmachina.com.br
>>> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
>>> 
>>>> Hi,
>>>> I've looked all over the Internet for this, but nothing works.
>>>> 
>>>> I have a basic Grid pulling data from an Entity bean.
>>>> Obviously, when session expires, I get the "there is no data to display" message.
>>>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>>>> gets re-established.
>>>> 
>>>> Here's what I tried:
>>>> 
>>>>   @SuppressWarnings("unused")
>>>>   @OnEvent(value="inplaceUpdate", component="usersGrid")
>>>>   private Object ajaxPageChanged()
>>>>   {
>>>>       if(request.getSession(false) != null)
>>>>       {
>>>>           return null;
>>>>       }
>>>>       else
>>>>       {
>>>>         return ps.createPageRenderLink(LoginPage.class).;
>>>>       }
>>>>   }
>>>> 
>>>> I get an exception:
>>>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>>>>      at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>>>> 
>>>> Thanks for all your help!
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
>> 
> 
> 
> 
> -- 
> Regards
> 
> Taha Hafeez Siddiqi (tawus)
> http://tawus.wordpress.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Lenny Primak <lp...@hope.nyc.ny.us>.
I tried the way Thiago suggested in the mentioned thread, but that does not work for the inPlace grid.
I really, REALLY, really do not want to create/compile my own version of patched tapestry
and patch tapestry.js isn't that great of an idea.

------------- Error -------------------
SEVERE: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of com.baw.website.pages.test.TapPage@1ca6705. This type of event does not support return values from event handler methods.
SEVERE: Operations trace:
SEVERE: [ 1] Triggering event 'action' on test/TapPage:usersgrid.pager
SEVERE: [ 2] Triggering event 'inplaceupdate' on test/TapPage:usersgrid.pager
SEVERE: [ 3] Handling result from method com.baw.website.pages.test.TapPage.onException(java.lang.Throwable).
------------------------
--------------------- CODE ---------------

   @SuppressWarnings("unused")
    @OnEvent(value="inplaceUpdate", component="usersGrid")
    @AfterRender
    private void ajaxPageChanged() throws SessionException
    {
            throw new SessionException("No Session");
    }
    
    
    private Object onException(Throwable cause)
    {
       // try to redirect to the current page
        return this;
    }
    

On Sep 10, 2011, at 1:40 AM, Taha Hafeez wrote:

> Hi Lenny
> 
> I handle this issue in a more generic way for all ajax calls.
> 
> http://tapestry.1045711.n5.nabble.com/Tapestry-Zone-and-Expired-Session-td4634714.html#a4634757
> 
> 
> 
> On Sat, Sep 10, 2011 at 10:23 AM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>> I cannot believe that no one has run into that issue.
>> Seems like anyone that's using the AJAX Grid would face it.
>> 
>> Please vote for https://issues.apache.org/jira/browse/TAP5-1634
>> if you care, or if anyone has a workaround, please suggest one.
>> 
>> Thanks
>> 
>> 
>> 
>> On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:
>> 
>>> Seems to me that this would be a common thing with any of the AJAX components.
>>> Should I open up a JIRA issue?
>>> 
>>> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>> 
>>>> I figured that was a simple one.  Should not have thought so.
>>>> all my questions are complicated, otherwise I would have not asked :)
>>> 
>>> hehehe :)
>>> 
>>>> 
>>>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>>>> 
>>>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>>> 
>>>>>> Oh you are here Thiago!
>>>>> 
>>>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>>>> 
>>>>>> How about my Grid/Sessino invalidation session question?
>>>>> 
>>>>> I have no idea . . .
>>>>> 
>>>>> --
>>>>> Thiago H. de Paula Figueiredo
>>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>>> http://www.arsmachina.com.br
>>> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
>>> 
>>>> Hi,
>>>> I've looked all over the Internet for this, but nothing works.
>>>> 
>>>> I have a basic Grid pulling data from an Entity bean.
>>>> Obviously, when session expires, I get the "there is no data to display" message.
>>>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>>>> gets re-established.
>>>> 
>>>> Here's what I tried:
>>>> 
>>>>   @SuppressWarnings("unused")
>>>>   @OnEvent(value="inplaceUpdate", component="usersGrid")
>>>>   private Object ajaxPageChanged()
>>>>   {
>>>>       if(request.getSession(false) != null)
>>>>       {
>>>>           return null;
>>>>       }
>>>>       else
>>>>       {
>>>>         return ps.createPageRenderLink(LoginPage.class).;
>>>>       }
>>>>   }
>>>> 
>>>> I get an exception:
>>>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>>>>      at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>>>> 
>>>> Thanks for all your help!
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
>> 
> 
> 
> 
> -- 
> Regards
> 
> Taha Hafeez Siddiqi (tawus)
> http://tawus.wordpress.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Lenny Primak <lp...@hope.nyc.ny.us>.
Thanks Taha. 
I do think that this case should be handled by tapestry correctly by default with no patches or hacks. It's a very simple case and very common one as well. 
I will try the onExceotion approach but not sure it will work because the component is actually internal to the grid and not exposed to the outside world. 


On Sep 10, 2011, at 1:40 AM, Taha Hafeez <ta...@gmail.com> wrote:

> Hi Lenny
> 
> I handle this issue in a more generic way for all ajax calls.
> 
> http://tapestry.1045711.n5.nabble.com/Tapestry-Zone-and-Expired-Session-td4634714.html#a4634757
> 
> 
> 
> On Sat, Sep 10, 2011 at 10:23 AM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>> I cannot believe that no one has run into that issue.
>> Seems like anyone that's using the AJAX Grid would face it.
>> 
>> Please vote for https://issues.apache.org/jira/browse/TAP5-1634
>> if you care, or if anyone has a workaround, please suggest one.
>> 
>> Thanks
>> 
>> 
>> 
>> On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:
>> 
>>> Seems to me that this would be a common thing with any of the AJAX components.
>>> Should I open up a JIRA issue?
>>> 
>>> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>> 
>>>> I figured that was a simple one.  Should not have thought so.
>>>> all my questions are complicated, otherwise I would have not asked :)
>>> 
>>> hehehe :)
>>> 
>>>> 
>>>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>>>> 
>>>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>>> 
>>>>>> Oh you are here Thiago!
>>>>> 
>>>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>>>> 
>>>>>> How about my Grid/Sessino invalidation session question?
>>>>> 
>>>>> I have no idea . . .
>>>>> 
>>>>> --
>>>>> Thiago H. de Paula Figueiredo
>>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>>> http://www.arsmachina.com.br
>>> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
>>> 
>>>> Hi,
>>>> I've looked all over the Internet for this, but nothing works.
>>>> 
>>>> I have a basic Grid pulling data from an Entity bean.
>>>> Obviously, when session expires, I get the "there is no data to display" message.
>>>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>>>> gets re-established.
>>>> 
>>>> Here's what I tried:
>>>> 
>>>>   @SuppressWarnings("unused")
>>>>   @OnEvent(value="inplaceUpdate", component="usersGrid")
>>>>   private Object ajaxPageChanged()
>>>>   {
>>>>       if(request.getSession(false) != null)
>>>>       {
>>>>           return null;
>>>>       }
>>>>       else
>>>>       {
>>>>         return ps.createPageRenderLink(LoginPage.class).;
>>>>       }
>>>>   }
>>>> 
>>>> I get an exception:
>>>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>>>>      at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>>>> 
>>>> Thanks for all your help!
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
>> 
> 
> 
> 
> -- 
> Regards
> 
> Taha Hafeez Siddiqi (tawus)
> http://tawus.wordpress.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Taha Hafeez <ta...@gmail.com>.
Hi Lenny

I handle this issue in a more generic way for all ajax calls.

http://tapestry.1045711.n5.nabble.com/Tapestry-Zone-and-Expired-Session-td4634714.html#a4634757



On Sat, Sep 10, 2011 at 10:23 AM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
> I cannot believe that no one has run into that issue.
> Seems like anyone that's using the AJAX Grid would face it.
>
> Please vote for https://issues.apache.org/jira/browse/TAP5-1634
> if you care, or if anyone has a workaround, please suggest one.
>
> Thanks
>
>
>
> On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:
>
>> Seems to me that this would be a common thing with any of the AJAX components.
>> Should I open up a JIRA issue?
>>
>> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>
>>> I figured that was a simple one.  Should not have thought so.
>>> all my questions are complicated, otherwise I would have not asked :)
>>
>> hehehe :)
>>
>>>
>>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>>>
>>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>>>
>>>>> Oh you are here Thiago!
>>>>
>>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>>>
>>>>> How about my Grid/Sessino invalidation session question?
>>>>
>>>> I have no idea . . .
>>>>
>>>> --
>>>> Thiago H. de Paula Figueiredo
>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>> http://www.arsmachina.com.br
>> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
>>
>>> Hi,
>>> I've looked all over the Internet for this, but nothing works.
>>>
>>> I have a basic Grid pulling data from an Entity bean.
>>> Obviously, when session expires, I get the "there is no data to display" message.
>>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>>> gets re-established.
>>>
>>> Here's what I tried:
>>>
>>>   @SuppressWarnings("unused")
>>>   @OnEvent(value="inplaceUpdate", component="usersGrid")
>>>   private Object ajaxPageChanged()
>>>   {
>>>       if(request.getSession(false) != null)
>>>       {
>>>           return null;
>>>       }
>>>       else
>>>       {
>>>         return ps.createPageRenderLink(LoginPage.class).;
>>>       }
>>>   }
>>>
>>> I get an exception:
>>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>>>      at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>>>
>>> Thanks for all your help!
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>



-- 
Regards

Taha Hafeez Siddiqi (tawus)
http://tawus.wordpress.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Lenny Primak <lp...@hope.nyc.ny.us>.
I cannot believe that no one has run into that issue.
Seems like anyone that's using the AJAX Grid would face it.

Please vote for https://issues.apache.org/jira/browse/TAP5-1634
if you care, or if anyone has a workaround, please suggest one.

Thanks



On Sep 2, 2011, at 5:24 PM, Lenny Primak wrote:

> Seems to me that this would be a common thing with any of the AJAX components.
> Should I open up a JIRA issue?
> 
> On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
> 
>> I figured that was a simple one.  Should not have thought so.
>> all my questions are complicated, otherwise I would have not asked :)
> 
> hehehe :)
> 
>> 
>> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
>> 
>>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>>> 
>>>> Oh you are here Thiago!
>>> 
>>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>>> 
>>>> How about my Grid/Sessino invalidation session question?
>>> 
>>> I have no idea . . .
>>> 
>>> --
>>> Thiago H. de Paula Figueiredo
>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>> http://www.arsmachina.com.br
> On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:
> 
>> Hi, 
>> I've looked all over the Internet for this, but nothing works.
>> 
>> I have a basic Grid pulling data from an Entity bean.
>> Obviously, when session expires, I get the "there is no data to display" message.
>> What I really want to do is to redirect to the current page, so the user gets to relogin and session
>> gets re-established.
>> 
>> Here's what I tried:
>> 
>>   @SuppressWarnings("unused")
>>   @OnEvent(value="inplaceUpdate", component="usersGrid")
>>   private Object ajaxPageChanged()
>>   {
>>       if(request.getSession(false) != null)
>>       {
>>           return null;
>>       }
>>       else
>>       {
>>         return ps.createPageRenderLink(LoginPage.class).;
>>       }
>>   }
>> 
>> I get an exception:
>> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
>> 	at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
>> 
>> Thanks for all your help!
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5.3 Grid, inPlace Update and expired Sessions

Posted by Lenny Primak <lp...@hope.nyc.ny.us>.
Seems to me that this would be a common thing with any of the AJAX components.
Should I open up a JIRA issue?

On Fri, 02 Sep 2011 18:14:28 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:

> I figured that was a simple one.  Should not have thought so.
> all my questions are complicated, otherwise I would have not asked :)

hehehe :)

> 
> On Sep 2, 2011, at 5:11 PM, Thiago H. de Paula Figueiredo wrote:
> 
>> On Fri, 02 Sep 2011 17:43:42 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
>> 
>>> Oh you are here Thiago!
>> 
>> I'm always here, but I don't know the answers for all questions nor the time to investigate them. (I wish I had).
>> 
>>> How about my Grid/Sessino invalidation session question?
>> 
>> I have no idea . . .
>> 
>> --
>> Thiago H. de Paula Figueiredo
>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
>> Owner, Ars Machina Tecnologia da Informação Ltda.
>> http://www.arsmachina.com.br
On Sep 2, 2011, at 11:10 AM, Lenny Primak wrote:

> Hi, 
> I've looked all over the Internet for this, but nothing works.
> 
> I have a basic Grid pulling data from an Entity bean.
> Obviously, when session expires, I get the "there is no data to display" message.
> What I really want to do is to redirect to the current page, so the user gets to relogin and session
> gets re-established.
> 
> Here's what I tried:
> 
>    @SuppressWarnings("unused")
>    @OnEvent(value="inplaceUpdate", component="usersGrid")
>    private Object ajaxPageChanged()
>    {
>        if(request.getSession(false) != null)
>        {
>            return null;
>        }
>        else
>        {
>          return ps.createPageRenderLink(LoginPage.class).;
>        }
>    }
> 
> I get an exception:
> Caused by: java.lang.IllegalArgumentException: Event 'inplaceupdate' from test/TapPage:usersgrid.pager received an event handler method return value of /com.bettaway_baw-website_war_1.2/loginpage. This type of event does not support return values from event handler methods.
> 	at org.apache.tapestry5.internal.util.NotificationEventCallback.handleResult(NotificationEventCallback.java:39)
> 
> Thanks for all your help!


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org