JAAS DatabaseServerLoginModule rolesQuery不返回用户角色

时间:2013-05-21 09:18:18

标签: jboss7.x jaas database-server

我将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恢复角色,因此授权失败。例如,对于角色为krisv的用户dme,如果我在eclipse中rolesQuery内执行scrapbook,我会得到以下结果: enter image description here
但是,当我想访问角色dmeauth-constraint的网页时,我会收到以下信息: enter image description here

1 个答案:

答案 0 :(得分:1)

'ROLES'部分由JBOSS读取,它只能理解它应该读取的“角色”,告诉我这对你有什么作用

"SELECT USERROLES, 'Roles' FROM FO.USERROLES WHERE USERNAME=?"