Состав действия для аутентификации

У меня есть класс ниже, чтобы проверить входящий запрос.

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(){}
--
}

Проблема в том, что в случае нескольких запросов, поступающих из браузера, запросы повреждаются/ответы смешиваются. В приведенном выше случае вызовы как метода 1, так и метода 2 проходят только через один из них, когда @With(SecuredAction.class) используется. Я не вижу эту проблему, если эта аннотация удалена. Это как-то связано с контекстом? Разве это не безопасно? Как правильно поступить? Любая помощь, пожалуйста?


person Shiva Kodityala    schedule 14.07.2015    source источник


Ответы (1)


Похоже, что создание SecuredAction не-singleton (@Scope("prototype")) решает проблему. После этого больше не вижу проблемы.

Это означает, что делегат распределяется среди входящих запросов/потоков небезопасно.

person Shiva Kodityala    schedule 14.07.2015