2014-10-31 53 views
0

在一個交叉問題中 - 假設在登錄時,我想通過來自「日誌攔截器」的請求傳遞請求ID使用Play2動作組合的動作。Play2(java?) - 如何在不使用會話或閃存的情況下在攔截器中增加請求

在將Action傳遞給控制器​​之前,如何向Action中的請求添加內容? 我可以添加到會話或閃光燈,但我不想在服務器上存儲任何狀態。

例如,如果我想添加一個人造頭或什麼的,我該怎麼做?或者是否存在僅用於當前請求的「閃存」?我只是不想在服務器中有任何狀態,但是header()是不可變的。

我使用java,但不應該真的很重要。我現在只是使用閃光燈作爲解決方法,但它不是真的正確。

假設的例子:

  @Override 
public F.Promise<Result> call(Http.Context context) throws Throwable { 
    String requestId = UUID.randomUUID().toString(); 
    log(requestId); 

    context.flash().put("requestId", requestId); 


    return delegate.call(context).map((x) -> { 
     context.flash().remove("requestId"); 
     return x; 
    }); 
} 

回答

1

您要添加到請求,而不是響應?

對於響應,你可以使用

context.response().setHeader("Access-Control-Allow-Credentials", "true"); 

您還可以使用上下文ARGS(到控制器,觀點和行爲/攔截器之間來回傳遞的東西)。

context.args.put("Key","Value"); 
+0

是在請求上下文中。很好,謝謝! – JasonG 2014-11-01 16:08:07

相關問題