You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by Berner Martin <Ma...@qualitasag.ch> on 2012/10/25 14:50:11 UTC
DataSourceRealm and resource.xml
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
AW: DataSourceRealm and resource.xml
Posted by Berner Martin <Ma...@qualitasag.ch>.
Thanks. I got it to work:
But dataSourceName was little bit different from your sugestion: dataSourceName="openejb/Resource/jdbc/sheeprealm"
And I had set Datasource as local: localDataSource="true"
In resource.xml:
----------------
<Resource id="jdbc/sheeprealm" type="DataSource">
DataSourceCreator tomcat
JtaManaged false
JdbcDriver oracle.jdbc.driver.OracleDriver
JdbcUrl ${ch.qual.database.ar01.url}
UserName <DB_USER>
Password <DB_PWD>
ConnectionProperties v$session.program=08_SchafeRealm;
maxAge 0
initialSize ${ch.qual.database.ar01.poolsize}
maxActive 10
maxIdle 5
MinIdle ${ch.qual.database.ar01.poolsize}
maxWait 30000
validationQuery SELECT GESTHO.PA_ANI.nGetAniID('US 184087.2') FROM DUAL
testOnBorrow true
testOnReturn true
testWhileIdle false
timeBetweenEvictionRunsMillis -1
numTestsPerEvictionRun 5
minEvictableIdleTimeMillis 1800000
</Resource>
In context.xml:
---------------
<Realm localDataSource="true"
className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="openejb/Resource/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"/>
Martin Berner
-----Ursprüngliche Nachricht-----
Von: José Luis Cetina [mailto:maxtorzito@gmail.com]
Gesendet: Donnerstag, 25. Oktober 2012 18:22
An: users@openejb.apache.org
Betreff: Re: DataSourceRealm and resource.xml
You have to use: "openejb:Resource/" + dataSourceName
2012/10/25 Romain Manni-Bucau <rm...@gmail.com>
> Use java:openejb/Resource prefix i think
> Le 25 oct. 2012 14:50, "Berner Martin" <Ma...@qualitasag.ch> a
> écrit :
>
> > 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
> >
>
--
-------------------------------------------------------------------
*SCJA. José Luis Cetina*
-------------------------------------------------------------------
Re: DataSourceRealm and resource.xml
Posted by José Luis Cetina <ma...@gmail.com>.
You have to use: "openejb:Resource/" + dataSourceName
2012/10/25 Romain Manni-Bucau <rm...@gmail.com>
> Use java:openejb/Resource prefix i think
> Le 25 oct. 2012 14:50, "Berner Martin" <Ma...@qualitasag.ch> a
> écrit :
>
> > 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
> >
>
--
-------------------------------------------------------------------
*SCJA. José Luis Cetina*
-------------------------------------------------------------------
Re: DataSourceRealm and resource.xml
Posted by Romain Manni-Bucau <rm...@gmail.com>.
Use java:openejb/Resource prefix i think
Le 25 oct. 2012 14:50, "Berner Martin" <Ma...@qualitasag.ch> a
écrit :
> 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
>