I see, I guess I misunderstood you.  I wasn't able to reproduce it in a
separate test application, however.  It has to be encountering something in
this particular application that is causing a problem.  I just can't figure
out what that might be, exactly.

I would submit the small test case I made but it works just fine.  I can't
submit the application with the issue I've described, it's company code.

-v

On Mon, Dec 21, 2009 at 12:45 PM, <b...@actrix.gen.nz> wrote:

> VGJ,
> You might have discovered a limitation of the system or a bug. As I
> wrote, I would recommend you make a testcase with all distracting
> detail removed and submit it as a jira issue, then post a link to the
> the issue here.
>
> I understand your frustration, but I think the above would be the best
> investment of your own efforts.
>
> Regards,
>
> Bernard.
>
> On Mon, 21 Dec 2009 11:13:49 -0700, you wrote:
>
> >Well, I'm still unable to spot anything strange.  No matter what page I
> >annotate, it doesn't switch to https until the form is submitted.  It then
> >goes to https (as if it's redirecting to itself?) and triggers the
> >validation on the page, even if the correct fields are filled in.  No
> matter
> >what page I annotate on this site, it happens the same way.
> >
> >Here's an example from this app:
> >
> >The "login or create a new account page":
> >
> >@RequireHttps
> >public class UserAccount extends BasePage
> >{
> >    public UserAccount()
> >    {
> >        //get user from session
> >        User user = ((UserSession)getSession()).getUser();
> >
> >        //pass go, collect $200
> >        if (user != null)
> >            throw new RestartResponseException(new ContactInfo());
> >
> >        add(new FeedbackPanel("feedbackPanel"));
> >
> >        //get cart in session
> >        ShoppingCartLocal cart = ((UserSession)getSession()).getCart();
> >
> >    //entities
> >    Order order = cart.getOrder();
> >    Customer customer = order.getCustomer();
> >    String email = (order != null && customer != null) ?
> customer.getEmail()
> >: "";
> >
> >        //form model (entity)
> >        if (user == null) user = new User();
> >
> >        //if email exists, pre-populate form
> >    if (email != null && !email.equals(""))
> >            user.setUsername(email);
> >
> >    final Form returnUserForm = new Form("retUserAccountForm", new
> >CompoundPropertyModel(user));
> >    final Form newUserForm = new Form("newUserAccountForm", new
> >CompoundPropertyModel(user));
> >
> >    //add form components
> >    returnUserForm.add(new TextField("username")
> >        .setRequired(true)
> >        .add(EmailAddressPatternValidator.getInstance()));
> >    returnUserForm.add(new PasswordTextField("password"));
> >
> >    returnUserForm.add(new Button("userAcctButton")
> >    {
> >      public void onSubmit()
> >      {
> >        ShoppingCartLocal  cart = null;
> >
> >        try
> >        {
> >          //save form values, redirect
> >          User user = (User)returnUserForm.getModelObject();
> >
> >          //get cart from session
> >          cart = ((UserSession)getSession()).getCart();
> >
> >          //create order in session
> >          cart = CartProxy.authUserAccount(cart, user);
> >
> >          //set cart back to session & log user in
> >          ((UserSession)getSession()).setCart(cart);
> >          ((UserSession)getSession()).setUser(
> >              cart.getOrder().getCustomer().getUser());
> >
> >          //redirect
> >          setResponsePage(new ContactInfo());
> >        }
> >        catch (Exception exp)
> >        {
> >          info(exp.getMessage());
> >          LogProxy.saveEntry(exp);
> >        }
> >      }
> >    });
> >
> >    returnUserForm.add(new Link("forgotPasswordLink")
> >    {
> >      public void onClick()
> >      {
> >        setResponsePage(new ForgotPassword());
> >      }
> >    });
> >
> >
> >    //add form components
> >    newUserForm.add(new TextField("username")
> >        .setRequired(true)
> >        .add(EmailAddressPatternValidator.getInstance()));
> >
> >    newUserForm.add(new Button("userAcctButton")
> >    {
> >      public void onSubmit()
> >      {
> >        ShoppingCartLocal  cart = null;
> >
> >        try
> >        {
> >          //save form values, redirect
> >          User user = (User)newUserForm.getModelObject();
> >
> >          //get cart from session
> >          cart = ((UserSession)getSession()).getCart();
> >
> >          //create order in session
> >          cart = CartProxy.createUserAccount(cart, user);
> >
> >          //set cart back to session & log user in
> >          ((UserSession)getSession()).setCart(cart);
> >          ((UserSession)getSession()).setUser(
> >              cart.getOrder().getCustomer().getUser());
> >
> >          //redirect
> >          setResponsePage(new ContactInfo());
> >        }
> >        catch (Exception exp)
> >        {
> >          info(exp.getMessage());
> >          LogProxy.saveEntry(exp);
> >        }
> >      }
> >    });
> >
> >    //add forms
> >    add(returnUserForm);
> >    add(newUserForm);
> >    }
> >}
> >
> >...the "BasePage" class:
> >
> >public abstract class BasePage extends WebPage
> >{
> >  private String pageTitle = "My page title!";
> >
> >  public BasePage()
> >  {
> >    //add page title
> >    add(new Label("title", new PropertyModel(this, "pageTitle")));
> >
> >    //add page components
> >    add(new TrailPanel("trailPanel",
> >
>  TrailFactory.getUserPageTrail(this.getPageClass().getSimpleName())));
> >    add(new HeaderPanel("headerPanel"));
> >    add(new FooterPanel("footerPanel"));
> >  }
> >
> >  public final String getPageTitle()
> >  {
> >    return pageTitle;
> >  }
> >
> >  public final void setPageTitle(String title)
> >  {
> >    this.pageTitle = title;
> >  }
> >
> >  protected void redirect(String url)
> >  {
> >    //disable wicket redirecting
> >    getRequestCycle().setRedirect(false);
> >
> >    //make sure no output for the current cycle is sent
> >    getRequestCycle().setRequestTarget(EmptyRequestTarget.getInstance());
> >
> >    //set absolute URL to redirect to
> >    getResponse().redirect(url);
> >  }
> >}
> >
> >...just in case, the application class:
> >
> >public class ProductCatalogApp extends WebApplication
> >{
> >  /**
> >   * initialize application resources
> >   */
> >  @Override
> >  public void init()
> >  {
> >    //mount pretty URLs
> >    mountURLs();
> >
> >    //create external images resource
> >    getSharedResources().add("imageResource", new ImageResource());
> >
> >    //start timer services
> >    TimerProxy.init();
> >  }
> >
> >  /**
> >   * set application home page
> >   */
> >  public Class getHomePage()
> >  {
> >    return ProductCatalog.class;
> >  }
> >
> >  /**
> >   * set custom session class
> >   */
> >  @Override
> >  public Session newSession(Request request, Response response)
> >  {
> >    return new UserSession(ProductCatalogApp.this, request);
> >  }
> >
> >  @Override
> >  protected IRequestCycleProcessor newRequestCycleProcessor()
> >  {
> >    return new HttpsRequestCycleProcessor(new HttpsConfig(8080, 8181));
> >  }
> >
> >  /**
> >   * Simple method for listing bookmarked pages with "pretty" URLs
> >   *
> >   */
> >  private void mountURLs()
> >  {
> >    mount(new HybridUrlCodingStrategy("/login", Login.class));
> >    mount(new HybridUrlCodingStrategy("/products", ProductCatalog.class));
> >    mount(new HybridUrlCodingStrategy("/category",
> CatalogCategory.class));
> >    mount(new HybridUrlCodingStrategy("/product-detail",
> >ProductDetail.class));
> >    mount(new HybridUrlCodingStrategy("/cart", Cart.class));
> >    mount(new HybridUrlCodingStrategy("/account", UserAccount.class));
> >    mount(new HybridUrlCodingStrategy("/addresses", ContactInfo.class));
> >    mount(new HybridUrlCodingStrategy("/payment", PaymentInfo.class));
> >  }
> >}
> >
> >Hopefully something stands out to someone here...I don't see what could be
> >causing it?
> >
> >Thanks again,
> >
> >-v
> >
> >On Sun, Dec 20, 2009 at 9:29 PM, <b...@actrix.gen.nz> wrote:
> >
> >> Hi VGJ,
> >>
> >> If, as you say you can reproduce this in your storefront app no matter
> >> where you use it then you may want to reduce this to a testcase and
> >> create a jira issue from it.
> >>
> >> You are already writing that you can reproduce it and consequently it
> >> would be only a matter of removing all distracting detail from your
> >> storefront until further simplification is no longer possible. I can't
> >> see how otherwise anyone could help you with your issue.
> >>
> >> In any case, glitches like you mention should not happen whether the
> >> problem is in the Wicket framework domain or in the application
> >> domain. If it is in the application domain, as it would usually be the
> >> case because Wicket is mature, then there would still be a benefit of
> >> publishing the issue e.g. in a Wiki article so that others would not
> >> make the same mistake.
> >>
> >> Good luck!
> >>
> >> Bernard
> >>
> >> On Fri, 18 Dec 2009 14:58:15 -0700, you wrote:
> >>
> >> >I was unable to re-create it in a simple web app w/ a few pages.
>  However,
> >> >no matter where I use it in my storefront app, it happens.
> >> >
> >> >It's very strange because it starts a page "late".  I put the
> annotation
> >> on
> >> >the User Account page, yet it doesn't switch to https until I reach the
> >> >*following* page in the checkout process.  I just stuck it on the
> general
> >> >Login page that exists outside of the checkout process...and when I
> click
> >> >the link from the home page to go to the Login page using
> >> >setResponsePage(new Login()), it doesn't switch to https.  Instead, I
> >> enter
> >> >the user/pass and submit...THEN it goes to https, then I'm able to
> >> re-enter
> >> >and login.
> >> >
> >> >Very strange behavior...I have no idea what might be causing it.
> >> >
> >> >I use various Panels throughout the side, would that have any influence
> on
> >> >it?  For example, the link in the header to go to the Login page is
> inside
> >> >of a straightforward Panel.  The entire site uses markup inheritance as
> >> >well.
> >> >
> >> >On Fri, Dec 18, 2009 at 9:29 AM, VGJ <zambi...@gmail.com> wrote:
> >> >
> >> >> I'll create one and post it, if I can.
> >> >>
> >> >> -v
> >> >>
> >> >>
> >> >> On Fri, Dec 18, 2009 at 9:21 AM, Igor Vaynberg <
> igor.vaynb...@gmail.com
> >> >wrote:
> >> >>
> >> >>> can you recreate in a quickstart?
> >> >>>
> >> >>> -igor
> >> >>>
> >> >>> On Fri, Dec 18, 2009 at 7:56 AM, VGJ <zambi...@gmail.com> wrote:
> >> >>> > I'm now using @RequireHttps to switch to https on certain pages
> but
> >> it's
> >> >>> not
> >> >>> > quite working right.
> >> >>> >
> >> >>> > In our storefront app, I'm switching to https at the point in the
> >> >>> checkout
> >> >>> > process where you view your cart, and then proceed to a page to
> >> either
> >> >>> login
> >> >>> > or create an account.  When I submit my username and password, the
> >> >>> > validation fires as if I entered nothing into the form.  Enter it
> a
> >> >>> second
> >> >>> > time and it works - the validation doesn't trigger.  Everything
> was
> >> >>> entered
> >> >>> > correctly the first time around...so it's as if the form is being
> >> posted
> >> >>> on
> >> >>> > its own, when the page loads?  Every page with @RequireHttps that
> has
> >> a
> >> >>> > form, does this.
> >> >>> >
> >> >>> > What do I need to do to change to accommodate validation under
> >> >>> @RequireHttps
> >> >>> > pages?
> >> >>> >
> >> >>> > Currently you just see a lot of forms w/ fields like this:
> >> >>> >
> >> >>> > add(new TextField("username").setRequired(true));
> >> >>> >
> >> >>> > ...with a pretty common feedback panel:
> >> >>> >
> >> >>> >            <div id="feedbackPanel">
> >> >>> >              <span wicket:id="feedbackPanel" class="warning" />
> >> >>> >            </div>
> >> >>> >
> >> >>> > Thanks!
> >> >>> >
> >> >>> > -v
> >> >>> >
> >> >>>
> >> >>>
> ---------------------------------------------------------------------
> >> >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> >>> For additional commands, e-mail: users-h...@wicket.apache.org
> >> >>>
> >> >>>
> >> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> For additional commands, e-mail: users-h...@wicket.apache.org
> >>
> >>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

Reply via email to