Re: redirect request for Page A to page B without contructing A?

2007-10-17 Thread dukehoops

Implemented a SimplePageAuthorizationStrategy; works but there is a gotcha:

Say the home page has a (non-ajax) login form:
1. unauthenticated users navigates to home page and is authorized
2. user submits valid login info.
3. At this point I'd assumed Home page would be re-requested (does wicket do
Redirect-after-form-submit?)
4. However, Home page is redisplayed and isAuthorized method is never
executed after form submit.

Workaround seems to be doing setResponsePage in onSubmit method. This,
however, seems to complicate creating a reusable LoginPanel which would
return user to same page.

-nikita


public class HomePageAuthorizationStrategy extends
SimplePageAuthorizationStrategy{

public HomePageAuthorizationStrategy(){
super(HomePage.class, ProfilePage.class);
}

/**
 * if user's signed-in redirect request for Home Page to user's
dashboard/profile
 */
protected boolean isAuthorized() {
this.getLogger().info(checking auth for home page access...);
return ! ((MySession)Session.get()).isLoggedIn();
}

public Logger getLogger() {
return Logger.getLogger(this.getClass().getName());
}
}


Eelco Hillenius wrote:
 
 If an already logged-in user types in our home URL we'd like the site to
 redirect him/her to own profile page. If user's not logged in, they do
 land
 on home page. This is not to compel someone to sign in.

 So, for example below, PageA = site home page; PageB = user's own profile
 page
 
 Sounds like a custom authorization strategy would work great here.
 
 Eelco
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 

-- 
View this message in context: 
http://www.nabble.com/redirect-request-for-Page-A-to-page-B-without-contructing-A--tf4636621.html#a13262795
Sent from the Wicket - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: redirect request for Page A to page B without contructing A?

2007-10-16 Thread Nino Saturnino Martinez Vazquez Wael

Why do you want to do this?

dukehoops wrote:

Hi,

I'd like to redirect requests for page A to page B without constructing page
A. Typically I'd use URL parsing in a servlet filter to accomplish this but
would like to figure out an OO way to do so.

In my RequestCycle I tried:

@Override
protected void onBeginRequest() {
  if(PageA.class.equals(this.getResponsePageClass())  someCondition)
{
this.setResponsePage(pageB);
}
super.onBeginRequest();
}

The problem is that this.getResponsePageClass() is null in onBeginRequest.

Is overriding a RequestCycle method the right way to address this problem?
If so which method should I override given that:
-I need to ascertain that intended request target is PageA
-I'd like to avoid constructing page A

thanks
-nikita
  


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: redirect request for Page A to page B without contructing A?

2007-10-16 Thread Eelco Hillenius
If it is intercepting what you're after (like you'd do when enforcing
authorization), look at IComponentInstantiationListener. What is your
use case?

Eelco


On 10/16/07, dukehoops [EMAIL PROTECTED] wrote:

 Hi,

 I'd like to redirect requests for page A to page B without constructing page
 A. Typically I'd use URL parsing in a servlet filter to accomplish this but
 would like to figure out an OO way to do so.

 In my RequestCycle I tried:

 @Override
 protected void onBeginRequest() {
   if(PageA.class.equals(this.getResponsePageClass())  someCondition)
 {
 this.setResponsePage(pageB);
 }
 super.onBeginRequest();
 }

 The problem is that this.getResponsePageClass() is null in onBeginRequest.

 Is overriding a RequestCycle method the right way to address this problem?
 If so which method should I override given that:
 -I need to ascertain that intended request target is PageA
 -I'd like to avoid constructing page A

 thanks
 -nikita
 --
 View this message in context: 
 http://www.nabble.com/redirect-request-for-Page-A-to-page-B-without-contructing-A--tf4636621.html#a13241857
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: redirect request for Page A to page B without contructing A?

2007-10-16 Thread dukehoops

The use case is this:

If an already logged-in user types in our home URL we'd like the site to
redirect him/her to own profile page. If user's not logged in, they do land
on home page. This is not to compel someone to sign in.

So, for example below, PageA = site home page; PageB = user's own profile
page

-nikita



Eelco Hillenius wrote:
 
 If it is intercepting what you're after (like you'd do when enforcing
 authorization), look at IComponentInstantiationListener. What is your
 use case?
 
 Eelco
 
 
 On 10/16/07, dukehoops [EMAIL PROTECTED] wrote:

 Hi,

 I'd like to redirect requests for page A to page B without constructing
 page
 A. Typically I'd use URL parsing in a servlet filter to accomplish this
 but
 would like to figure out an OO way to do so.

 In my RequestCycle I tried:

 @Override
 protected void onBeginRequest() {
   if(PageA.class.equals(this.getResponsePageClass()) 
 someCondition)
 {
 this.setResponsePage(pageB);
 }
 super.onBeginRequest();
 }

 The problem is that this.getResponsePageClass() is null in
 onBeginRequest.

 Is overriding a RequestCycle method the right way to address this
 problem?
 If so which method should I override given that:
 -I need to ascertain that intended request target is PageA
 -I'd like to avoid constructing page A

 thanks
 -nikita
 --
 View this message in context:
 http://www.nabble.com/redirect-request-for-Page-A-to-page-B-without-contructing-A--tf4636621.html#a13241857
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 

-- 
View this message in context: 
http://www.nabble.com/redirect-request-for-Page-A-to-page-B-without-contructing-A--tf4636621.html#a13244889
Sent from the Wicket - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: redirect request for Page A to page B without contructing A?

2007-10-16 Thread Eelco Hillenius
 If an already logged-in user types in our home URL we'd like the site to
 redirect him/her to own profile page. If user's not logged in, they do land
 on home page. This is not to compel someone to sign in.

 So, for example below, PageA = site home page; PageB = user's own profile
 page

Sounds like a custom authorization strategy would work great here.

Eelco

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: redirect request for Page A to page B without contructing A?

2007-10-16 Thread Doug Leeper

What I have done is to check in MyApplication.getHomePage():


public Class getHomePage() {

IUser user = getMySession().getCurrentUser();

return user == null ? Index.class : UserHome.class;
}


-- 
View this message in context: 
http://www.nabble.com/redirect-request-for-Page-A-to-page-B-without-contructing-A--tf4636621.html#a13246212
Sent from the Wicket - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: redirect request for Page A to page B without contructing A?

2007-10-16 Thread Eelco Hillenius
 What I have done is to check in MyApplication.getHomePage():


 public Class getHomePage() {

 IUser user = getMySession().getCurrentUser();

 return user == null ? Index.class : UserHome.class;
 }

That's another fine solution if the home page is only what you're after.

Eelco

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]