Hi,
We use org.apache.catalina.realm.DataSourceRealm to authenticate and so on.

The Realm is configured in META-INF/context.xml referencing a Datasource by 
name:
<Realm className="org.apache.catalina.realm.DataSourceRealm" 
dataSourceName="jdbc/sheeprealm" digest="MD5" roleNameCol="ROLE_NAME" 
userCredCol="USER_PASS" userNameCol="USER_NAME" 
userRoleTable="GESTHO.VR_AUTH_USER_ROLES" 
userTable="GESTHO.VR_AUTH_USER_PASSWORD"/>

The Datasource is configured in server.xml in GlobalNamingResources:
<Resource auth="Container" 
connectionProperties="v$session.program=08_SchafeRealm;" 
driverClassName="oracle.jdbc.OracleDriver" maxActive="20" maxIdle="10" 
maxWait="-1" name="jdbc/sheeprealm" password="XXX" type="javax.sql.DataSource" 
url="XXX" username="XXX"/>

I'd like to do the resource definition in resources.xml to be able to use 
Placeholders for DatabaseUrl. But if I move the declaration to resource.xml the 
Realm dosen't find the Datasource.

Okt 25, 2012 2:48:36 PM org.apache.catalina.realm.DataSourceRealm open
Schwerwiegend: Exception performing authentication
javax.naming.NameNotFoundException: Name [sheeprealm] is not bound in this 
Context. Unable to find [sheeprealm].
        at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:154)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:831)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
        at 
org.apache.catalina.realm.DataSourceRealm.open(DataSourceRealm.java:394)
        at 
org.apache.catalina.realm.DataSourceRealm.authenticate(DataSourceRealm.java:285)
        at 
org.apache.catalina.realm.CombinedRealm.authenticate(CombinedRealm.java:146)
        at org.apache.tomee.catalina.TomEERealm.authenticate(TomEERealm.java:43)
        at 
org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:295)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:450)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)


Is it possible, and how do I do that?

Martin Berner

Reply via email to