【问题标题】:Action Composition for Authentication身份验证的动作组合
【发布时间】:2015-07-14 08:53:07
【问题描述】:

我有下面的课程来检查传入的请求。

public class SecuredAction extends Action.Simple 
{  


    @Override
    public Promise<Result> call(Context ctx) throws Throwable 
    {
        // Not doing anything now. Just interrupting it
        return delegate.call(ctx);
    }
}

我正在将它应用到另一个控制器上,例如

@With(SecuredAction.class) 
public class TestController extends BasicController {
public Result method1(){}
public Result method2(){}
--
}

问题是,在来自浏览器的多个请求的情况下,请求被破坏/响应被混淆。在上述情况下,当 @With(SecuredAction) 时,对方法 1 和方法 2 的调用仅通过其中一个.class) 被使用。如果删除此注释,我不会看到此问题。它与上下文有关吗?它不是读安全的吗?正确的做法是什么?请问有什么帮助吗?

【问题讨论】:

    标签: playframework-2.3 play-authenticate


    【解决方案1】:

    看起来将 SecuredAction 设为非单例 (@Scope("prototype") ) 可以解决问题。之后再也看不到这个问题了。

    这意味着委托在传入请求/线程不安全之间共享。

    【讨论】:

      猜你喜欢
      • 2015-07-18
      • 2020-06-21
      • 2012-10-23
      • 2019-08-12
      • 2013-11-03
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多