JAAS DatabaseServerLoginModule rolesQuery 不返回用户角色
Posted
技术标签:
【中文标题】JAAS DatabaseServerLoginModule rolesQuery 不返回用户角色【英文标题】:JAAS DatabaseServerLoginModule rolesQuery does not return user roles 【发布时间】:2013-05-16 00:05:42 【问题描述】:我使用 JAAS 和 JBoss 作为 7。使用的登录模块是 DatabaseServerLoginModule
。这是我的配置:
<login-module code="Database" flag="required">
<module-option name="dsJndiName" value="java:jboss/datasources/oracleDS"/>
<module-option name="principalsQuery" value="SELECT PASSWD FROM FO.USERS WHERE USERNAME=?"/>
<module-option name="rolesQuery" value="SELECT USERROLES, 'ROLES' FROM FO.USERROLES WHERE USERNAME=?"/>
</login-module>
身份验证成功进行,没有任何问题(登录模块能够恢复给定用户名的密码)。但我的问题是它无法使用rolesQuery
恢复角色,因此授权失败。例如,对于角色为dme
的用户krisv
,如果我在eclipse 中的scrapbook
内执行rolesQuery
,我会得到以下结果:
但是,当我想访问角色为dme
为auth-constraint
的网页时,我得到以下信息:
【问题讨论】:
【参考方案1】:'ROLES' 部分由 JBOSS 读取,它只理解驼峰式,它应该读取 'Roles' 告诉我这对你有什么影响
"SELECT USERROLES, 'Roles' FROM FO.USERROLES WHERE USERNAME=?"
【讨论】:
以上是关于JAAS DatabaseServerLoginModule rolesQuery 不返回用户角色的主要内容,如果未能解决你的问题,请参考以下文章
Apache Tomcat 1.7 如何将附加参数传递给 JAAS