I have got it working, since the server is not started yet, none of the 
underlying infrastructure is available in the realm class constructor.

Sent from my iPhone

> On 11 Oct 2014, at 22:37, Meeraj Kunnumpurath <mee...@servicesymphony.com> 
> wrote:
> 
> Hi,
> 
> I have some specific requirements for security and I have been trying to 
> right a custom realm, that reads information from the database.
> 
> 1. I have added a datasource in the global naming resources section in the 
> server.xml
> 2. I have packaged the realm class in a JAR file and copied it the server lib
> 3. I have included a context.xml in the WAR META-INF, that declares the realm 
> from (2)
> 
> In the constructor of the realm class, I try to look up the datasource,
> 
> 1. If I use new InitialContext().lookup, I get a name not found exception.
> 2. If I try to get the global naming context, by calling getServer from 
> RealBase, getServer returns a null reference.
> 
> This is the entry in server.xml
> 
>        <Resource name="MyDS"
>               auth="Container"
>               type="javax.sql.DataSource"
>               driverClassName="oracle.jdbc.OracleDriver"
>               factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
>               url="jdbc:oracle:thin:@10.211.55.7:1521:xe"
>               username="meeraj"
>               password="password"
>               maxTotal="20"
>               maxIdle="10"
>               maxWaitMillis="-1"
>               accessToUnderlyingConnectionAllowed="true"/>
> 
> This is the entry in the context.xml
> 
> <Realm className="com.ss.security.provider.DatabaseRealm" digest="SHA1"/>
> 
> This is the constructor of the Realm class
> 
>     public DatabaseRealm() throws NamingException {
>         Context context = null;
>         try {
>             context = new InitialContext();
>             template = new SimpleJdbcTemplate((DataSource) 
> context.lookup("MyDS"));
>         } finally {
>             if (context != null) context.close();
>         }
>     }
> 
> Any pointers will be highly appreciated.
> 
> Many thanks
> 
> -- 
> Meeraj Kunnumpurath
> Director and Executive Principal
> Service Symphony Ltd
> 00 44 7702 693597
> mee...@servicesymphony.com

Reply via email to