2013-04-10 48 views
1

我想要做的是一个简单的页面,获取一个参数,这是一个对象的IDWicket - 通过LoginPagePageParameters页

@MountPath("share/${share_id}") 
    public class IndexPage extends WebPage 
    { 
      public IndexPage(PageParameters parameters) 
      { 
        String id = parameters.get("share_id").toString(); 
        // etc... 
      } 
    } 

此页面必须安全,以防止未经授权的访问。我添加@AuthorizeInstantiation( “用户”)标注和管理)在MainApplication延伸AuthenticatedWebApplication标准检票的安全支持,包括getSignInPageClass(。

问题是,当我需要找回我IndexPage授权后原始参数。我有一些解决方案,但我需要它更优雅,更普遍(通用)。

  1. 覆盖restartResponseAtSignInPage()中的应用类方法
  2. RequestCycle检索参数:

    final Request request = RequestCycle.get().getRequest(); 
    PageParametersEncoder encoder = new PageParametersEncoder(); 
    PageParameters parameters = encoder.decodePageParameters(request.getUrl()); 
    
  3. 通过投掷新RestartResponseAtInterceptPageException它们传递(getSignInPageClass(),newParameters);

我知道这不是一个很好的解决方案,因为我需要知道什么是参数的精确指标在我的网址(编码器只返回indexedParameters,不namedParameters - ?或者我做某事错了)。

也许有人曾经遇到过这个问题吗?

回答

2

在你Siginpage,您已验证登录后,作出continueToOriginalDestination();

这一个电话应该做的伎俩。

+0

谢谢。这很奏效! – 2013-04-10 12:39:53