將CAS票據保存到數據庫中

一、概述

CAS中,Ticket Registry管理是配置到ticketRegistry.xml文件中的,打開此文件可以看到,默認使用DefaultTicketRegistry來將Ticket Registry保存到內存中,現在如果要將Ticket Registry保存到數據庫中,就需要對這個文件進行修改。

二、操作環境

CAS版本:cas-server-3.5.2

Tomcat版本:apache-tomcat-6.0.37

三、操作步驟

1. 打開cas-server-3.5.2\cas-server-core\src\test\resources下的jpaTestApplicationContext.xml文件,將這個文件中的內容複製到ticketRegistry.xml中,然後將數據源修改成實際的數據源,最終的文件如下:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

xmlns:tx="http://www.springframework.org/schema/tx" xmlns:sec="http://www.springframework.org/schema/security"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd

     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd

     http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">

 

  <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"

    p:location="file:database.properties"

    p:ignoreResourceNotFound="true"

    p:ignoreUnresolvablePlaceholders="true">

    <property name="properties">

      <props>

        <prop key="database.driverClass">com.mysql.jdbc.Driver</prop>

        <prop key="database.user">root</prop>

        <prop key="database.password">123456</prop>

        <prop key="database.url">jdbc:mysql://locahost:3306/cas</prop>

        <prop key="database.dialect">org.hibernate.dialect.MySQLDialect</prop>

        <prop key="database.batchSize">1</prop>

      </props>

    </property>

  </bean>

 

  <bean class="org.springframework.jdbc.datasource.SimpleDriverDataSource"

    id="dataSource"

    p:driverClass="${database.driverClass}"

    p:username="${database.user}"

    p:password="${database.password}"

    p:url="${database.url}" />

 

  <bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"

    id="factoryBean"

    p:dataSource-ref="dataSource"

    p:jpaVendorAdapter-ref="jpaVendorAdapter">

    <property name="jpaProperties">

      <props>

        <prop key="hibernate.dialect">${database.dialect}</prop>

        <prop key="hibernate.hbm2ddl.auto">update</prop>

        <prop key="hibernate.jdbc.batch_size">${database.batchSize}</prop>

      </props>

    </property>

  </bean>

 

  <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"

    id="jpaVendorAdapter"

    p:generateDdl="true"

    p:showSql="true" />

 

  <bean class="org.jasig.cas.services.JpaServiceRegistryDaoImpl" id="dao"

    p:entityManagerFactory-ref="factoryBean" />

 

  <bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager"

    p:entityManagerFactory-ref="factoryBean" />

 

  <!-- Default  Ticket Registry 

  <bean id="ticketRegistry" class="org.jasig.cas.ticket.registry.DefaultTicketRegistry" />

-->

  <bean id="ticketRegistry" class="org.jasig.cas.ticket.registry.JpaTicketRegistry" />

 

  <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>

 

<!--Quartz -->

<!-- TICKET REGISTRY CLEANER -->

<bean id="ticketRegistryCleaner" class="org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner"

p:ticketRegistry-ref="ticketRegistry" />

 

<bean id="jobDetailTicketRegistryCleaner" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"

p:targetObject-ref="ticketRegistryCleaner"

p:targetMethod="clean" />

 

<bean id="triggerJobDetailTicketRegistryCleaner" class="org.springframework.scheduling.quartz.SimpleTriggerBean"

p:jobDetail-ref="jobDetailTicketRegistryCleaner"

p:startDelay="20000"

p:repeatInterval="5000000" />

<!-- manager transaction -->

<tx:annotation-driven transaction-manager="transactionManager" />

</beans>

 2. 然後重新編譯,發佈到tomcat中,然後訪問http://localhost:8080/cas,輸入用戶名和密碼,登陸進去。

3. 訪問數據庫,就可以看到數據庫中多了幾個表。

205445579.jpg

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章