|
||||
URI Gatekeeper is provided in the ext_xsecurity module
IntroAccess control is vital in a production application but can cause headaches during the application development cycle. The URIGateKeeper was developed to provide access control zones which can be applied over a module URI address space. The zones can be easily disabled for development and enabled for production. Access Control ZonesThe image below shows a module's URI address space. In this example the URIGateKeeper is used to provide a single access control zone.
The URIGateKeeper is a simple transparent filter of the URI address space. It attempts to match a URI request to see if it is in an access control zone. If it is it issues a request to a registered access controller for the zone. The access controller either validates the request - in which case the URIGateKeeper transparently reissues the original request. If the request is invalid it serves the requestor with the Login Resource (usually a login prompt). ConfigurationThe URIGateKeeper is a transparent URI filter. It is configured such that all requests to an access controlled module are directed through the URIGateKeeper. The URIGateKeeper accessor maps all gk: scheme URI's. All requests can be directed to the URIGateKeeper with the following rewrite rule... <rule>
<match>(.*)</match> <to>gk:$1</to> </rule>
The URIGateKeeper reads it's configuration from a <GateKeeperPolicy>
<zone> <match>.*/secured/(?!login).*</match> <isValidURI>active:dpml+operand@ffcpl:/secured/sessionvalidator.idoc</isValidURI> <loginURI>ffcpl:/secured/login</loginURI> </zone> </GateKeeperPolicy> The policy specifies a zone as follows
Validation RequestThe URIGateKeeper issues a request to the validation URI specified in the Access control zone policy. It attempts to attach to the validation URI all arguments from the original request which are not duplicated in the validation URI. The URIGateKeeper does not make any interpretation of the requests. It is a simple transparent request director. It is the developers job to ensure the validator URI receives the information it needs to make a validation decision - this could be a simple cookie based mechanism or a more sophisticated session mapping pattern.
|
||||
|
© 2003,2004, 1060® Research Limited
1060 registered trademark, NetKernel trademark of 1060 Research Limited
|
||||