Authorization without redirect
Hi everyone, I'm currently building an application using wicket 1.4.21 and what I'm trying to achieve is the following: I have a protected area (stage 1) which requires the user to input his credentials and I'm using an AuthorizationStrategy for this. This Strategy throws a RestartResponseAtInterceptPageException in it's onUnauthorizedInstantiation method. (works as is with a redirect to a Login Page) However, within stage 1 I have links to another page (stage 2) which requires a PIN and I want no redirect to the login page again but just show a pop-up with an input field. Something like a confirmation dialog which on close still displays the page the link to stage 2 was rendered in. Any ideas? Thanks, Karsten - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Authorization without redirect
Hi Ernesto, Thanks but this isn't really what I was looking for as it is too simple to remove the Modal Window from the DOM tree and see the already rendered hidden page without entering a PIN. I'd use normal Modal Windows for every link to the PIN protected page but this wouldn't cover bookmarks. A RestartResponseWithInterceptComponentException(Component component) would be marvellous which re-renders the current page and injects the given component but this is just fantasy. So I'll have to give this another thought or two. Cheers, Karsten Am 28.11.2012 13:36, schrieb Ernesto Reinaldo Barreiro: See https://cwiki.apache.org/confluence/display/WICKET/Modal+Windows Opening a modal window on page load (no AJAX involved) You could use one to block the page till pin is typed. On Wed, Nov 28, 2012 at 1:29 PM, Karsten Gaul karsten.g...@exedio.comwrote: Hi everyone, I'm currently building an application using wicket 1.4.21 and what I'm trying to achieve is the following: I have a protected area (stage 1) which requires the user to input his credentials and I'm using an AuthorizationStrategy for this. This Strategy throws a RestartResponseAtInterceptPage**Exception in it's onUnauthorizedInstantiation method. (works as is with a redirect to a Login Page) However, within stage 1 I have links to another page (stage 2) which requires a PIN and I want no redirect to the login page again but just show a pop-up with an input field. Something like a confirmation dialog which on close still displays the page the link to stage 2 was rendered in. Any ideas? Thanks, Karsten --**--**- To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.orgusers-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
stateless AjaxLazyLoadPanel wicket 1.4.21
Hi, I'm trying to use the functionality of an AjaxLazyLoadPanel in a stateless page but this doesn't seem to work as the injected content is not a container and the following exception is thrown: java.lang.IllegalArgumentException: Component is not a container and so does not contain the path componentid:containedcomponentid: [Component id = content] at org.apache.wicket.Component.get(Component.java:4500) at org.apache.wicket.MarkupContainer.get(MarkupContainer.java:354) I wrote a StatelessAbstractDefaultAjaxBehavior overriding geCallbackUrl which I use in my StatelessAjaxLazyLoadPanel. This doesn't seem to be the way. Anyone have any hints? Thanks, Karsten - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: stateless AjaxLazyLoadPanel wicket 1.4.21
Hi guys, I still have no clue. Any suggestions? A work-around would also be much appreciated. I need to stay stateless but I definetely need this lazy loading as I have to wait for a soap response every 10 mins and for user experience issues need to display some loading component/icon as provided by AjaxLazyLoadPanel. Thanks, Karsten Am 05.12.2012 09:38, schrieb Karsten Gaul: Hi, I'm trying to use the functionality of an AjaxLazyLoadPanel in a stateless page but this doesn't seem to work as the injected content is not a container and the following exception is thrown: java.lang.IllegalArgumentException: Component is not a container and so does not contain the path componentid:containedcomponentid: [Component id = content] at org.apache.wicket.Component.get(Component.java:4500) at org.apache.wicket.MarkupContainer.get(MarkupContainer.java:354) I wrote a StatelessAbstractDefaultAjaxBehavior overriding geCallbackUrl which I use in my StatelessAjaxLazyLoadPanel. This doesn't seem to be the way. Anyone have any hints? Thanks, Karsten - 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
Re: stateless AjaxLazyLoadPanel wicket 1.4.21
Trying to: /// StatelessAbstractDefaultAjaxBehavior /// @Override public CharSequence getCallbackUrl(final boolean onlyTargetActivePage) { final CharSequence url = super.getCallbackUrl(onlyTargetActivePage); final PageParameters params = getPageParameters(); // NOTE: quick hack to remove old and obsolete random parameter from request (see wicket-ajax.js) if (params!=null params.containsKey(random)) params.remove(random); return StatelessEncoder.appendParameters(url, params); } StatelessEncoder appends params to WebRequestEncoder stateless hint - true In the StatelessAjaxLazyLoadPanel I'm using this Behavior instead of the usual AbstractDefaultAjaxBehavior /// My Page /// onInitialize() { add( new StatelessAjaxLazyLoadPanel(myContent) { private static final long serialVersionUID = 1L; @Override public Component getLazyLoadComponent( String markupId ) { return new MyContentPanel( markupId ); } @Override public PageParameters getPageParameters() { return pageParameters; } } ); } /// MyContentPanel /// Form form = new Form(myForm); form.add( new DropDownChoiceEnum(enumChoice)); add(form); java.lang.IllegalArgumentException: Component is not a container and so does not contain the path myForm:enumChoice: [Component id = content] at org.apache.wicket.Component.get(Component.java:4500) at org.apache.wicket.MarkupContainer.get(MarkupContainer.java:354) at org.apache.wicket.MarkupContainer.get(MarkupContainer.java:354) at org.apache.wicket.MarkupContainer.get(MarkupContainer.java:354) at org.apache.wicket.MarkupContainer.get(MarkupContainer.java:354) at org.apache.wicket.MarkupContainer.get(MarkupContainer.java:354) at org.apache.wicket.MarkupContainer.get(MarkupContainer.java:354) Would that be sufficient? Thanks, Karsten Am 06.12.2012 11:30, schrieb Martin Grigorov: Show us some code and the real exception. On Thu, Dec 6, 2012 at 11:26 AM, Karsten Gaul karsten.g...@exedio.comwrote: Hi guys, I still have no clue. Any suggestions? A work-around would also be much appreciated. I need to stay stateless but I definetely need this lazy loading as I have to wait for a soap response every 10 mins and for user experience issues need to display some loading component/icon as provided by AjaxLazyLoadPanel. Thanks, Karsten Am 05.12.2012 09:38, schrieb Karsten Gaul: Hi, I'm trying to use the functionality of an AjaxLazyLoadPanel in a stateless page but this doesn't seem to work as the injected content is not a container and the following exception is thrown: java.lang.**IllegalArgumentException: Component is not a container and so does not contain the path componentid:**containedcomponentid: [Component id = content] at org.apache.wicket.Component.**get(Component.java:4500) at org.apache.wicket.**MarkupContainer.get(** MarkupContainer.java:354) I wrote a StatelessAbstractDefaultAjaxBe**havior overriding geCallbackUrl which I use in my StatelessAjaxLazyLoadPanel. This doesn't seem to be the way. Anyone have any hints? Thanks, Karsten --**--**- To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.orgusers-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org --**--**- To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.orgusers-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- Karsten Gaul Dipl. Medieninf. Softwareentwickler Telefon +49 (351) 4108-135 Fax +49 (351) 4108-5135 karsten.g...@exedio.com www.exedio.com exedio GmbH Buchenstr. 16 B 01097 Dresden Deutschland Handelsregister: HRB 22109 Amtsgericht Dresden Sitz der Gesellschaft: Dresden Geschäftsführer: Sven-Erik Bornscheuer, Lutz Kirchner, Falk Krause - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: stateless AjaxLazyLoadPanel wicket 1.4.21
Hi Martin, myContent is the id of the StatelessAjaxLazyLoadPanel which contains a constant private static final String LAZY_LOAD_COMPONENT_ID = content; which is used in getLazyLoadComponent(String markupId). 'myContent' contains the lazy load component 'content'. StatelessAjaxLazyLoadComponent is added to a WebMarkupContainer which itself is added to MyPage. If you look at the source of AjaxLazyLoadPanel the 'content' (added in onBeforeRender) is replaced in the respond method of the Behavior. Could that be the reason why it is not a container? Regards, Karsten Am 06.12.2012 12:37, schrieb Martin Grigorov: On Thu, Dec 6, 2012 at 11:53 AM, Karsten Gaul karsten.g...@exedio.comwrote: Trying to: /// StatelessAbstractDefaultAjaxBe**havior /// @Override public CharSequence getCallbackUrl(final boolean onlyTargetActivePage) { final CharSequence url = super.getCallbackUrl(** onlyTargetActivePage); final PageParameters params = getPageParameters(); // NOTE: quick hack to remove old and obsolete random parameter from request (see wicket-ajax.js) if (params!=null params.containsKey(random)) params.remove(random); return StatelessEncoder.**appendParameters(url, params); } StatelessEncoder appends params to WebRequestEncoder stateless hint - true In the StatelessAjaxLazyLoadPanel I'm using this Behavior instead of the usual AbstractDefaultAjaxBehavior /// My Page /// onInitialize() { add( new StatelessAjaxLazyLoadPanel(**myContent) Here we see myContent id. { private static final long serialVersionUID = 1L; @Override public Component getLazyLoadComponent( String markupId ) { return new MyContentPanel( markupId ); } @Override public PageParameters getPageParameters() { return pageParameters; } } ); } /// MyContentPanel /// Form form = new Form(myForm); form.add( new DropDownChoiceEnum(**enumChoice)); add(form); java.lang.**IllegalArgumentException: Component is not a container and so does not contain the path myForm:enumChoice: [Component id = content] Here it complains about content. What is the relation between 'myContent' and 'content' component ? Which component adds the StatelessAjaxLazyLoadPanel ? at org.apache.wicket.Component.**get(Component.java:4500) Put a breakpoint here and see what is in the context. What is 'this', what in its 'children' member field. 'myForm' has children with 'enumChoice' inside, then 'enumChoce' becomes 'this and you need to see how to get to the lazy load panel and its lazy load component. at org.apache.wicket.**MarkupContainer.get(** MarkupContainer.java:354) at org.apache.wicket.**MarkupContainer.get(**MarkupContainer.java:354) at org.apache.wicket.**MarkupContainer.get(**MarkupContainer.java:354) at org.apache.wicket.**MarkupContainer.get(**MarkupContainer.java:354) at org.apache.wicket.**MarkupContainer.get(**MarkupContainer.java:354) at org.apache.wicket.**MarkupContainer.get(**MarkupContainer.java:354) Would that be sufficient? Thanks, Karsten Am 06.12.2012 11:30, schrieb Martin Grigorov: Show us some code and the real exception. On Thu, Dec 6, 2012 at 11:26 AM, Karsten Gaul karsten.g...@exedio.com** wrote: Hi guys, I still have no clue. Any suggestions? A work-around would also be much appreciated. I need to stay stateless but I definetely need this lazy loading as I have to wait for a soap response every 10 mins and for user experience issues need to display some loading component/icon as provided by AjaxLazyLoadPanel. Thanks, Karsten Am 05.12.2012 09:38, schrieb Karsten Gaul: Hi, I'm trying to use the functionality of an AjaxLazyLoadPanel in a stateless page but this doesn't seem to work as the injected content is not a container and the following exception is thrown: java.lang.IllegalArgumentException: Component is not a container and so does not contain the path componentid:containedcomponentid: [Component id = content] at org.apache.wicket.Component.get(Component.java:4500) at org.apache.wicket.MarkupContainer.get(** MarkupContainer.java:354) I wrote a StatelessAbstractDefaultAjaxBehavior overriding geCallbackUrl which I use in my StatelessAjaxLazyLoadPanel. This doesn't seem to be the way. Anyone have any hints? Thanks, Karsten --** --**- To unsubscribe, e-mail: users-unsubscribe@wicket.**apa**che.orghttp://apache.org users-unsubscribe@**wicket.apache.orgusers-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org --** --**- To unsubscribe, e-mail: users-unsubscribe@wicket.**apa**che.orghttp
Re: stateless AjaxLazyLoadPanel wicket 1.4.21
The exception is thrown when this = content and path = myForm:enumChoice It seems the content has no other children as it only contains a parent member field I already tested the stateful version and can confirm it works OK which made me hope I could write a similar version for stateless pages as well. Am 06.12.2012 13:00, schrieb Martin Grigorov: On Thu, Dec 6, 2012 at 12:57 PM, Karsten Gaul karsten.g...@exedio.comwrote: Hi Martin, myContent is the id of the StatelessAjaxLazyLoadPanel which contains a constant private static final String LAZY_LOAD_COMPONENT_ID = content; which is used in getLazyLoadComponent(String markupId). 'myContent' contains the lazy load component 'content'. StatelessAjaxLazyLoadComponent is added to a WebMarkupContainer which itself is added to MyPage. If you look at the source of AjaxLazyLoadPanel the 'content' (added in onBeforeRender) is replaced in the respond method of the Behavior. Could that be the reason why it is not a container? The default (stateful) version works OK, so the problem seems to be that when the Ajax call is made a new page is created (this is what stateless means) and when it tries to find the lazy panel or its component (I'm not sure which one) it fails to find it. The debugger will tell you what exactly happens. Regards, Karsten Am 06.12.2012 12:37, schrieb Martin Grigorov: On Thu, Dec 6, 2012 at 11:53 AM, Karsten Gaul karsten.g...@exedio.com** wrote: Trying to: /// StatelessAbstractDefaultAjaxBehavior /// @Override public CharSequence getCallbackUrl(final boolean onlyTargetActivePage) { final CharSequence url = super.getCallbackUrl(** onlyTargetActivePage); final PageParameters params = getPageParameters(); // NOTE: quick hack to remove old and obsolete random parameter from request (see wicket-ajax.js) if (params!=null params.containsKey(random)) params.remove(random); return StatelessEncoder.appendParameters(url, params); } StatelessEncoder appends params to WebRequestEncoder stateless hint - true In the StatelessAjaxLazyLoadPanel I'm using this Behavior instead of the usual AbstractDefaultAjaxBehavior /// My Page /// onInitialize() { add( new StatelessAjaxLazyLoadPanel(myContent) Here we see myContent id. { private static final long serialVersionUID = 1L; @Override public Component getLazyLoadComponent( String markupId ) { return new MyContentPanel( markupId ); } @Override public PageParameters getPageParameters() { return pageParameters; } } ); } /// MyContentPanel /// Form form = new Form(myForm); form.add( new DropDownChoiceEnum(enumChoice)); add(form); java.lang.IllegalArgumentException: Component is not a container and so does not contain the path myForm:enumChoice: [Component id = content] Here it complains about content. What is the relation between 'myContent' and 'content' component ? Which component adds the StatelessAjaxLazyLoadPanel ? at org.apache.wicket.Component.get(Component.java:4500) Put a breakpoint here and see what is in the context. What is 'this', what in its 'children' member field. 'myForm' has children with 'enumChoice' inside, then 'enumChoce' becomes 'this and you need to see how to get to the lazy load panel and its lazy load component. at org.apache.wicket.MarkupContainer.get(** MarkupContainer.java:354) at org.apache.wicket.MarkupContainer.get( MarkupContainer.java:354) at org.apache.wicket.MarkupContainer.get( MarkupContainer.java:354) at org.apache.wicket.MarkupContainer.get( MarkupContainer.java:354) at org.apache.wicket.MarkupContainer.get( MarkupContainer.java:354) at org.apache.wicket.MarkupContainer.get( MarkupContainer.java:354) Would that be sufficient? Thanks, Karsten Am 06.12.2012 11:30, schrieb Martin Grigorov: Show us some code and the real exception. On Thu, Dec 6, 2012 at 11:26 AM, Karsten Gaul karsten.g...@exedio.com ** wrote: Hi guys, I still have no clue. Any suggestions? A work-around would also be much appreciated. I need to stay stateless but I definetely need this lazy loading as I have to wait for a soap response every 10 mins and for user experience issues need to display some loading component/icon as provided by AjaxLazyLoadPanel. Thanks, Karsten Am 05.12.2012 09:38, schrieb Karsten Gaul: Hi, I'm trying to use the functionality of an AjaxLazyLoadPanel in a stateless page but this doesn't seem to work as the injected content is not a container and the following exception is thrown: java.lang.**IllegalArgumentException: Component is not a container and so does not contain the path componentid:**containedcomponentid
different page expired error page?
Hi, is there a way to have different page expiry error pages? For my app I would like to redirect browsing users (not logged in) to a real error page which is plain and simple but logged in users should be redirected to the login page on session timeout. Thanks, Karsten - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: different page expired error page?
Hi, and sorry. Forgot to mention that I'm using wicket 1.4.21 so I was trying to override AbstractRequestCycleProcessor#respond(RuntimeException e, RequestCycle requestCycle) and on second thought I guess overriding RequestCycle#onRuntimeException should do the trick. I'll give it a try. Thanks, Karsten Am 10.12.2012 12:14, schrieb Martin Grigorov: Hi, See org.apache.wicket.request.cycle.AbstractRequestCycleListener#onException With this you can return RenderPageRequestHanlder specific for any type of exception. On Mon, Dec 10, 2012 at 11:37 AM, Karsten Gaul karsten.g...@exedio.comwrote: Hi, is there a way to have different page expiry error pages? For my app I would like to redirect browsing users (not logged in) to a real error page which is plain and simple but logged in users should be redirected to the login page on session timeout. Thanks, Karsten --**--**- To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.orgusers-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