Open GoogleCodeExporter opened 8 years ago
(on a similar topic)
Any properties that need to be defined should go someone OTHER than
ESAPI.properties. I don't know if we want a separate properties file
for each "feature" (e.g., ldap-authN.properties) or one hugmonous one
for all of the 'contrib' source (e.g., ESAPI-contrib.properties). If the
latter, I'd recommend some some of name space convention, such as
ESAPI.contrib.ldap.authentication.hostname,
ESAPI.contrib.ldap.authentication.port, etc. to prevent conflicts.
(Even that might not be enough if there are multiple LDAP authenticators.)
Original comment by manico.james@gmail.com
on 16 Jan 2010 at 9:53
Other suggestions. (Please note, this one bug is getting hectic, we can split
this up
soon)
1) The configuration implementation needs to become a service that any code
can use. It can be levered by the default security implementation, future
ESAPI providers, 'contributor' providers :) , or proprietary providers
through extension...
2) Support multiple configuration "topics" which are all namespaced as
suggested by Kevin.
3) Continue to provide a ResourceLoader that searches for property files
following a search order.
4) Enable users to use add custom ResourceLoaders. For example: a company
could use a oracle database loader for validation messages and a second
ResourceLoader for crypto info... Resource loaders should be registered for
a particular namespace and chained...
5) Enable combining configuration data for the same "topic" from data stored
in multiple locations. ( i.e. Global and App Validation properties).
6) The configuration implementation should have a strategy to determine
which data to use when it occurs in multiple locations. Organizations will
want to lock down certain global properties and allow others to be
overridden at the war level. The easiest solution I see is to namespace all
preferences and allow a "lock" property to be defined at any namespace
level.
7) Provide caching at the namespace level, optional refresh interval, and
the ability to flush the cache on demand.
Original comment by manico.james@gmail.com
on 17 Jan 2010 at 3:06
Original comment by manico.james@gmail.com
on 18 Jan 2010 at 2:22
Configuration options should also be cascaded - meaning that a property set in
a low-
level resource can be overridden by a configuration loaded higher up the stack.
For
instance if the following is in ESAPI.properties:
ESAPI.Application.Name = "My Awesome Application"
however further up the stack in a properties file being loaded by a specific
application component:
ESAPI.Application.Name = "My Awesome Application Component"
The latter should be whats used.
Original comment by chrisisbeef
on 21 Jan 2010 at 7:29
Original issue reported on code.google.com by
brent.sh...@gmail.com
on 16 Jan 2010 at 5:58