自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

配置JBoss如何從數(shù)據(jù)庫里讀取信息

開發(fā) 后端
本文介紹配置JBoss如何從數(shù)據(jù)庫里讀取登錄用戶的驗證信息。包括配置login-config.xml,配置連接池等。

在我的項目一開始的時候由于時間關(guān)系,沒能摸清楚如何實現(xiàn)用自己寫的模塊處理登錄,所以就采用了比較簡單RDBMS(即用JBoss的 DatabaseServerLoginModule)模塊處理登錄事件,然后通過一個過濾器判斷用戶是否已經(jīng)登錄,如果登錄了再從數(shù)據(jù)庫中讀取用戶信息到session中。雖然自己都感覺到有點不倫不類,但我還是將我的具體實現(xiàn)方式在下面寫出來:

1.配置login-config.xml
編輯JBoss主目錄下的 server/default/conf 目錄下的login-config.xml文件,在<policy>節(jié)點下加入如下的內(nèi)容:

  1. <policy> 
  2. ….    
  3.  <application-policy name = "nccnm"> 
  4.        <authentication> 
  5.           <login-module code = "org.jboss.security.auth.spi.                              DatabaseServerLoginModule" flag = "required"> 
  6.                         <!--配置訪問數(shù)據(jù)庫的連接池名稱為cnmtestds --> 
  7.              <module-option name = "dsJndiName">java:/ testds</module-option> 
  8.    
  9.                       <!--配置根據(jù)登錄名獲取密碼的sql語句 --> 
  10.              <module-option name = "principalsQuery">SELECT PASSWORD FROM                                    OPERATOR  WHERE LOGINID=?</module-option> 
  11.    
  12.                      <!--配置根據(jù)登錄名獲取用戶角色的sql語句 --> 
  13.              <module-option name = "rolesQuery">SELECT ROLENAME,'Roles'  FROM V_ROLE WHERE LOGINID=?</module-option> 
  14.    
  15.                       <!--使用MD5方式加密密碼 --> 
  16.              <module-option name="hashAlgorithm">MD5</module-option> 
  17.                        <!--將加密后的密碼再轉(zhuǎn)為base64編碼 --> 
  18.                       <module-option name="hashEncoding">base64</module-option>              
  19.           </login-module> 
  20.  </authentication> 
  21. </application-policy>    
  22. ….  
  23. </policy> 

在這里順便簡單介紹一下MD5和Base64。MD5是一種不可逆的編碼算法,即你不可能由已經(jīng)加密的密碼字符串來根據(jù)固定的算法還原出原來的密碼,據(jù)說現(xiàn)在的銀行系統(tǒng)大多數(shù)采用這種方式來儲存用戶密碼,所以如果用戶的密碼遺失了,銀行也不可能通過查數(shù)據(jù)庫給你找回你原來設(shè)的密碼,只能重新設(shè)置。要破解MD5的密碼只能用很笨很好時的窮舉法。

而Base64的編碼其實大家都應(yīng)該經(jīng)常接觸,我們的電子郵件一般都是經(jīng)過Base64編碼后傳送的,如果您用的是Outlook Express收發(fā)郵件,那你可以通過郵件的“屬性/詳細信息/郵件來源”看到郵件的Base64編碼的信息。它將二進制數(shù)據(jù)編碼為字母和數(shù)字,因為字母和數(shù)字的個數(shù)少于256,所以它是把3個字節(jié)的二進制數(shù)據(jù)轉(zhuǎn)換為4個字節(jié)的字母和數(shù)字。所以經(jīng)過base64編碼的文件會比原來的文件大4/3倍。JBoss用專門的API來處理md5加密及base64的編碼和反編碼。

2.配置連接池
上面的文件中用到了一個名為testds的連接池,現(xiàn)在就來配置這個連接池。我這里用的是oracle數(shù)據(jù)庫,其它的數(shù)據(jù)庫的配置方式就不一一介紹了。具體的表結(jié)構(gòu)和建表的sql語句我這里也不再描述了,如果有不清楚的地方清留言問我。
編輯JBoss主目錄下的server\default \deploy目錄 (什么?你的目錄下沒有找到這個文件,沒關(guān)系,從你的JBoss主目錄的docs\examples\jca下copy一個過來)。在<datasources>節(jié)點之間加入如下內(nèi)容:

  1. <local-tx-datasource> 
  2.     <jndi-name>testds</jndi-name> 
  3.     <connection-url>jdbc:oracle:thin:@127.0.0.1:1521:mydb</connection-url> 
  4.     <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> 
  5.     <user-name>test</user-name> 
  6.     <password>123</password> 
  7.     <exception-sorter-class-name>org.jboss.resource.adapter.                      jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name> 
  8.       <metadata> 
  9.          <type-mapping>Oracle9i</type-mapping> 
  10.       </metadata> 
  11.  </local-tx-datasource> 

3.配置JBoss-web.xml
配置JBoss就完成了,下面再配置我們的項目里的文件。
打開你的Web應(yīng)用下的Web目錄下的的WEB-INF目錄,新建一個JBoss-web.xml的文件,在文件中加入如下內(nèi)容:

  1. <jboss-web> 
  2.   <!-- Uncomment the security-domain to enable security. You will  
  3.       need to edit the htmladaptor login configuration to setup the  
  4.       login modules used to authentication users.  
  5.    --> 
  6. <!-- 下面的nccnm就是在login-config.xml配置的application-policy的名稱 --> 
  7.    <security-domain>java:/jaas/ nccnm </security-domain> 
  8. </jboss-web> 

這個配置Jboss會告訴我們這個應(yīng)用的JAAS安全性策略到哪里去找。

4.配置web.xml
打開你的Web應(yīng)用下的Web目錄下的的WEB-INF目錄,編輯web.xml (這個文件應(yīng)該能找到吧?如果找不到就麻煩了,從頭去啃J2EE),加入如下的內(nèi)容:

  1. <security-constraint> 
  2.     <web-resource-collection> 
  3.       <web-resource-name>login required</web-resource-name> 
  4.       <url-pattern>*.jsp</url-pattern> 
  5.       <url-pattern>*.htm</url-pattern> 
  6.       <url-pattern>*.html</url-pattern> 
  7.       <url-pattern>*.do</url-pattern> 
  8.     </web-resource-collection> 
  9.     <auth-constraint> 
  10.       <role-name>role1</role-name> 
  11.     </auth-constraint> 
  12.  </security-constraint> 
  13.  <login-config> 
  14.        <!-- 通過表單方式來提交登錄 --> 
  15.     <auth-method>FORM</auth-method> 
  16.     <realm-name>mydomain</realm-name>     
  17. <form-login-config> 
  18.        <!-- 登錄頁面為login.jsp --> 
  19.       <form-login-page>/login.jsp</form-login-page> 
  20.                
  21.               <!--登錄出錯的話轉(zhuǎn)到error.jsp頁面 --> 
  22.       <form-error-page>/error.jsp</form-error-page> 
  23.     </form-login-config> 
  24.  </login-config> 
  25.  <security-role> 
  26.     <role-name>role1</role-name> 
  27.  </security-role> 


以上內(nèi)容的是配置JBoss,作用是本W(wǎng)eb應(yīng)用下的所有 jsp,htm,html,do為擴展名的資源都要登錄后才能訪問(你可以根據(jù)你的需要來設(shè)置,通常你可以設(shè)置<url-pattern>* </url-pattern>來限制沒有登錄所有的資源都不能訪問),而且只有role1角色的用戶才能訪問。

【編輯推薦】

  1. JBoss企業(yè)中間件概述
  2. 配置JBoss4.0上MySQL數(shù)據(jù)庫
  3. JBoss配置mysql數(shù)據(jù)庫連接池
  4. Red Hat宣布JBoss開放選擇應(yīng)用平臺戰(zhàn)略
  5. 在JBoss4.0上完成Oracle數(shù)據(jù)庫配置
責任編輯:佚名 來源: 新浪博客
相關(guān)推薦

2010-04-06 11:39:17

Oracle數(shù)據(jù)庫

2009-06-16 09:25:31

JBoss配置

2009-06-16 10:55:23

MySQL數(shù)據(jù)庫

2010-04-20 10:12:42

OraclePL

2009-06-15 13:24:46

JBoss數(shù)據(jù)源

2011-04-11 13:58:19

數(shù)據(jù)庫

2009-06-16 10:25:13

Oracle數(shù)據(jù)庫

2009-06-16 13:56:05

SysBase數(shù)據(jù)庫

2010-04-08 16:13:34

Oracle數(shù)據(jù)庫

2009-06-18 15:15:35

JBoss的配置

2009-06-15 12:59:09

JBoss配置

2009-06-12 14:12:18

JBoss配置MyEclipse

2009-06-16 11:11:25

JBoss目錄數(shù)據(jù)庫連接

2014-11-20 09:47:06

Java

2022-03-24 15:29:12

黑客網(wǎng)絡(luò)攻擊勒索軟件

2010-08-26 16:34:12

DB2Excel讀取

2010-04-19 16:01:54

2009-06-26 17:37:37

JBOSS配置

2009-06-12 15:54:07

JBoss集群配置

2009-06-12 16:05:47

JBoss配置
點贊
收藏

51CTO技術(shù)棧公眾號