FYI - rc2 still has this problem. It works OK on a BookmarkablePageLink to a page that implement IAuthorizationStrategy, but not on the new Link<MyLoginPage> on a panel on my home page. After login is complete, the link is hidden and replaced with a logout link, so the user gets an AccessDenied page after login as they try to 'restart the response' to the (wrong) onClick handler url for the now-invisible login link.
Not sure when I'll get to making quickstart, but I thought I'd give at least this brief info for now. Thanks, -- Jim. On Wed, Mar 16, 2011 at 5:01 AM, Martin Grigorov <mgrigo...@apache.org>wrote: > Try with RC2 and if it still fails please create a ticket with a quickstart > > On Tue, Mar 15, 2011 at 11:27 PM, Jim Pinkham <pinkh...@gmail.com> wrote: > > > I think I've got the same situation happening. > > > > It's a login link on my home page, whose onClick > > uses the usual: > > throw new RestartResponseAtInterceptPageException( > > AuctionApplication.get().getSignInPageClass()); > > > > I've stepped thru this a bit, and I find a problematic point in: > > RestartResponseAtInterceptPageException.InterceptData.set() where it > > captures what I think is supposed to be the home page url, which it is > > saving as follows: > > ... > > data.originalUrl = request.getOriginalUrl(); > > > > However, in my debugger, this is instead the Url of the link: > > > > > http://localhost:8080/myapp/wicket/page?0-1.ILinkListener-userPanel-signIn > > > > If I manually change it in the debugger to just my home page Url, it > seems > > to work fine. > > > > This was working last for me in 1.5-M3, and now in 1.5-RC1 it appears to > > have broken. > > > > Hope this helps narrow the search... > > > > Thanks, > > -- Jim. > > > > On Thu, Mar 10, 2011 at 1:50 PM, Jeremy Thomerson < > > jer...@wickettraining.com > > > wrote: > > > > > On Thu, Mar 10, 2011 at 12:36 PM, Jim Goodwin <sophin...@comcast.net> > > > wrote: > > > > > > > I'm a Wicket newbie, working my way through /Wicket in Action. > > > > > > > > /I don't understand redirection too clearly yet, but there is > > > > an example in the book which doesn't work right when I > > > > try it and I'd like to ask if the book example code makes > > > > sense to more experienced folks. > > > > > > > > Page 271 Listing 11.3 line 4: The onSubmit() method calls > > > > !continueToOriginalDestination(). > > > > > > > > > > continueToOriginalDestination() lets the user continue on to the place > > they > > > were going before being interrupted by the security mechanism if they > > > aren't > > > logged in. i.e: > > > > > > user on home page > > > user clicks "restricted page" link > > > security strategy says "can't go there without being logged in as X", > > > redirects user to login page > > > user logs in, and continueToOriginalDestination() redirects to > > "restricted > > > page" (original dest) and returns true. > > > > > > another example: > > > user clicks bookmarked link in a new tab in their browser to login page > > (or > > > goes to unrestricted home page and clicks link for login page) > > > user logs in, and continueToOriginalDestination() can't redirect them > > > anywhere, because there is no "original destination" that was > interrupted > > > > > > Page 272 Listing 11.4 , new Link(...){ ... method onClick(): > > > > throws new RestartResponseAtInterceptPageException(signInPage) > > > > > > > > > > This is a way to stop processing at ANY point in your application and > > > redirect the user to a certain page. > > > > > > > > > > How is this supposed to work? > > > > > > > > Suppose the user is on the Home page, and the Home Page > > > > has a UserPanel, and the user clicks on the "Sign In" link. > > > > Then the link itself sets an intercept to the sign-in page > > > > (that is how the link arranges to take you there, as far as I can > > > > understand). > > > > > > > > But then, when the user enters name/password and submits, and > > > > the submit method calls continueToOriginalDestination(), it will > > > > always succceed, and find the "original destination" to be the signIn > > > > page, regardless of where it really originated (the Home Page, in > > > > this case). > > > > > > > > > > You're a bit confused by "original" and "destination". Since the user > > > clicked the "signin page" link, the *destination* was the signin page - > > > which is unrestricted, so the continueToOriginalDestination() method > can > > > not > > > redirect them anywhere, and thus returns false. You now need to > redirect > > > them somewhere manually or the signin page will re-render. > > > > > > The *origin* was the home page - but that doesn't matter. Don't be > > thrown > > > off by "original" (destination) and "origin" - which are two different > > > things. :) > > > > > > For a while my code was working like that: Signing in worked, > > > > i.e. it did sign you in, but you were returned to a blank sign-in > page. > > > > (My code doesn't work like that just this minute, but that is only > > > > because I've been enhancing it with other bugs.) > > > > > > > > Can anyone explain how the book-example is supposed to work? > > > > > > > > Thanks > > > > Jim > > > > > > > > > > > > > -- > > > Jeremy Thomerson > > > http://wickettraining.com > > > *Need a CMS for Wicket? Use Brix! http://brixcms.org* > > > > > > > > > -- > Martin Grigorov > jWeekend > Training, Consulting, Development > http://jWeekend.com <http://jweekend.com/> >