配置JBoss如何从数据库里读取信息

在我的项目一开始的时候由于时间关系,没能摸清楚如何实现用自己写的模块处理登录,所以就采用了比较简单RDBMS(即用JBoss的 DatabaseServerLoginModule)模块处理登录事件,然后通过一个过滤器判断用户是否已经登录,如果登录了再从数据库中读取用户信息到session中。虽然自己都感觉到有点不伦不类,但我还是将我的具体实现方式在下面写出来:

专业从事成都做网站、网站建设,高端网站制作设计,小程序定制开发,网站推广的成都做网站的公司。优秀技术团队竭力真诚服务,采用HTML5+CSS3前端渲染技术,响应式网站设计,让网站在手机、平板、PC、微信下都能呈现。建站过程建立专项小组,与您实时在线互动,随时提供解决方案,畅聊想法和感受。

1.配置login-config.xml
编辑JBoss主目录下的 server/default/conf 目录下的login-config.xml文件,在节点下加入如下的内容:

  1.  
  2. ….    
  3.   name = "nccnm"> 
  4.         
  5.            code = "org.jboss.security.auth.spi.                              DatabaseServerLoginModule" flag = "required"> 
  6.                          
  7.               name = "dsJndiName">java:/ testds 
  8.    
  9.                        
  10.               name = "principalsQuery">SELECT PASSWORD FROM                                    OPERATOR  WHERE LOGINID=? 
  11.    
  12.                       
  13.               name = "rolesQuery">SELECT ROLENAME,'Roles'  FROM V_ROLE WHERE LOGINID=? 
  14.    
  15.                        
  16.               name="hashAlgorithm">MD5 
  17.                         
  18.                        name="hashEncoding">base64              
  19.            
  20.   
  21.     
  22. ….  
  23.  

在这里顺便简单介绍一下MD5和Base64。MD5是一种不可逆的编码算法,即你不可能由已经加密的密码字符串来根据固定的算法还原出原来的密码,据说现在的银行系统大多数采用这种方式来储存用户密码,所以如果用户的密码遗失了,银行也不可能通过查数据库给你找回你原来设的密码,只能重新设置。要破解MD5的密码只能用很笨很好时的穷举法。

而Base64的编码其实大家都应该经常接触,我们的电子邮件一般都是经过Base64编码后传送的,如果您用的是Outlook Express收发邮件,那你可以通过邮件的“属性/详细信息/邮件来源”看到邮件的Base64编码的信息。它将二进制数据编码为字母和数字,因为字母和数字的个数少于256,所以它是把3个字节的二进制数据转换为4个字节的字母和数字。所以经过base64编码的文件会比原来的文件大4/3倍。JBoss用专门的API来处理md5加密及base64的编码和反编码。

2.配置连接池
上面的文件中用到了一个名为testds的连接池,现在就来配置这个连接池。我这里用的是oracle数据库,其它的数据库的配置方式就不一一介绍了。具体的表结构和建表的sql语句我这里也不再描述了,如果有不清楚的地方清留言问我。
编辑JBoss主目录下的server\default \deploy目录 (什么?你的目录下没有找到这个文件,没关系,从你的JBoss主目录的docs\examples\jca下copy一个过来)。在节点之间加入如下内容:

  1.  
  2.     testds 
  3.     jdbc:oracle:thin:@127.0.0.1:1521:mydb 
  4.     oracle.jdbc.driver.OracleDriver 
  5.     test 
  6.     123 
  7.     org.jboss.resource.adapter.                      jdbc.vendor.OracleExceptionSorter 
  8.        
  9.          Oracle9i 
  10.        
  11.   

3.配置JBoss-web.xml
配置JBoss就完成了,下面再配置我们的项目里的文件。
打开你的Web应用下的Web目录下的的WEB-INF目录,新建一个JBoss-web.xml的文件,在文件中加入如下内容:

  1.  
  2.    
  3.    java:/jaas/ nccnm  
  4.  

这个配置Jboss会告诉我们这个应用的JAAS安全性策略到哪里去找。

4.配置web.xml
打开你的Web应用下的Web目录下的的WEB-INF目录,编辑web.xml (这个文件应该能找到吧?如果找不到就麻烦了,从头去啃J2EE),加入如下的内容:

  1.  
  2.      
  3.       login required 
  4.       *.jsp 
  5.       *.htm 
  6.       *.html 
  7.       *.do 
  8.      
  9.      
  10.       role1 
  11.      
  12.   
  13.   
  14.         
  15.     FORM 
  16.     mydomain     
  17.  
  18.         
  19.       /login.jsp 
  20.                
  21.                
  22.       /error.jsp 
  23.      
  24.   
  25.   
  26.     role1 
  27.   

以上内容的是配置JBoss,作用是本Web应用下的所有 jsp,htm,html,do为扩展名的资源都要登录后才能访问(你可以根据你的需要来设置,通常你可以设置* 来限制没有登录所有的资源都不能访问),而且只有role1角色的用户才能访问。

【编辑推荐】

  1. JBoss企业中间件概述
  2. 配置JBoss4.0上MySQL数据库
  3. JBoss配置mysql数据库连接池
  4. Red Hat宣布JBoss开放选择应用平台战略
  5. 在JBoss4.0上完成Oracle数据库配置

分享标题:配置JBoss如何从数据库里读取信息
本文网址:http://www.shufengxianlan.com/qtweb/news43/293293.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联