2014-02-23 19 views
0

我需要從Grails服務中訪問會話cookie(JSESSIONID)。我知道如何從Servlet訪問它。如何在Grails服務中訪問Session Cookie?

編輯:我使用Grails JAXRS插件http://grails.org/plugin/jaxrs從REST請求中訪問資源。

如何在Grails服務中訪問Session Cookie JSESSIONID?

+0

您的服務會話範圍或單身? –

+0

@JoshuaMoore我還沒有選擇範圍。 – confile

+0

所以單身(默認)。只要從你的控制器中一起通過會話。 def someServiceMethod(session,arg1,arg2,...) –

回答

1

如果您需要有在您的新澤西州的REST資源的會話的接入,則需要請求參數添加到資源的方法,如:

@POST 
public createData(@Context HttpServletRequest request) { 
    def session = request.session 
} 
0

我知道你可以在服務中使用SecurityRequestHolder.request.session和src文件(如果您使用的是SpringSecurity)。我不確定它在課堂上的表現如何。老實說,我會找到另一種方式。

我已經瞭解到,當我認爲我需要從其他地方訪問會話時,除了控制器外,我有一個架構問題。那時我停下來,重新考慮我在做什麼,爲什麼我這麼做。通常Grails提供了一種更好的方式來完成我認爲我需要處理的內容。正如@JoshuaMoore指出的那樣,使用會話的最佳方法是將會話值傳遞給控制器​​中的類實例或服務。

這可能不是您想要的答案,但從長遠來看,調試,測試和維護將會更容易。你會很高興你重新設計它。

相關問題