问题描述
|
您好,我正在尝试在jboss上执行基于表单的身份验证:
这些是我的配置文件。
login-config.xml:
<application-policy name=\"MyPolicy\">
<authentication>
<login-module flag=\"required\"
code=\"org.jboss.security.auth.spi.DatabaseServerLoginModule\">
<module-option name=\"dsJndiName\">java:/espritDS</module-option>
<module-option name=\"principalsQuery\">SELECT password FROM users WHERE
username=?</module-option>
<module-option name=\"rolesQuery\">SELECT groupname FROM groups WHERE
username=?</module-option>
</login-module>
</authentication>
web.xml:
<!-- Security -->
<security-constraint>
<web-resource-collection>
<web-resource-name>secret</web-resource-name>
<url-pattern>/faces/secret/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/faces/login.jsp</form-login-page>
<form-error-page>/faces/loginError.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>admin</role-name>
</security-role>
和jboss-web.xml:
<jboss-web>
<!-- A security domain that restricts access -->
<security-domain>java:/jaas/MyPolicy</security-domain>
</jboss-web>
我以为我不需要设置用户和角色文件,因为我有一个数据库,我在其中插入了一些用户和角色,但是我遇到了这种异常,因此无法处理:
11:57:26,587错误[UsersRolesLoginModule]无法加载用户/密码/角色文件
java.io.IOException:无属性文件:users.properties或默认值:defaultUsers.properties被找到
解决方法
您的
rolesQuery
有误。它看起来应该像这样:
<module-option name=\"rolesQuery\">SELECT groupname,\'Roles\' FROM groups WHERE
username=?</module-option>
我没有看到其他错误。
您可以在此处阅读有关DatabaseServerLoginModule模块的更多信息:http://community.jboss.org/wiki/DatabaseServerLoginModule