CAS BACKEND MYSQL
Dalam server cas kita dapat menggunakan database diantaranya MySQL, LDAP, dll. Dalam tutorial ini saya mengkonfigurasikan SSO menggunakan databases MySQL, sebelum konfigurasi CAS backend MySQL, ada baiknya untuk mereview postingan sebelumnya tentang instalasi CAS yang instalasinya merujuk pada backend MySQL disini.
LANGKAH INSTALASI
install kebutuhan perangkat untuk MySQL seperti di bawah ini:
#apt-get install mysql-server mysql-client libmysql-java
tunggu hingga proses instalasi selesai, setelah mysql-server telah terinstall, buatlah databases yang digunakan oleh cas server.
mysql > create database cas;
mysql > create table users (username char(20) PRIMARY KEY NOT NULL,
-> password(64));
ok, untuk databases cas sudah kita buat, selanjutnya mengatur classpat, copy file mysql-connector java-5.1.22-bin.jar ke folder /usr/share/java/ (untuk download connector mysqlnya ada disini ), lakukan perintah dibawah ini untuk menambahkan classpath secara otomatis :
#export CLASSPATH=$CLASSPATH:/usr/share/java/mysql-connector-java-5.1.22-bin.jar
untuk memastikan bahwa JDBC telah aktif, ikuti perintah berikut.
#echo $CLASSPATH.:/usr/share/java/mysql-connector-java/mysql-connector-java-5.1.22-bin.jar:/usr/share/java/mysql-connector-java-5.1.22-bin.jar
TEST KONEKSI JDBC
lalu, test koneksi JDBC ke MySQL untuk mengetahui apakah MySQL sudah terkoneksi, buatlah source code dibawah ini.
import java.sql.*;
import java.util.properties;
public class JDBCDemo
{
private static final String dbClassName = "com.mysql.jdbc.Driver";
private static final String CONNECTION = "jdbc:mysql://127.0.0.1/"
private static void main(String[] args) throws ClassNotFoundException,SQLException
{
System.out.println(dbClassName);
Class.forName(dbClassName);
Properties p = new Properties();
p.put("user","root");
p.put("password","secret");
Connection c = DriverManager.getConnection(CONNETION,p);
System.out.println("It works !");
c.close();
}
}
import java.util.properties;
public class JDBCDemo
{
private static final String dbClassName = "com.mysql.jdbc.Driver";
private static final String CONNECTION = "jdbc:mysql://127.0.0.1/"
private static void main(String[] args) throws ClassNotFoundException,SQLException
{
System.out.println(dbClassName);
Class.forName(dbClassName);
Properties p = new Properties();
p.put("user","root");
p.put("password","secret");
Connection c = DriverManager.getConnection(CONNETION,p);
System.out.println("It works !");
c.close();
}
}
simpan dengan nama JDBCDemo.java, compiler file java tersebut untuk mengetahui jaringan MySQL sudah Terkoneksi dengan benar :
root@ebiemaru# javac JDBCDemo.java
root@ebiemaru# java JDBCDemo
com.mysql.jdbc.Driver
It works !
EDIT DEPLOYERCONFIGCONTEXT.XML
jika berhasil maka akan keluar perintah seperti diatas. lalu edit deployerConfigContext.xml didalam "/var/lib/tomcat6/webapps/cas/WEB-INF/"untuk mengarahkan server CAS ke Databases yang digunakan. ubah syntax didalam <property name="authenticationHandlers">Ubah syntax dibawah ini :
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
Menjadi Syntax dibawah ini
<bean class"org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler">
<property name="tableUsers">
<value>users</value>
</property>
<property name="fieldUser">
<value>username</value>
</property>
<property name="fieldPassword">
<value>password</value>
</property>
<property name="passwordEncoder">
<bean class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"p:characterEncoding="UTF-8">
<constructor-arg index="0" value="MD5" />
</bean>
</property>
<property name="dataSource" ref="dataSource" />
</bean>
<property name="tableUsers">
<value>users</value>
</property>
<property name="fieldUser">
<value>username</value>
</property>
<property name="fieldPassword">
<value>password</value>
</property>
<property name="passwordEncoder">
<bean class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"p:characterEncoding="UTF-8">
<constructor-arg index="0" value="MD5" />
</bean>
</property>
<property name="dataSource" ref="dataSource" />
</bean>
EDIT TICKETREGISTRY.XML
setelah selesai diedit masuk ke directory /var/lib/tomcat6/webapps/cas/WEB-INF/spring-configuration/. edit ticketRegistry.xml, dan tambahkan source Code dibawah ini ;
<bean id="ticketRegistry" class="org.jasig.cas.ticket.registry.DefaultTicketRegistry" />
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
p:driverClassName="com.mysql.jdbc.Driver"
p:url="jdbc:mysql://localhost:3306/cas"
p:password="secret"
p:username="root"
/>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
p:driverClassName="com.mysql.jdbc.Driver"
p:url="jdbc:mysql://localhost:3306/cas"
p:password="secret"
p:username="root"
/>
simpan konfigurasi tersebut dan restart tomcat dan cek browser kamu untuk pengujian "https://localhost:8443/cas/" uji dengan username dan password yang telah didaftarkan pada database MySQL.
Sekian tutorial kali ini jika butuh bantuan jangan sungkan-sungkan untuk komentar atau bisa langsung email ke saya,
Terima Kasih
2 komentar
Write komentarKalau yang dengan LDAP gimana mas?
ReplyUntuk konfigurasi LDAP ane belom Pernah coba gan.... Ntar klu ada lowong waktu ane coba n ane share Di mari.. OK gan
ReplyEmoticonEmoticon