下载地址: http://download.csdn.net/source/330705
本示例用了一些hibernate的东西读取数据库,这部分代码可以不必理会.
1.配置JBoss主目录下的server/default/conf下的login-config.xml,加入如下的内容:
<application-policy name = "testLoginModule">
<authentication>
<login-module code = "com.ben.common.security.LoginModule"
flag = "required">
<module-option name = "dsJndiName">java:/testds</module-option>
<module-option name = "principalsQuery">SELECT PASSWORD FROM USERS WHERE LOGINID=?</module-option>
<module-option name = "rolesQuery">SELECT ROLE ROLENAME,'Roles' FROM USER_ROLE WHERE LOGINID=?</module-option>
<module-option name="hashAlgorithm">MD5</module-option>
<module-option name="hashEncoding">base64</module-option>
<module-option name="loginBo">com.ben.org.business.LoginBo</module-option>
</login-module>
</authentication>
</application-policy>
2.建表
在你的数据库中建立一个用户ben,密码为oracle,然后用sqlplus或其它oracle客户端工具执行db.sql,你可以根据自己的需要修改一下这些sql语句,比如表空间等
3.建立连接池
将oracle-ds.xml文件复制到你的Jboss主目录下的server/default/deploy目录下,如果你的目录下已经有了这个文件,你可以把我的内容复制过去,相应的IP地址、SID、用户名、密码等你根据你的实际情况修改。
4.复制hibernate需要的ehcache-1.1.jar到你的Jboss主目录下的server/default/lib目录下。
5.设置DefaultCacheTimeout,DefaultCacheResolution的值为0,这个我就不多说了,请参阅我的上一篇
文章《在JBoss中自己定义JAAS登录模块处理登录事件》。
6.配置完后将TestLoginMoudle.war复制到你的Jboss主目录下的server/default/deploy目录下,运行jboss即可.
然后你就可以在浏览器里输入地址如:http://127.0.0.1:8082/TestLoginMoudle即可以看到登录页面。
用户名:zhangsan
密码:123456
用户名:lisi
密码:123456
其中zhangsan有权限查看index.jsp,因为他的角色是role1,李四则会被拒绝,因为他的角色是role2.