Multipart Form and AjaxSubmitLink will result in invalid redirect after user 
session expires
--------------------------------------------------------------------------------------------

                 Key: WICKET-4251
                 URL: https://issues.apache.org/jira/browse/WICKET-4251
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 1.5.3
         Environment: JDK_1.6_027/Windows/Linux/Explorer/Chrome/Firefox
            Reporter: Tom Rixom


Hi,

I have hit an issue similar to this one:

https://issues.apache.org/jira/browse/WICKET-3141

I do not receive any errors from Wicket itself to help clarify, so I will try 
to explain using an example.

The example below with which I could recreate the issue uses the default 
SignInPanel (in my LoginPage.clas) and AuthenticatedWebSession to authenticate 
the user and store the session:

        protected Class<? extends WebPage> getSignInPageClass()
        {
                return LoginPage.class;
        }

If the authentiation is succesfull then the user is redirect back to the test 
page:

                        protected void onSignInSucceeded() {
                                setResponsePage(Test.class);
                        }

So far so good. However if I use a form with setMultiPart(true) in combination 
with an AjaxSubmitLink as shown in the following piece of code:

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
import 
org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.Form;

@AuthorizeInstantiation("USER")
public class Test extends WebPage {

        public Test()
        {
                super();
                
                final Form testForm = 
                                new Form("testForm");
        
                testForm.setMultiPart(true);
                
                testForm.add(new AjaxSubmitLink("testButton", testForm) {
                        
                        @Override
                        protected void onSubmit(AjaxRequestTarget target, Form 
form) {
                                super.onSubmit();
                        };
                        
                        @Override
                        protected void onError(AjaxRequestTarget target, Form 
form) {
                                
                        };
                });
                                
                add(testForm);
        }
}

And have selected the option "Remember credentials" in the SignInPanel, 
clicking on the testButton AFTER the session has expired will result in:

http://localhost:8080/PaladinWicket/?3-1.IBehaviorListener.0-testForm-testButton&wicket-ajax=true&wicket-ajax-baseurl=.

which displays this in the browser:

This XML file does not appear to have any style information associated with it. 
The document tree is shown below.
<ajax-response>
<redirect>
<![CDATA[ .?1 ]]>
</redirect>
</ajax-response>

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to