Playframework 如何从PlayPlugin传递对象

Playframework 如何从PlayPlugin传递对象,playframework,playframework-1.x,Playframework,Playframework 1.x,我正在写一个游戏插件。在rawInvocation(请求、响应)方法中,我创建了一个我希望所有控制器都能访问的对象。实现这一目标的首选方式是什么?每个用户都有自己的对象。似乎还没有创建播放会话,因此我无法将其存储在那里。 谢谢 Christian Güldner我不确定这是最好的还是推荐的方法,但您可以始终将其添加到请求中。param如果您想使用插件创建全局筛选器,则最好覆盖PlayPlugin。在调用方法之前: public class MyPlugin extends PlayPlugin{

我正在写一个游戏插件。在rawInvocation(请求、响应)方法中,我创建了一个我希望所有控制器都能访问的对象。实现这一目标的首选方式是什么?每个用户都有自己的对象。似乎还没有创建播放会话,因此我无法将其存储在那里。 谢谢


Christian Güldner

我不确定这是最好的还是推荐的方法,但您可以始终将其添加到请求中。param

如果您想使用插件创建全局筛选器,则最好覆盖
PlayPlugin。在调用
方法之前:

public class MyPlugin extends PlayPlugin{
  @override public void beforeActionInvocation(Method actionMethod) {
     Object myObject = ...
     Http.Request.current().args.put("myobject", myObject);
  }
}
在任何控制器中,您都可以通过以下方式获取对象:


Object myObject=
Http.Request.current().args.get(“myObject”)

谢谢。我使用rawInvocation是因为我的插件处理身份验证(ntlm)。我可以在请求参数中设置对象(用户名)。但是,对象是我希望在会话中设置的用户名。也许我可以稍后在流中提取它,并将其从请求参数移动到会话。我会做更多的研究。那么你正在尝试创建一个支持active directory身份验证的插件?我有一个模块()用于此。检查并查看它是如何工作的。这个模块的问题是现在没有JPA impl,因为我在日常项目中主要使用mongodb,而且它缺少文档。但无论如何,你可以参考源代码,快速浏览一下。非常令人印象深刻。这种方法与我试图实现的不同,它只是使用ntlm实现SSO。请允许我说,对于你在模块中所做的所有工作,很遗憾你没有花30分钟来解释模块的功能和使用方法。真为我感到羞耻。创建该模块已有一年多了,只是在doc、sample和JPA impl上找不到任何时间。也许我应该向一些愿意提供帮助的人寻求帮助:)嘿,guldner,我对sso ntml非常感兴趣,但我还没有机会研究它。你有可能把它作为一个模块发布吗?谢谢。似乎不允许将其添加到请求参数中。按照green的建议,将其添加到请求args中,对我很有效。