axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andre Charbonneau <andre.charbonn...@nrc-cnrc.gc.ca>
Subject Re: Services sharing same session
Date Wed, 12 Nov 2003 21:06:07 GMT
Hi,

Can this technique be used to go from a form-based authenticated servlet 
  to a basic-auth protected web service?

For example, if a servlet that is protected by form-based auth needs to 
make a web service call that is protected by basic-auth, will this 
method authenticate the user in the web service call? , or will axis 
still look for username/password arguments in the request?

Thanks.
Andre.

chris wrote:
> Hi Magnus - My upcoming book on Axis to be published by O'Reilly will
> cover this topic in depth.
> 
> Basically, you need to capture the Axis session ID from the first
> service that you call and pass the ID across all the instantiated
> service objects.
> 
> For example,
> 
> void CallServices() {
> 
> // create the service locator object
> CqServiceLocator oServiceLocator = new CqServiceLocator();
> 
> // this will globally set all client calls to maintain session state
> // NOTE: SimpleSessionHandler must be present in the flows on both the
> // client and server
> oServiceLocator.setMaintainSession(true);
> 
> // CALL Service to Initialize Session ID !!!
> oServiceLocator.getCq().callMethod();
> 
> // Grab the service session id
> Long oId = getSessionId(oCqServiceLocator);
> 
> TpServiceLocator oTpServiceLocator = new TpServiceLocator();
> 
> // Link the ticketPurchase session to the concertQuery session !!
> setSessionId(oTpServiceLocator,oId);
> 
> // call Tp methods
> }
> 
> static public void setSessionId(Service oService, Long oId) {
>    AxisEngine engine = oService.getEngine();
>    engine.setOption(SimpleSessionHandler.SESSION_ID,oId);
> }
> 
> static public Long getSessionId(Service oService) {
> 
>    AxisEngine engine = oService.getEngine();
>    return (Long)engine.getOption(SimpleSessionHandler.SESSION_ID);
> }
> 
> 
> 
> 
> /Chris
> http://cvs.apache.org/~haddadc
> Author of "Apache Axis: The Definitive Guide", to be published by
> O'Reilly in 2004.
> 
> 
> 
> -----Original Message-----
> From: Magnus Sandberg [mailto:magnus.sandberg@azzets.com] 
> Sent: Thursday, November 06, 2003 3:47 AM
> To: axis-user@ws.apache.org
> Subject: Services sharing same session
> 
> 
> Hi,
> 
> I have several Services running in the same Webapp. Axis seems to
> generate both server and client side OK - but I'd like to share the
> Session between the different services. A simple maintainSession() on
> the client and a getSession() on the server side doesn't seem to be good
> enough. I have also tried a bit using the HTTPSession but I can't get
> that to work either.
> 
> So how do I do this?
> 
> Thanks,
> 
> /Magnus
> 
> 

-- 
Andre Charbonneau

100 Sussex Drive, Rm 2025
Research Computing Support, IMSB
National Research Council Canada
Ottawa, ON, Canada K1A 0R6
613-993-3129  Fax: 613-993-3127


Mime
View raw message