I have implemented struts in some projects and have found a need for doing declarative 
security.  Much like your role-based security, I would like to define the security in 
the struts config xml file, but I am looking at taking a step further.  I would 
appreciate any advice or pointers.  This will be my first time getting deep into the 
Struts source code.

The problem I am trying to get a good solution for is redundant code checking 
conditions at the beginning of each action.  If the user doesn't pass all the 
conditions then they are rejected from the page.  The rejection would be configurable 
to either show as a "page not found" or would forward/redirect them to a specified 
page.

Here is what I was thinking that the struts config file might look like.  

    <security-checker   name="roleCheck"  class="com.schehl.security.IsUserInRole" />

    <action path="/showMain" type="com.schehl.main.webapp.MainAction">
      <security    name="roleCheck">
           <param>
               <param-name>allow-roles</param-name>
                <param-value>admin</parm-value>
            </param>
            <param>
               <param-name>allow-users</param-name>
                <param-value>admin</parm-value>
            </param>
            <failure    path="/pages/no-access.jsp"/>
            <!-- failure    response="no page" / -->
      </security>

      <forward name="success" path="/pages/main.jsp" />
    </action>


The class com.schehl.security.IsUserInRole would extend a class, 
com.strutssecurity.SecurityChecker, which would be responsible for setting the 
configuration parameters and would have a method boolean check(HttpRequest request) 
which would default to pass back true, but would be overridden to perform the checks.

I thank you so much for any and all help, advice, or redirection you can give me.

Thanks,
Micah J. Schehl


    

Reply via email to