我正在尝试在OSGi项目中实现身份验证包,我决定使用这个功能强大的Apache Shiro框架。当我尝试使用这个shiro.ini文件启动JDBC领域时:
[main]
# Create JDBC realm.
jdbcRealm = org.apache.shiro.realm.jdbc.JdbcRealm
# Configure JDBC realm datasource.
dataSource = org.postgresql.Driver
dataSource.URL = jdbc:postgresql://127.0.0.1:5432/user
dataSource.user = postgres
dataSource.password = postgres
jdbcRealm.dataSource = $dataSource
# Configure JDBC realm SQL queries.
jdbcRealm.authenticationQuery = SELECT password FROM Users WHERE email = ?
jdbcRealm.userRolesQuery = SELECT role from roles WHERE id = (SELECT roleId FROM UserRoles WHERE userId = (SELECT id FROM Users WHERE email = ?))
我收到此错误消息:
无法启动捆绑包 com.soner.prototype.auth.application.client-1.0.0.1,异常 激活器错误。无法实例化类[org.postgresql.Driver] 对于名为'dataSource'的对象。请确保您已指定 完全限定的类名正确。从: org.apache.shiro.config.ReflectionBuilder:createNewInstance#309
我正在使用PostgreSQL,因为它在.ini文件中看到,并且我已经加载了PostegreSQL驱动程序包,然后才激活Shiro包。
我认为我应该拥有Shiro JDBC领域类,并且它们位于Apache Shiro Core包中,我将其作为包导入。有没有人有这个问题的想法或解决方法? Shiro是否仅在OSGi环境中使用其原生.ini文件域?
提前致谢..