Bingo! You are right, @Persist was missing from my login page nextPageLink 
member. I'm not much a fan of putting data in session and probably ignored or 
junked that essential @Persist!

thanks,
John
  ----- Original Message ----- 
  From: Geoff Callender 
  To: Tapestry users 
  Sent: Monday, April 29, 2013 10:35 PM
  Subject: Re: problem with jumpstart protecting pages code


  Hi John,

  It works because LoginPage persists the link in your session:

     @Persist
      private Link nextPageLink;

  Have you really seen it fail? Try for yourself - try user 2 (login with 
admin, admin):

  http://jumpstart.doublenegative.com.au/jumpstart/theapp/security/userview/2

  then log out, then try user 3:

  http://jumpstart.doublenegative.com.au/jumpstart/theapp/security/userview/3

  then log out, then try role 1:

  http://jumpstart.doublenegative.com.au/jumpstart/theapp/security/roleview/1

  Does it ever not work? If it needs fixing then I'd really like to know.

  Geoff


  On 29/04/2013, at 6:47 PM, John wrote:

  > I don't think the following code works, it doesn't when I run my version of 
it.
  > 
  > The loginPage has it's nextPageLink property set, but then the 
loginPageLink is returned by using the Login.class which presumably just 
redirects to a fresh login page without the nextPageLink set.
  > 
  > So the nextPageLink is null in the Login page so the nextPageLink cannot be 
used.
  > 
  > John
  > 
  > 
http://jumpstart.doublenegative.com.au/jumpstart/examples/infrastructure/protectingpages
  > 
  > 
  >            // Get the Login page, give it a link to the requested page, and 
redirect to Login
  > 
  >            IIntermediatePage loginPage = (IIntermediatePage) 
componentSource.getPage(Login.class);
  > 
  >            Link requestedPageLink = 
makeLinkToRequestedPage(requestedPageName, eventContext);
  >            loginPage.setNextPageLink(requestedPageLink);
  > 
  >            Link loginPageLink = 
pageRenderLinkSource.createPageRenderLink(Login.class);
  >            response.sendRedirect(loginPageLink);
  > 
  >            return false;

Reply via email to