开始的时候总是觉得jaas是个很神奇的东西,正好有本书上介绍这个相关的例子,于是按照书上的步骤坐下来似乎也不是那么的复杂,下面是关于jaas与jboss整合的步骤
(1)首先需要在jboss中配置实用RDBMS的方式来管理数据库中的用户和角色,其工作主要包括要在 \jboss-5.1.0.GA\server\default\conf\login-config.xml 中添加对安全管理的配置
<application-policy name="htool">
<authentication>
<login-module code = "org.jboss.security.auth.spi.DatabaseServerLoginModule" flag = "required">
<module-option name = "dsJndiName">java:/firstds</module-option>
<module-option name = "principalsQuery">SELECT password FROM users_table WHERE username = ?</module-option>
<module-option name = "rolesQuery">select userroles from roles_table where username=?</module-option>
<module-option name="hashAlgorithm">MD5</module-option>
<module-option name="hashEncoding">base64</module-option>
<module-option name="hashEncoding">HEX</module-option>
<module-option name="hashAlgorithm">SHA-1</module-option>
<module-option name="digestCallback">com.myclass.MyDigestCallback</module-option>
</login-module>
</authentication>
(2)步骤一主要是在服务器中配置怎么样去控制,这一步骤中主要配置的就是什么角色可以访问该应用,或者是什么样的角色拥有什么样的权限,以及对登陆方式的设置,以下是相关的修改,主要是关于web.xml文件的修改
<!-- 为该应用声明安全性角色 -->
<security-role>
<role-name>crazyit</role-name>
</security-role>
<security-constraint>
<!-- 定义受保护的Web资源集 -->
<web-resource-collection>
<!-- 定义Web资源集的名称 -->
<web-resource-name>test</web-resource-name>
<!-- 匹配该URL模式的资源都处于被保护状态下 -->
<url-pattern>/*</url-pattern>
<url-pattern>/html/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<!-- 访问受保护资源所需的角色 -->
<role-name>crazyit</role-name>
</auth-constraint>
</security-constraint>
(3)在数据库中添加创建相关的表,以及插入相应的记录
create table users_table(
userid int auto_increment primary key,
username varchar(64) unique,
password VARCHAR(64)
);
create table roles_table
(
roleid int auto_increment primary key,
username varchar(64),
userRoles varchar(32)
);
# 插入一个用户
insert into users_table
values(null, 'yeeku','123');
# 插入一个用户,以及它对应的角色
insert into roles_table
values(null ,'yeeku','crazyit');
(4) 需要通知jboss那些安全域被使用
WEB-INF/jboss-web.xml 的内容如下
<!DOCTYPE jboss-web PUBLIC
"-//JBoss//DTD Web Application 5.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
<jboss-web>
<!-- 指定该Web应用使用哪个安全域 -->
<security-domain>java:/jaas/htool</security-domain>
<!--应用的路劲-->
<context-root>WebHtool</context-root>
</jboss-web>
虽然过程看起来比较简单,但是在实际的过程中遇到了两个问题
(1)虽然login-module添加的是"org.jboss.security.auth.spi.DatabaseServerLoginModule" 但是在启动的过程中报了user.properities文件找不到的问题
这个问题主要是取roles的sql写的有问题DatabaseServerLoginModule 的特性可以参考https://community.jboss.org/wiki/DatabaseServerLoginModule
分享到:
相关推荐
jboss-jaas.jar
JBOSS security JAAS
JBOSS与APACHE的整合JBOSS与APACHE的整合JBOSS与APACHE的整合
Jboss下hibernate整合EJB
本示例利用JBoss提供的JAAS支持,通过很简单的代码实现了登录和访问控制,能够很好的从一个应用移植到另一个应用(当然仅限JBoss环境),只要修改一些xml和数据库的配置就可以了。 本示例用了一些hibernate的东西读取...
spring和jboss整合,全部是英文的,自己好好看吧
经过我反复收集资料及试验。 该资料对Jboss性能优化有很大的帮助。 谢谢。希望对您有用!
这是一个在windows操作系统下iis+jboss联合部署的说明文档,希望对大家能有所帮助
在真实机上面做的,测试通过。apache+jboss整合详细步骤全过程
JBoss Seam,一个新的强大的应用框架,通过统一和整合流行的面向服务架构(SOA)技术比如异步JavaScript和XML(AJAX),Java Server Faces(JSF), Enterprise Java Beans(EJB3),Java Portlets,业务过程管理(BPM)和...
资源名称:JBoss 管理与开发核心技术:第三版内容简介:本书的主要目的是从配置和架构这两个角度弄清楚标准JBoss 3.2.x的架构组件。使用JBoss的开发者将理解如何配置标准的组件。其中,需要开发者注意的是,本书不是...
EJB3+JBOSS5+JPA整合,里面还用到了ejb3注解。
是JBoss学习的最佳材料,包含JBoss的配置以及其文件修改方法和文件介绍。
JBoss 管理与开发核心技术.pdf
它还整合了IIOP(Internet Inter-ORB Protocol)。 因为JBoss代码遵循LGPL许可,你可以在任何商业应 用中免费使用它,而不用支付费用。JBoss是纯Java的Web应用服务器,为了保证JBoss服务器的正常运行,在安装JBoss...
Servlet引擎:JBoss与Tomcat、Jetty协同工作
JBOSS,JBoss安装部署 JBOSS,JBoss安装部署
JBoss安装与搭建.doc
JBoss启动JBoss启动JBoss启动JBoss启动JBoss启动JBoss启动JBoss启动JBoss启动 JBoss启动