#671: Security filters cannot perform checks in addition to isSecure()
------------------------+---------------------------------------------------
 Reporter:  david       |       Owner:  david
     Type:  defect      |      Status:  new  
 Priority:  high        |   Milestone:  1.0  
Component:  controller  |     Version:  HEAD 
 Severity:  major       |    Keywords:       
Has_patch:  0           |  
------------------------+---------------------------------------------------
 Let's assume we want to build a web shop. Say we want to call it Amazon,
 and say we want to detect returning users with a cookie, and then show
 them suggestions. Let's also assume that these known users have access to
 areas like their personal front page, without having to actually log in
 with user and password. And let's say we want all this handled using
 Agavi's security infrastructure, too, i.e. if an action returns true from,
 say, an {{{isPrivate()}}} method, then it's only available to known or
 authenticated users.

 The thing is... right now, the {{{isSecure()}}} check is done in the
 execution container. If an Action is not secure, the security filter is
 not added to the chain. This is clearly a problem because it means that
 the authentication concept of Agavi cannot be changed without overwriting
 the (big) {{{AgaviExecutionContainer::execute()}}}. If
 {{{core.use_security}}} is on, the security filter should always be run,
 and the {{{isSecure()}}} check should be made in that filter.

 This fix can cause a change in behavior if someone has a custom security
 filter, so we need to document it in the release notes and the upgrading
 guide, as we promised to have breaks only in case of fixes.

-- 
Ticket URL: <http://trac.agavi.org/ticket/671>
Agavi <http://www.agavi.org/>
An MVC Framework for PHP5


_______________________________________________
Agavi Tickets Mailing List
[email protected]
http://lists.agavi.org/mailman/listinfo/tickets

Reply via email to