final PageManager myFinalPageManager = myPageManager;
final String myFinalFolderPath = myfolderPath;
Exception e = (Exception) Subject.doAsPrivileged(mySubject, new 
PrivilegedAction()
    {
        public Object run() 
        {
            try
            {
                Folder f = myFinalPageManager.getFolder(myFinalFolderPath);
                f.setTitle("Did Something To My Folder From A Servlet!");
                myFinalPageManager.updateFolder(f);                 
                return null;
            }
            catch (Exception e)
            {
                return e;
            }                    
        }
    }, null);
            
if(e != null)
{
    log("EXCEPTION", e);
}       


On Wed, 2006-03-22 at 11:04 -0500, Sie, Yang wrote:
> Hi Dave and Randy,
> 
> I didn't mean to be picky ;-). I also finally found that line in
> AbstractSecurityValve. 
> 
> First of all, I do want to use in my security Subject. According to the
> Subject API, we have two doAsPrivileged(subject,action,controlcontext)
> methods. Both take three parameters and return an Object type. 
> 
> * First parameter: subject. I have it.
> * Second parameter: action. I am not sure what to put in as my
> "privileged action". Your sample was to invoke another valve. My target
> was to make pageManager.updateFolder work. how can I plug this in? since
> the implementation of 'new PrivilegedAction()' requires a 'final'
> variable.
> * third parameter: accessControlContext. AccessController.getContext()
> may do, but I am not sure. But is this accessControlerContext going to
> be interpreted the same by the AbstractBaseElemet.java (Subject subject
> = Subject.getSubject(AccessController.getContext());)?
> * the return Object: what should I have it there?  
> 
> In the end, my problem is solved if my Subject is recognized by
> AbstractBaseElemet.java. 
> 
> Thank you,
> 
> ---Yang
> 
> 
> -----Original Message-----
> From: David Sean Taylor [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, March 21, 2006 10:24 PM
> To: Jetspeed Users List
> Subject: Re: Use PageManager from a servlet
> 
> Hi Yang,
> 
> Jeez, are you giving Randy a hard time for a few typos or what? ;)
> 
> The class is
> 
> org.apache.jetspeed.security.impl.AbstractSecurityValve.java
> 
>   from svn head, line 112:
> 
> PipelineException pe =
>        (PipelineException)
>        Subject.doAsPrivileged(subject, new PrivilegedAction()
> 
> Not sure how you are assembling your Page Manager.
> Take a look at the importer's assembly under
> etc/import-page-manager.xml:
> 
>         <!-- permissions security enabled flag, default=false -->
>         <constructor-arg
> index="4"><value>false</value></constructor-arg>
>         <!-- constraints security enabled flag, default=true -->
>         <constructor-arg
> index="5"><value>false</value></constructor-arg>
> 
> It turns off all security checks.
> Not sure if that is what you want or need...but it may be another 
> option, but beware you are running completly unsecured this way, so its 
> probably better to run under the Subject's privileged action as Randy 
> recommended
> 
> 
> Sie, Yang wrote:
> > Hello Randy:
> > 
> > Thank you for your response. I searched my code and could NOT find
> what
> > you mentioned. There is no AbstractSecurityValveImpl class. I also
> > looked into both AbstractSecurityValve and SecurityValveImpl classes.
> > There was no doPrivilegedAs(). I even could not find the string
> > doPrivilegedAs anywhere. Please advise more detail in this. (Do I need
> > the latest code base?)
> > 
> > I can get the subject from the servlet but how to pass it along to be
> > used by AbstractBaseElement class is what I am looking for. 
> > 
> > Thank you again!
> > 
> > ---Yang
> >  
> > 
> > -----Original Message-----
> > From: Randy Watler [mailto:[EMAIL PROTECTED] 
> > Sent: Tuesday, March 21, 2006 8:37 PM
> > To: Jetspeed Users List
> > Subject: Re: Use PageManager from a servlet
> > 
> > To use the PageManager component from a servlet, one needs to setup
> the
> > subject manually. You need to access the Subject from the session and
> > use it in a doPrivilegedAs() context as in done in the
> > AbstractSecurityValveImpl.
> > 
> > HTH,
> > 
> > Randy  
> > 
> > On Tue, 2006-03-21 at 13:18 -0500, Sie, Yang wrote:
> > 
> >>Hello all:
> >>
> >>I am trying to use the page Manager from a servlet to create a folder.
> > 
> > 
> >>I am hitting an error saying that Subject is missing (
> >>AbstractBaseElement.checkConstraints(): Missing Subject. ). 
> >>The error happened when calling pageManager.updateFolder()   
> >>It seemed that my auth Subject object didn't get recognized by the
> >>AccessController.getContext() (ref: Subject subject =
> >>Subject.getSubject(AccessController.getContext()); of
> >>org.apache.jetspeed.om.page.psml.AbstractBaseElement.java)
> >>
> >>JS2 ver. 2.1 Dev.
> >>
> >>Please advise. Thank you.
> >>
> >>---Yang
> >>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> > 
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> > 
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to