Hi,

I've spotted a quirky behaviour and I want to consult with you guys regarding this.

AgaviExecutionContainer::createSystemActionForwardContainer() internally uses createExecutionContainer() with only two arguments. When the request method to createExecutionContainer() is omitted, the default behaviour is to create the forward container in the same request method as the original request. This is a quirk because an user may e.g. submit a form via a POST, step on an URL or otherwise trigger an action's write method while not authenticated (I discovered this by coming to the office in the morning and trying to use a form I've left open on another day, so my session expired); in such case, the login action's container will be created in write mode as well, which of course fails as the user never has a chance to submit login credentials, so the login action returns its error view that has nothing to do with the action the user tried to perform.

It makes sense to have createSystemActionForwardContainer() accept an argument to override the request method, default it to read, and create a configurable parameter for the security filter how to behave in each case.

Thoughts?

_______________________________________________
users mailing list
[email protected]
http://lists.agavi.org/mailman/listinfo/users

Reply via email to