I would like to know every solutions and keep only the best one to “close a website to every anonymous user”. An anonymous user should only have the login form.
Existing ways:
- using zope security (remove View permission to anonymous on root plonesite)
- using workflows (changing security mapping of published state)
- using apache in proxy with http auth
Is there other solutions ? What is the best one ?
Note: I had an issue when trying using zope security even the login form was not accessible, so please details a bit your way to achieve this.
I would use http://pypi.python.org/pypi/iw.rejectanonymous. It adds a custom traversal hook to the Plone site and only allows access to the login form and the resources used by it for anonymous users.
Keep in mind that in this scenario you cannot cache any pages or listings in a frontend cache, as that would be accessible without authentication. Caching CSS, JS and image resources in Varnish is still a good idea and you can cache things in the browser cache.