Le 11/05/2011 00:14, ryan weaver a écrit :
Hey guys-

I'm currently working on refactoring the security documentation (progress here: https://github.com/symfony/symfony-docs/tree/security). The new docs will have a main chapter that follows more of a tutorial style, followed by a bunch of cookbook articles and an in-depth reference docs (much of this will be written after the main chpt is merged).

I have a few questions / comments about the security component. Some of these may just be me not understanding how something should function. Comments are highly appreciated:

* What is the use case for a firewall *not* allowing anonymous users? It
  seems that authorization should be in charge of access control (not the
  firewall requiring authentication up front)? I'm not trying to get rid
of the feature, but forgetting anonymous users causes problems (e.g. redirect loops) and I'm wondering if it should default to being on. I've recommended
  it everywhere in my docs so far.
When you use a PreAuthenticationListener (based on some header of the request, or using the CAS for instance) you don't need to be able to access an url anonymously. the case where you really need the anonymous listener is when using a form-based login.

* In what cases does the developer actually care about the decision manager?
  What are the uses cases and how early do I need to bother a reader with
this detail? It seems that most of authorization is just a system of checking whether or not a user has a role, which really needs to "decision" (it's Boolean)
I guess implementing a custom strategy is not the basic use case and could be done in the cookbook.

* How is the entry point determined when you have multiple authentication
  mechanisms?

* I'd really like to do something about the redirect loop issue (when the
current user doesn't have access to the login page). Can't we do something, like set a header on the redirect and then throw an exception if the firewall tries to redirect with a request having that header (meaning it's redirecting
  twice)? Maybe only in debug mode? I'm seeing this problem popup quite
frequently. Typically it's because a user's firewall doesn't have anonymous
  users enabled. In the new docs, the setup I recommend is with anonymous
  users always enabled, with authorization done with access controls.

* When an AccessDeniedException is thrown - and when the user is fully authenticated -
  I believe the system just lets that exception be thrown and shows the
  normal 500 page. Can we do a better job here? It seems like a 403 header
  is much more appropriate. Also, a different access denied error template
would be great. In general, I believe customizing the error template between types of errors is currently non-trivial (but that's not a topic for here).

* If I have /admin/* protected via an access control and I go to /admin/foo (which is a 404 - no route defined), I do in fact seem to get a 404 - I'm not asked to authenticate. This behaves differently than what I'd expect. I'd expect the access control to deny me access so that I have to authenticate
  before even knowing that the given URL is a dead-end.
The firewall is registered on the onCoreRequest event with a priority of -128 which means that it is called after the RequestListener (priority 0) responsible of routing

* When I'm authenticated and I retrieve the user, it appears to return the
  string "anon." (not an object). So, a user doesn't actually need to be
  an object that implements the UserInterface? Why? And can we make the
anonymous user an object - seems like this will be viewed as inconsistent.
Here is the requirement (taken from an exception message in Symfony\Component\Security\Core\Authentication\Token\AbstractToken) : $user must be an instanceof of UserInterface, an object implementing a __toString method, or a primitive string.

Thanks!

Ryan Weaver
US Office Head & Trainer - KnpLabs - Nashville, TN
http://www.knplabs.com <http://www.knplabs.com/en>
http://www.thatsquality.com
Twitter: @weaverryan
--
If you want to report a vulnerability issue on symfony, please send it to security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/symfony-devs?hl=en


--
Christophe | Stof

--
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/symfony-devs?hl=en

Reply via email to