> What's the preferred way to mix public and private pages within a
> single JServ servlet zone?  The FSD doc says:
>
> "...for the pages that you will want to make secure, you should define
> a Layout that executes the SessionValidator action to make things
> secure. Then, your Screens should call that "secure" Layout."
>
> It seems simpler to use a custom SessionValidator whose
> requiresNewSession() method would return false for the public
> screens.  Those screen names could be listed in a properties file
> somewhere.  Is that a bad idea?
>
Bad idea? No, not really. Perhaps a bit impure from an OO viewpoint, though.

Here's another possible impl:
    1. Define a SecureScreen class that extends Screen.
    2. Make your non-public screens extend SecureScreen and your public screens
extend Screen.
    3. Impl SecureScreen.build() to look something like this:

        protected ConcreteElement build(RunData datd) {
            // Perform authorization
            if (isAuthorizedUser(data)) {
                return doBuild(data);
            } else {
                throw new Exception("User is not authorized to view this
scren.");
                // or return some error message
            }
        }

        private boolean isAuthorizedUser(RunData data) {
            // Perform SessionValidator check here.
        }

Note: If you want to mix WebMacro and non-WebMacro secure screens, you'll have
to define two new base classes - SecureScreen (extends Screen) and
SecureWebMacroSiteScreen (extends WebMacroSiteScreen). Ah, the dilemmas of
single-inheritance. ;-)

More info:
<http://www.mail-archive.com/[email protected]/msg01598.html>

> -- Travis Low
>    <mailto:[EMAIL PROTECTED]>
>    <http://dawnstar.org/travis>
>

--
Christopher Elkins



------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Search: <http://www.mail-archive.com/turbine%40list.working-dogs.com/>
Problems?:           [EMAIL PROTECTED]

Reply via email to