国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
連接池?cái)?shù)據(jù)庫密碼加密

hibernate使用連接池并且處理數(shù)據(jù)庫密碼加密

明文密碼太不安全使用加密吧!~
在使用  hibernate框架時(shí)怎么來處理密碼呢?
首先我們要找一個(gè)切入點(diǎn) 就是 連接池在什么時(shí)間讀的配置 這個(gè)時(shí)候我們解密在給他
看hibernate配置
  <property name="hibernate.connection.provider_class">
   org.hibernate.connection.C3P0ConnectionProvider
  </property>
這就是hibernate把連接交給專門的連接池類來負(fù)責(zé)
我們就在這里動(dòng)手腳
  <property name="hibernate.connection.provider_class">
   name.ixr.connection.C3P0ConnectionProvider
  </property>
這里換成我們自己的類,當(dāng)然這個(gè)類要有原有類的功能
這里我們想到一個(gè)方法使用繼承


  1. package name.ixr.connection;
  2. import java.util.Properties;
  3. import org.hibernate.cfg.Environment;
  4. import name.ixr.util.EncUtil;
  5. /**
  6. * 自定義C3P0處理
  7. * 2009-10-10
  8. * @author IXR
  9. * @version 1.0
  10. */
  11. public class C3P0ConnectionProvider extends org.hibernate.connection.C3P0ConnectionProvider {
  12. }
  13. }
復(fù)制代碼

類有了怎么處理呢? 還有原有的類有什么方法?
需要下載 hibernate  code查看 我看了他的方法 大概了解了下

知道
hibernate讀取完配置文件把配置文件對(duì)象交給了configure這個(gè)方法
然后重構(gòu)這個(gè)方法,實(shí)現(xiàn)原來的太麻煩,就算復(fù)制代碼太多我們只處理中間的一個(gè)環(huán)節(jié)所以沒有必要完全重寫,我們用多態(tài)吧,都繼承了也是為什么上邊我用繼承,看我怎么寫的
  1. /**
  2. * 修改讀取配置文件的業(yè)務(wù)
  3. * 這里主要為了解密密碼
  4. */
  5. public void configure(Properties props){
  6. //獲取配置密碼
  7. String password=props.getProperty(Environment.PASS);
  8. //密碼解
  9. password=EncUtil.encToString(password);
  10. //處理密碼
  11. props.setProperty(Environment.PASS, password);
  12. //交給父類處理
  13. super.configure(props);
  14. }

這樣密碼就解密重新設(shè)置了 然后交給父類來實(shí)現(xiàn)原有應(yīng)該實(shí)現(xiàn)的功能呵呵!~
處理完畢EncUtil就是我加密解密類!~ 你們可以用自己的加密類!~


如果在Spring里,上述方法是不行的。因?yàn)镾pring直接把用戶名密碼給了datasource。hibernate的屬性不能生效

下面是一種便通的方法。需要自己實(shí)現(xiàn)一個(gè)Configurer類

<bean id="propertyConfigurer" class="com.oa.scm.db.com.service.MyConfigurer"> 
        <property name="location"> 
            <value>classpath:hibernate.properties</value> 
        </property> 
    </bean>
   
     
     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
             <property name="driverClass"><value>${hibernate.connection.driver_class}</value></property>
            <property name="jdbcUrl"><value>${hibernate.connection.url}</value></property>
            <property name="user"><value>${hibernate.connection.username}</value></property>
            <!-- property name="password"><value>${hibernate.connection.password}</value></property-->
            <property name="initialPoolSize"><value>${initialPoolSize}</value></property>
            <property name="minPoolSize"><value>${hibernate.c3p0.min_size}</value></property>
            <property name="maxPoolSize"><value>${hibernate.c3p0.max_size}</value></property>
            <property name="idleConnectionTestPeriod"><value>${hibernate.c3p0.idle_test_period}</value></property>
            <property name="acquireIncrement"><value>${hibernate.c3p0.acquire_increment}</value></property>
    </bean> 

public class MyConfigurer extends PropertyPlaceholderConfigurer

{

    @Override
    protected void processProperties(
            ConfigurableListableBeanFactory beanFactory, Properties props)
            throws BeansException {

        System.out.println("MyConfigurer!");
        String password = props.getProperty("hibernate.connection.password");
        if (password != null && password.length() > 15) {
            props.setProperty("hibernate.connection.password", EncryptUtil
                    .decrypt(password));
            System.out.println("MyConfigurer done!");
        }
        super.processProperties(beanFactory, props);

    }
}



本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JPA整合spring之spring.xml配置文件
JPA環(huán)境配置
Struts2,Spring,Hibernate整合例子一個(gè)
Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二)
ssh框架
Java Web目前主流的框架以及正在興起的框架
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服