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