如何在Grails服务中访问会话Cookie?

时间:2014-02-23 19:02:47

标签: spring spring-mvc grails grails-2.0

我需要从Grails服务中访问会话cookie(JSESSIONID)。我知道如何从Servlet访问它。

编辑:我使用Grails JAXRS插件http://grails.org/plugin/jaxrs从REST请求访问资源。

如何在Grails服务中访问Session Cookie JSESSIONID?

2 个答案:

答案 0 :(得分:1)

如果您需要访问Jersey REST资源中的会话,则需要向Resource方法添加Request参数,例如:

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

答案 1 :(得分:0)

我知道您可以在服务和src文件中使用SecurityRequestHolder.request.session(如果您使用的是SpringSecurity)。我不确定它在课堂上的效果如何。老实说,我会找到另一种方式。

我已经了解到,当我认为我需要在其他地方访问会话时,除了控制器之外,我遇到了架构问题。那时我停下来重新思考我在做什么以及为什么我这样做。通常Grails提供了一种更好的方法来完成我认为我需要对会话做的事情。正如@JoshuaMoore所指出的,使用会话的最佳方法是将会话值传递给控制器​​中的类实例或服务。

这可能不是您想要的答案,但从长远来看,调试,测试和维护将更容易。你会很高兴你重新设计它。