Unfortunately it didn't work. I have web.xml as:
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j-myapp.properties</param-value>
</context-param>
<filter>
<filter-name>RequestContextFilter</filter-name>
<filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>RequestContextFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>myApp-root</param-value>
</context-param>
On Sat, Mar 12, 2011 at 5:56 AM, Woonsan Ko <[email protected]> wrote:
>
> --- On Fri, 3/11/11, anyz <[email protected]> wrote:
>
> > From: anyz <[email protected]>
> > Subject: Re: Storing Custom Object in Session on User Login
> > To: "Jetspeed Users List" <[email protected]>
> > Date: Friday, March 11, 2011, 10:44 AM
> > Thanx Woonsan,
> > I worked as you suggested. A object set into session in
> > Filter Class is
> > accessible to rest of portlets. However i am not able to
> > get and set the
> > stuff into the session-scoped spring bean defined in my
> > application. Its
> > seems to be problem with my spring related logic. This bean
> > is later wired
> > into business delegate classes. Without this i have to pass
> > session object
> > to every method of delegate where needed.
> >
> > It throws errors when i try to set a value in
> > session-scoped spring bean.
> >
> > "java.lang.IllegalStateException: No thread-bound request
> > found: Are you
> > referring to request attributes outside of an actual web
> > request, or
> > processing a request outside of the originally receiving
> > thread? If you are
> > actually operating within a web request and still receive
> > this message, your
> > code is probably running outside of
> > DispatcherServlet/DispatcherPortlet: In
> > this case, use RequestContextListener or
> > RequestContextFilter to expose the
> > current request."
>
> I'm afraid it's because your portlet filter is executed before the
> dispatcher portlet is executed. So, the error message seems reasonable.
> It could be fixed just by adding a filter configuration with
> org.springframework.web.filter.RequestContextFilter in the web.xml of your
> portlet application.
> For example,
>
> <filter>
> <filter-name>RequestContextFilter</filter-name>
>
>
> <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
> </filter>
>
> <filter-mapping>
> <filter-name>RequestContextFilter</filter-name>
> <url-pattern>/*</url-pattern>
> <dispatcher>REQUEST</dispatcher>
> <dispatcher>INCLUDE</dispatcher>
> </filter-mapping>
>
> Be sure that the filter-mapping should have 'INCLUDE' dispatcher option
> because the portlet is invoked by including-dispatch from the portal.
>
>
> HTH,
>
> Woonsan
>
>
>
> >
> > I am going t post a question at Spring Forum about this.
> >
> > Thanks once again.
> >
> >
> >
> > On Thu, Mar 10, 2011 at 8:53 PM, Woonsan Ko <[email protected]>
> > wrote:
> >
> > > You may consider using a JSR 286 Portlet Filter, which
> > can intercept
> > > portlet request, so you can access portal session
> > through the portlet
> > > request. It seems possible to set an application-scope
> > session attribute
> > > there for your spring application through the portlet
> > request.
> > >
> > > Woonsan
> > >
> > > --- On Thu, 3/10/11, anyz <[email protected]>
> > wrote:
> > >
> > > > From: anyz <[email protected]>
> > > > Subject: Re: Storing Custom Object in Session on
> > User Login
> > > > To: "Jetspeed Users List" <[email protected]>
> > > > Date: Thursday, March 10, 2011, 12:22 PM
> > > > It could be some thing like a session
> > > > listner in portlet application. We can
> > > > capture event in this listener, when session is
> > created
> > > > (i.e. first request
> > > > to any of portlet in portlet application).
> > However at this
> > > > point we do not
> > > > have access to Portal session.
> > > >
> > > > On Thu, Mar 10, 2011 at 4:02 PM, anyz <[email protected]>
> > > > wrote:
> > > >
> > > > > Woonsan,
> > > > >
> > > > > I have successfully get the session object
> > in Portlet
> > > > applicaton that was
> > > > > set by Portal application in custom security
> > valve.
> > > > There is one more step
> > > > > left in process. Actually portlet
> > application has a
> > > > session-scoped spring
> > > > > bean. The values from session object (set by
> > portal
> > > > app) should be extracted
> > > > > and set into spring bean.This spring bean is
> > then
> > > > accessible to other
> > > > > classes through dependency injection
> > performed by
> > > > Spring.
> > > > >
> > > > > What could be point where i can set the
> > values in
> > > > portlet application
> > > > > session-scoped spring bean. For example
> > writing
> > > > listner kind of thing. Is
> > > > > jet speed providing some thing...a entry
> > point to
> > > > Portlet application?
> > > > >
> > > > > Thanks
> > > > >
> > > > >
> > > > > On Fri, Mar 4, 2011 at 11:14 AM, anyz <[email protected]>
> > > > wrote:
> > > > >
> > > > >> Thats right. Woonsan thank you very much
> > for your
> > > > time and effort. It
> > > > >> helped me a lot to come out of this
> > hard
> > > > situation.
> > > > >>
> > > > >> Thanks
> > > > >>
> > > > >>
> > > > >> On Thu, Mar 3, 2011 at 11:46 PM, Woonsan
> > Ko <[email protected]>
> > > > wrote:
> > > > >>
> > > > >>> As you already know, Jetspeed uses
> > shared
> > > > interfaces/classes if anything
> > > > >>> should be shared among applications.
> > For this
> > > > reason, jetspeed-api and
> > > > >>> jetspeed-commons jar files are
> > deployed into
> > > > the shared class path (e.g.
> > > > >>> $CATALINA_HOME/lib)
> > > > >>>
> > > > >>> Woonsan
> > > > >>>
> > > > >>>
> > > > >>> --- On Thu, 3/3/11, anyz <[email protected]>
> > > > wrote:
> > > > >>>
> > > > >>> > From: anyz <[email protected]>
> > > > >>> > Subject: Re: Storing Custom
> > Object in
> > > > Session on User Login
> > > > >>> > To: "Jetspeed Users List"
> > <[email protected]>
> > > > >>> > Date: Thursday, March 3, 2011,
> > 11:35 AM
> > > > >>> > Since the authenticated
> > Subject
> > > > that
> > > > >>> > was set in session by Portal
> > > > >>> > Application (jetspeed.war) is
> > availabel
> > > > in all portlet
> > > > >>> > applications. How did
> > > > >>> > it work and can't i make my
> > custom calass
> > > > behave
> > > > >>> > similarly.
> > > > >>> >
> > > > >>> > Thanks
> > > > >>> >
> > > > >>> > On Thu, Mar 3, 2011 at 3:21 PM,
> > anyz
> > > > <[email protected]>
> > > > >>> > wrote:
> > > > >>> >
> > > > >>> > > Now portlet development
> > contain lots
> > > > of
> > > > >>> > challenges...As i stated
> > actually i
> > > > >>> > > want to set a custom class
> > (say
> > > > MySessionClass) into
> > > > >>> > session. With security
> > > > >>> > > valve i have to have that
> > class in
> > > > jar file that
> > > > >>> > contains custom security
> > > > >>> > > valve and placed in
> > portal
> > > > application jetspeed.
> > > > >>> > >
> > > > >>> > > While getting this
> > attribute from my
> > > > portlet
> > > > >>> > application i have that
> > > > >>> > > MySessionClass in portlet
> > > > application classpath. Now
> > > > >>> > casting the session
> > > > >>> > > attribute to this causes
> > > > ClassCastException becuase
> > > > >>> > two classes are loaded
> > > > >>> > > by JVM from differnt
> > locations.
> > > > >>> > >
> > > > >>> > > One possible way could be
> > to place
> > > > the MySessionClass
> > > > >>> > in soem common lib or
> > > > >>> > > application server
> > (Tomcat) where
> > > > both portal and
> > > > >>> > portlet application can
> > > > >>> > > access it. But i wonder
> > how people
> > > > achieve this
> > > > >>> > behaviour...ins'nt there
> > > > >>> > > some more simple way.
> > > > >>> > >
> > > > >>> > > On Thu,
> > Mar 3, 2011
> > > > at 12:12 PM, anyz
> > > > >>> > <[email protected]>
> > > > >>> > wrote:
> > > > >>> > >
> > > > >>> > >> Thank you woonsan, it
> > worked
> > > > like a charm.
> > > > >>> > >>
> > > > >>> > >>
> > > > >>> > >> On Thu, Mar 3, 2011 at
> > 4:36 AM,
> > > > Woonsan Ko <[email protected]>
> > > > >>> > wrote:
> > > > >>> > >>
> > > > >>> > >>> In your custom
> > valve, you
> > > > may have set an
> > > > >>> > attribute in an http session
> > of
> > > > >>> > >>> the portal
> > application.
> > > > >>> > >>> Now, you're trying
> > to get
> > > > the attribute in an
> > > > >>> > http session of a portlet
> > > > >>> > >>> application. Http
> > sessions
> > > > are not shared
> > > > >>> > between web applications.
> > > > >>> > >>> So, you can try
> > this from
> > > > your portlet code
> > > > >>> > with Jetspeed API to get
> > > > >>> > >>> accesses to the
> > portal
> > > > session attributes:
> > > > >>> > >>>
> > > > >>> > >>> import
> > > > >>> >
> > > > org.apache.jetspeed.request.RequestContext;
> > > > >>> > >>>
> > > > >>> > >>> RequestContext rc
> > =
> > > > (RequestContext)
> > > > >>> > >>>
> > > > >>> >
> > > >
> > portletRequest.getAttribute(RequestContext.REQUEST_PORTALENV);
> > > > >>> > >>> Object attr =
> > > > >>> >
> > > > rc.getSessionAttribute("some-attribute-name");
> > > > >>> > >>>
> > > > >>> > >>>
> > > > >>> > >>> Woonsan
> > > > >>> > >>>
> > > > >>> > >>> --- On Wed,
> > 3/2/11, anyz
> > > > <[email protected]>
> > > > >>> > wrote:
> > > > >>> > >>>
> > > > >>> > >>> > From: anyz
> > <[email protected]>
> > > > >>> > >>> > Subject: Re:
> > Storing
> > > > Custom Object in
> > > > >>> > Session on User Login
> > > > >>> > >>> > To: "Jetspeed
> > Users
> > > > List" <[email protected]>
> > > > >>> > >>> > Date:
> > Wednesday, March
> > > > 2, 2011, 2:59 PM
> > > > >>> > >>> > I used
> > to get
> > > > session in valve as
> > > > >>> > >>> >
> > > > requestContext.getRequest().getSession()
> > > > >>> > >>> > and then set
> > attribute
> > > > in session.
> > > > >>> > However i am not able to
> > > > >>> > >>> > get this
> > > > >>> > >>> > attribute in
> > portlet
> > > > JSP page from
> > > > >>> > HttpSession or
> > > > >>> > >>> >
> > PortletSession. This
> > > > seems
> > > > >>> > >>> > to be same
> > problem as
> > > > given in another
> > > > >>> > thread at
> > > > >>> > >>> >
> > > > >>>
> http://permalink.gmane.org/gmane.comp.jakarta.jetspeed.user/23626
> > > > >>> > >>> >
> > > > >>> > >>> > Probably if i
> > could set
> > > > the attribute in
> > > > >>> > portletsession and
> > > > >>> > >>> > with
> > > > >>> > >>> >
> > APPLICATION_SCOPE that
> > > > may be available.
> > > > >>> > But its not
> > > > >>> > >>> > possibel to
> > get
> > > > portlet
> > > > >>> > >>> > session in
> > valve.
> > > > >>> > >>> >
> > > > >>> > >>> >
> > > > >>> > >>> >
> > > > >>> > >>> >
> > > > >>> > >>> >
> > > > >>> > >>> > On Wed, Mar
> > 2, 2011 at
> > > > 5:54 PM, anyz
> > > > >>> > <[email protected]>
> > > > >>> > >>> > wrote:
> > > > >>> > >>> >
> > > > >>> > >>> > > In
> > custom security
> > > > valve if i set an
> > > > >>> > attribute in
> > > > >>> > >>> > session.
> > Later i 'm
> > > > not
> > > > >>> > >>> > > able to
> > get this
> > > > attribute in
> > > > >>> > portlet JSP page. It is
> > > > >>> > >>> > always
> > > > >>> > >>> > > NULL.
> > Application
> > > > is deployed on
> > > > >>> > Tomcat and already
> > > > >>> > >>> > have set
> > > > >>> > >>> > >
> > > > crossContext="true". Does the
> > > > >>> > session get overridden
> > > > >>> > >>> > somewhere?
> > > > >>> > >>> > >
> > > > >>> > >>> > > Thanks
> > > > >>> > >>> > >
> > > > >>> > >>> >
> > > > > On Wed, Mar 2, 2011
> > > > >>> > at 3:59 PM, anyz
> > > > >>> > >>> > <[email protected]>
> > > > >>> > >>> > wrote:
> > > > >>> > >>> > >
> > > > >>> > >>> > >> I
> > think i got
> > > > it...added the
> > > > >>> > custom valve in
> > > > >>> > >>> > default
> > jetspeed
> > > > pipeline
> > > > >>> > >>> > >> that
> > is in the
> > > > following bean:
> > > > >>> > >>> > >>
> > > > >>> > >>> > >>
> > <bean
> > > > >>> >
> > id="jetspeed-pipeline"......../>
> > > > >>> > >>> > >>
> > > > >>> > >>> > >> It
> > is added
> > > > after <ref
> > > > >>> > >>> >
> > > > bean="loginValidationValve" /> in
> > > > >>> > constructor
> > > > >>> > >>> > >>
> > argument list.
> > > > Now subject and
> > > > >>> > everything is
> > > > >>> > >>> > available.]
> > > > >>> > >>> > >>
> > > > >>> > >>> > >> Is
> > this
> > > > correct way to do
> > > > >>> > things?
> > > > >>> > >>> > >>
> > > > >>> > >>> > >>
> > > > >>> > >>> > >>
> > > > >>> > >>> > >>
> > > > >>> > >>> > >> On
> > Wed, Mar 2,
> > > > 2011 at 3:37 PM,
> > > > >>> > anyz <[email protected]>
> > > > >>> > >>> > wrote:
> > > > >>> > >>> > >>
> > > > >>> > >>> > >>>
> > I added
> > > > custom valve in
> > > > >>> > "login-pipeline" bean
> > > > >>> > >>> > defined in
> > > > pipelines.xml
> > > > >>> > >>> > >>>
> > that is
> > > > probably not right
> > > > >>> > place to do.
> > > > >>> > >>> > >>>
> > > > >>> > >>> > >>>
> > > > >>> > >>> > >>>
> > > > >>> > >>> > >>>
> > On Wed,
> > > > Mar 2, 2011 at 3:10
> > > > >>> > PM, anyz <[email protected]>
> > > > >>> > >>> > wrote:
> > > > >>> > >>> > >>>
> > > > >>> > >>> >
> > >>>> I
> > > > implemented my custom
> > > > >>> > valve by extending
> > > > >>> > >>> >
> > AbstractSecurityValve.
> > > > The
> > > > >>> > >>> >
> > >>>>
> > > > documentation says this
> > > > >>> > valve
> > > > >>> > >>> >
> > "Authenticates the user
> > > > or redirects to
> > > > >>> > Login
> > > > >>> > >>> >
> > >>>> if
> > > > necessary, adds the
> > > > >>> > authenticated
> > > > >>> > >>> > Subject to
> > the
> > > > RequestContext."
> > > > >>> > >>> >
> > >>>>
> > > > However in the invoke()
> > > > >>> > method as i try to
> > > > >>> > >>> > get subject
> > from
> > > > request
> > > > >>> > >>> >
> > >>>>
> > > > context its always
> > > > >>> > NULL.
> > > > >>> > >>> >
> > >>>>
> > > > >>> > >>> >
> > >>>> My
> > > > understanding is this
> > > > >>> > valve invokes
> > > > >>> > >>> > login module
> > to
> > > > authenticate user
> > > > >>> > >>> >
> > >>>> and
> > > > once authentication
> > > > >>> > done it sets teh
> > > > >>> > >>> > subject in
> > request
> > > > context. I have
> > > > >>> > >>> >
> > >>>> called
> > > > the
> > > > >>> > super.invoke(rc,vc) in my
> > > > >>> > >>> > custom valve
> > but
> > > > subject is always
> > > > >>> > >>> >
> > >>>> NULL.
> > > > >>> > >>> >
> > >>>>
> > > > >>> > >>> >
> > >>>> Could
> > > > you please guide
> > > > >>> > what am i missing?
> > > > >>> > >>> >
> > >>>>
> > > > >>> > >>> >
> > >>>>
> > > > Thanks
> > > > >>> > >>> >
> > >>>>
> > > > >>> > >>> >
> > >>>>
> > > > >>> > >>> >
> > >>>>
> > > > >>> > >>> >
> > >>>> On
> > > > Wed, Mar 2, 2011 at
> > > > >>> > 4:17 AM, Woonsan Ko
> > > > >>> > >>> > <[email protected]>
> > > > >>> > >>> > wrote:
> > > > >>> > >>> >
> > >>>>
> > > > >>> > >>> >
> > >>>>>
> > > > >>> > >>> >
> > >>>>>
> > > > --- On Tue, 3/1/11,
> > > > >>> > anyz <[email protected]>
> > > > >>> > >>> > wrote:
> > > > >>> > >>> >
> > >>>>>
> > > > >>> > >>> >
> > >>>>>
> > > > > From: anyz
> > > > >>> > <[email protected]>
> > > > >>> > >>> >
> > >>>>>
> > > > > Subject:
> > > > >>> > Storing Custom Object in
> > > > >>> > >>> > Session on
> > User Login
> > > > >>> > >>> >
> > >>>>>
> > > > > To: "Jetspeed
> > > > >>> > Users List" <[email protected]>
> > > > >>> > >>> >
> > >>>>>
> > > > > Date: Tuesday,
> > > > >>> > March 1, 2011,
> > > > >>> > >>> > 6:49 AM
> > > > >>> > >>> >
> > >>>>>
> > > > > I need to set a
> > > > >>> > custom class
> > > > >>> > >>> > object
> > > > >>> > >>> >
> > >>>>>
> > > > > into session
> > > > >>> > once user logged
> > > > >>> > >>> > into
> > > > >>> > >>> >
> > >>>>>
> > > > > Jetspeed. This
> > > > >>> > object will be
> > > > >>> > >>> > accessed and
> > used later
> > > > by
> > > > >>> > >>> >
> > >>>>>
> > > > > portlets.
> > > > >>> > After
> > > > >>> > >>> >
> > >>>>>
> > > > > searching into
> > > > >>> > email list and
> > > > >>> > >>> > forum i found
> > two ways
> > > > of
> > > > >>> > >>> >
> > >>>>>
> > > > > intercepting
> > > > >>> > J2
> > > > >>> > >>> >
> > >>>>>
> > > > > login process:
> > > > >>> > >>> >
> > >>>>>
> > > > >
> > > > >>> > >>> >
> > >>>>>
> > > > > 1- Custom Login
> > > > >>> > Module
> > > > >>> > >>> >
> > >>>>>
> > > > > 2- Custom
> > > > >>> > Security Valve and
> > > > >>> > >>> > possibly
> > Filter (not
> > > > sure if
> > > > >>> > >>> >
> > >>>>>
> > > > > Filter works
> > > > >>> > in
> > > > >>> > >>> >
> > >>>>>
> > > > > Jetspeed 2.2.1
> > > > >>> > or its for old
> > > > >>> > >>> > version)
> > > > >>> > >>> >
> > >>>>>
> > > > >
> > > > >>> > >>> >
> > >>>>>
> > > > > I manged to
> > > > >>> > plug my custom login
> > > > >>> > >>> > module
> > however i could
> > > > not
> > > > >>> > >>> >
> > >>>>>
> > > > > find a way to
> > > > >>> > >>> >
> > >>>>>
> > > > > get session in
> > > > >>> > login() method and
> > > > >>> > >>> > set my custom
> > class
> > > > >>> > >>> >
> > >>>>>
> > > > > object into
> > > > >>> > session.
> > > > >>> > >>> >
> > >>>>>
> > > > > Is it possible
> > > > >>> > to get HttpSession
> > > > >>> > >>> > in custom
> > login
> > > > module?
> > > > >>> > >>> >
> > >>>>>
> > > > >>> > >>> >
> > >>>>> It
> > > > is not possible
> > > > >>> > to access
> > > > >>> > >>> > HttpSession
> > in a JAAS
> > > > LoginModule.
> > > > >>> > >>> >
> > >>>>>
> > > > >>> > >>> >
> > >>>>>
> > > > >
> > > > >>> > >>> >
> > >>>>>
> > > > > If i have write
> > > > >>> > security valve,
> > > > >>> > >>> > do i also
> > need some
> > > > sort of
> > > > >>> > >>> >
> > >>>>>
> > > > > Serverlt
> > > > >>> > filter
> > > > >>> > >>> >
> > >>>>>
> > > > > where i can set
> > > > >>> > custom object
> > > > >>> > >>> > into
> > session.
> > > > >>> > >>> >
> > >>>>>
> > > > >>> > >>> >
> > >>>>>
> > > > You don't need a
> > > > >>> > servlet filter if you
> > > > >>> > >>> > use a custom
> > security
> > > > valve.
> > > > >>> > >>> >
> > >>>>>
> > > > Servlet filter such
> > > > >>> > as
> > > > >>> > >>> >
> > PoralLoginFilter is
> > > > enabled/used only for
> > > > >>> > some
> > > > >>> > >>> >
> > >>>>>
> > > > environment like WAS
> > > > >>> > instead of
> > > > >>> > >>> > Jetspeed
> > JAAS
> > > > LoginModule.
> > > > >>> > >>> >
> > >>>>>
> > > > >>> > >>> >
> > >>>>>
> > > > >>> > >>> >
> > >>>>>
> > > > Woonsan
> > > > >>> > >>> >
> > >>>>>
> > > > >>> > >>> >
> > >>>>>
> > > > >
> > > > >>> > >>> >
> > >>>>>
> > > > >
> > > > >>> > >>> >
> > >>>>>
> > > > > Thanks
> > > > >>> > >>> >
> > >>>>>
> > > > >
> > > > >>> > >>> >
> > >>>>>
> > > > >>> > >>> >
> > >>>>>
> > > > >>> > >>> >
> > >>>>>
> > > > >>> > >>> >
> > >>>>>
> > > > >>> > >>> >
> > >>>>>
> > > > >>> > >>> >
> > > > >>> >
> > > >
> > ---------------------------------------------------------------------
> > > > >>> > >>> >
> > >>>>> 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]
> > >
> > >
> >
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>