Wicket
  1. Wicket
  2. WICKET-3836

regression on strategy to integrate cas authentication

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.5-RC5.1
    • Fix Version/s: 1.5-RC6
    • Component/s: wicket-auth-roles
    • Labels:
    • Environment:
      jdk1.6
      cas
      unit test

      Description

      yes, It happens in org.apache.wicket.request.handler.PageProvider.getPageInstance() ,
      but not for the WelcomePage, but the redirection page (RedirectPage).
      the CASPageAuthorizationStrategy as we are not authentified a org.apache.wicket.RestartResponseAtInterceptPageException with in parameter an instance of RedirectPage.
      On the second call of PageProvider.getPageInstance, the pageId is of 0, an all other parameters are nulls.

      The run seems quite different on 1.5-RC4.2 version - There is only one call of the method PageProvider.getPageInstance() and it come after the CASPageAuthorizationStrategy.isPageAuthorized

      Le 27/06/2011 11:24, Martin Grigorov a écrit :
      > Put a breakpoint in
      > org.apache.wicket.request.handler.PageProvider.getPageInstance() and
      > see what happens.
      > It seems the test tries to retrieve a page from the page store by id
      > but there is no such.
      >
      > On Mon, Jun 27, 2011 at 12:20 PM, Thomas Franconville
      > <tfranconville@tetraedge.com> wrote:
      >> Hi,
      >>
      >> Upgrading wicket from 1.5-RC4.2 to 1.5-RC5.1 make my Junit Test down with
      >> the error 'Page expired'
      >>
      >> /**
      >> * Simple test using the WicketTester
      >> */
      >> public class TestHomePage
      >> {
      >> private WicketTester tester;
      >>
      >> @Before
      >> public void setUp()
      >>

      { >> tester = new WicketTester(new MyApplication()); >> }

      >>
      >> @Test
      >> public void homepageRendersSuccessfully()
      >>

      { >> //start and render the test page >> tester.startPage(WelcomePage.class); >> >> //assert rendered page class >> tester.assertRenderedPage(RedirectPage.class); >> }

      >> }
      >>
      >> My application use a CASPageAuthorizationStrategy inspired of
      >> http://www.lunikon.net/2009/11/24/integrating-cas-and-wicket/
      >>
      >>
      >> Kind Regards
      >>
      >> Thomas

      1. CasWicket.zip
        8 kB
        Thomas Franconville

        Issue Links

          Activity

          Hide
          Thomas Franconville added a comment -

          quickstart maven app - version to change into the pom

          Show
          Thomas Franconville added a comment - quickstart maven app - version to change into the pom
          Hide
          Martin Grigorov added a comment -

          Failing unit test is not that critical.

          Show
          Martin Grigorov added a comment - Failing unit test is not that critical.
          Hide
          Martin Grigorov added a comment - - edited

          The problem is that RedirectPage is not versioned, and thus never goes to the page stores.
          I improved similar problem with Error pages in WICKET-3759.

          Explanation: since the page is not versioned it is never stored. By using RedirectPolicy.ALWAYS_REDIRECT we instruct WebPageRenderer to use Redirect_To_RENDER strategy, but this strategy expects that the page is stored. The solution is to use AUTO_REDIRECT policy and let WebPageRenderer decide which render strategy to use. This way it will use the recommended redirect_to_buffer strategy and render the page markup from StoredResponsesMap (BufferedResponseMapper).

          The fix is coming.

          Show
          Martin Grigorov added a comment - - edited The problem is that RedirectPage is not versioned, and thus never goes to the page stores. I improved similar problem with Error pages in WICKET-3759 . Explanation: since the page is not versioned it is never stored. By using RedirectPolicy.ALWAYS_REDIRECT we instruct WebPageRenderer to use Redirect_To_RENDER strategy, but this strategy expects that the page is stored. The solution is to use AUTO_REDIRECT policy and let WebPageRenderer decide which render strategy to use. This way it will use the recommended redirect_to_buffer strategy and render the page markup from StoredResponsesMap (BufferedResponseMapper). The fix is coming.

            People

            • Assignee:
              Martin Grigorov
              Reporter:
              Thomas Franconville
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development