我将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
,我会得到以下结果:
但是,当我想访问角色dme
为auth-constraint
的网页时,我会收到以下信息:
答案 0 :(得分:1)
'ROLES'部分由JBOSS读取,它只能理解它应该读取的“角色”,告诉我这对你有什么作用
"SELECT USERROLES, 'Roles' FROM FO.USERROLES WHERE USERNAME=?"