I've cloned your repository, added the jndi config, and submitted a 
pull request.  I was able to get it working using the exact same 
datasource setup as you had in shiro.ini.

If you run this with jetty (mvn jetty:run) then you can see it work.  A 
couple of things to mention:

1. Logging is working great in the jetty setup.  This leads me to 
believe that glassfish is somehow overriding your logging 
configuration.  I recommend consulting glassfish documentation.
2. I don't know how to setup a jndi resource in glassfish.  Again, 
you'll need to consult the glassfish documentation for that.

In general, I find the maven-jetty-plugin to be incredibly useful for 
determining if I have an issue in webapp, or in my appserver 
configuration.  It also lets me run a test iteration that involves 
deploying the webapp must faster than most other methods.

-Jared

On Mon 21 May 2012 05:21:21 AM CDT, Paulo Pires wrote:
> I'm using a MySQL ConnectionPoolDataSource so I've tried with
> requiredType = javax.sql.ConnectionPoolDataSource and =
> com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource but both
> failed when bootstrapping Shiro's environment.
>
> If I comment that property, no errors are raised but I can't login in my
> app. Also, I've been unable to put Shiro logging into a file.
>
> Thanks anyway,
> PP
>
> On 18/05/12 22:54, Jared Bunting wrote:
>> I believe you can do something like this: (untested)
>>
>> ds = org.apache.shiro.jndi.JndiObjectFactory
>> ds.resourceName = jdbc/myDS
>> ds.requiredType = javax.sql.DataSource # optional, but nice for early
>> failures
>>
>> jdbcRealm.datasource = $ds
>>
>> -Jared
>>
>> On Fri 18 May 2012 04:51:17 PM CDT, Paulo Pires wrote:
>>> Hi all,
>>>
>>> How can one define a DataSource in 'shiro.ini' pointing to a JNDI. For
>>> instance, I have the following properties set:
>>>
>>> ds = com.jolbox.bonecp.BoneCPDataSource
>>> ds.driverClass=com.mysql.jdbc.Driver
>>> ds.jdbcUrl=jdbc:mysql://localhost:3306/simple_shiro_web_app
>>> ds.username = root
>>> ds.password = 123qwe
>>> jdbcRealm = org.apache.shiro.realm.jdbc.JdbcRealm
>>> jdbcRealm.dataSource=$ds
>>>
>>> Unfortunately, everyone that has access to my WAR package is able to
>>> read this configuration and eventually misuse it. And I don't want to
>>> discuss here that I could create a MySQL user with read-only
>>> permissions to the tables Shiro needs. That's not my point.
>>>
>>> What I'd really like, is to simply refer a JNDI path like this:
>>> # DataSource previously configured in the container
>>> ds = jdbc/myDS
>>> jdbcRealm.datasource = $ds
>>>
>>> Is this even possible? If not, would it interest anyone else?
>>>
>>> Cheers,
>>> --
>>> Paulo Pires
>>
>


Reply via email to