I have a question about the last paragraph of you answer.

Regards

Zhongwu

> -----Original Message-----
> From: Craig R. McClanahan [SMTP:[EMAIL PROTECTED]]
> Sent: Wednesday, August 15, 2001 11:40 AM
> To:   Tomcat User's Group; [EMAIL PROTECTED]
> Subject:      Re: Does the servlet security model work with the J2EE
> Blueprint MVC?
> 
> 
> 
> On Wed, 15 Aug 2001, Jerome Jacobsen wrote:
> 
> > Hello,
> > 
> > The Java Servlet Specification (Version 2.3, Draft 2) under SRV.12.2
> states:
> > 
> > "The security model applies to the static content part of the web
> > application and to servlets within the application that are requested by
> the
> > client. The security model does not apply when a servlet uses the
> > RequestDispatcher to invoke a static resource or servlet using a
> forward()
> > or an include()."
> > 
> 
> In other words, the security constraints are only matched on the initial
> request URI, not on paths passed to getRequestDispatcher().
> 
> > Does this mean that using the MVC architecture with a Web controller as
> > described in the J2EE Blueprints precludes the use of this security
> model?
> > 
> 
> Not at all.  You've got at least a couple of approaches to consider:
> 
> * If your MVC architecture uses different URIs for different logical
>   transactions (i.e. you are using either path mapping or extension
>   mapping to map to the controller component) you can protect those
>   URIs with appropriate security constraints.
> 
> * Your controller component can (in addition to or instead of the
>   restrictions based on security constraints) apply additional role-based
>   checking -- perhaps defined in the configuration settings for the
>   controller -- by calling request.isUserInRole() to check whether the
>   user is authorized for one or more roles.
> 
> * Roles can also be used in the view layer to change the presentation
>   (for example, a manager might have more menu options to choose from
>   than a regular user).
> 
> In an MVC-architected web app, your primary concern is whether the user
> can perform the transaction that they requested.  If they can, you
> naturally want them to see the results of performing that transaction, so
> there is no need to protect the RequestDispatcher.forward() used by the
> controller to forward control to the ultimate view component.
> 
> But what if you have users that try to navigate to your JSP pages directly
> (and perhaps bookmark them).  You can take advantage of a related
> specification requirement, and put those JSP pages inside the /WEB-INF
> directory.  This works because the container will refuse to serve anything
> under /WEB-INF directly to the user, but RequestDispatcher.forward() can
> still be used to display them.
> 
        [Lin, Zhongwu]  
        can you explain in more detail on the last paragraph:
        put those JSP pages inside the /WEB-INF
        directory.  This works because the container will refuse to serve
anything
        under /WEB-INF directly to the user, but RequestDispatcher.forward()
can
        still be used to display them.
        [Lin, Zhongwu]  How do I reference those JSP pages inmy app?
        should I do like:
        /WEB_INF/mypage.jsp   

> > -Jerome
> 
> Craig McClanahan
> 

Reply via email to