我需要从Grails服务中访问会话cookie(JSESSIONID)。我知道如何从Servlet访问它。
编辑:我使用Grails JAXRS插件http://grails.org/plugin/jaxrs从REST请求访问资源。
如何在Grails服务中访问Session Cookie JSESSIONID?
答案 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所指出的,使用会话的最佳方法是将会话值传递给控制器中的类实例或服务。
这可能不是您想要的答案,但从长远来看,调试,测试和维护将更容易。你会很高兴你重新设计它。