That helped a lot thanks but could the parameters of 
     <parameter name="allowedRoles" value="user1"/>

be stored in a MySQL database?

-----Original Message-----
From: Adrian Perez Jorge [mailto:[EMAIL PROTECTED] 
Sent: 24 November 2004 13:33
To: [EMAIL PROTECTED]
Subject: Re: Axis and authenication

Suzy Fynes wrote:

>  
>
>  
>
> Is there a better way of authenticating a user to access an axis WS 
> other than using the permission list? If there were 100s of users what

> needs to be done?
>
>  
>
> Thanks
>
> Suzy
>
I suppose your axis WS is using 
org.apache.axis.security.simple.SimpleSecurityProvider as the security 
provider.  That simple provider just look up users in a user.lst file. 
For a production enviroment of 100s of users I recommend you:

 - to use org.apache.axis.security.servlet.ServletSecurityProvider if 
your servlet container has already the right mechanism to handle that 
amount of users; for example many servlet containers are able to talk to

a LDAP server, a NT domain, a JDBC database, etc.  This is the best 
approach if your J2EE application users are the same than your web 
services users.

 - to create your own security provider, just implementing 
org.apache.axis.security.SecurityProvider (and also AuthenticatedUser), 
which for example query a LDAP server, a JDBC database or whatever you
want.

  It seemd <requestFlow/> is the tag to be used to add the 
authentication handler, for example:

  ...

  <service name="WebserviceName1" provider="java:RPC">
     <parameter name="className" 
                      value="HelloWebservice"/>
     <parameter name="allowedMethods" value="getHello"/>
     <parameter name="allowedRoles" value="user1"/>
     <requestFlow name="authorizationFlow">
          <handler
type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
          <handler
type="java:org.apache.axis.handlers.SimpleAuthorizationHandler"/>
      </requestFlow>
  ...

  Hope that helped,

Adrian P.J.




Reply via email to