2013-04-10 31 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