Jul 24, 2010

Java Accessing WSDL via HTTPS SSL

For along time i tried to make it accessible as easy as HTTP, but i 've got trouble many times, i tried 6 different access mechanism to use this service.
and now i solved the problem with this :

String address = ServicePoint.WSDL_LOCATION.toString();
JaxWsProxyFactoryBean proxyFactory = new JaxWsProxyFactoryBean();
proxyFactory.setServiceClass(ServicePointPortType.class);
proxyFactory.setAddress(address);
ServicePointPortType client = (ServicePointPortType) proxyFactory.create();
configureSSLOnTheClient(client);


next, you can call client.getBSfromCELL(MAC); or other services.

private static void configureSSLOnTheClient(Object c) {
org.apache.cxf.endpoint.Client client = ClientProxy.getClient(c);
HTTPConduit httpConduit = (HTTPConduit) client.getConduit();
try {
TLSClientParameters tlsParams = new TLSClientParameters();
tlsParams.setDisableCNCheck(true);
KeyStore keyStore = KeyStore.getInstance("JKS");
String trustpass = "changeit";
File truststore = new File("/trgwimax/client.keystore");
keyStore.load(new FileInputStream(truststore), trustpass.toCharArray());
TrustManagerFactory trustFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustFactory.init(keyStore);
TrustManager[] tm = trustFactory.getTrustManagers();
tlsParams.setTrustManagers(tm);
truststore = new File("/trgwimax/client.keystore");
keyStore.load(new FileInputStream(truststore), trustpass.toCharArray());
KeyManagerFactory keyFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyFactory.init(keyStore, trustpass.toCharArray());
KeyManager[] km = keyFactory.getKeyManagers();
tlsParams.setKeyManagers(km);
FiltersType filter = new FiltersType();
filter.getInclude().add(".*_EXPORT_.*");
filter.getInclude().add(".*_EXPORT1024_.*");
filter.getInclude().add(".*_WITH_DES_.*");
filter.getInclude().add(".*_WITH_NULL_.*");
filter.getExclude().add(".*_DH_anon_.*");
tlsParams.setCipherSuitesFilter(filter);

httpConduit.setTlsClientParameters(tlsParams);
} catch (KeyStoreException kse) {
System.out.println("Security configuration failed with the following KSE: " + kse.getCause());
} catch (NoSuchAlgorithmException nsa) {
System.out.println("Security configuration failed with the following NSA: " + nsa.getCause());
} catch (FileNotFoundException fnfe) {
System.out.println("Security configuration failed with the following FNFE: " + fnfe.getCause());
} catch (UnrecoverableKeyException uke) {
System.out.println("Security configuration failed with the following UKE: " + uke.getCause());
} catch (CertificateException ce) {
System.out.println("Security configuration failed with the following CE: " + ce.getCause());
} catch (GeneralSecurityException gse) {
System.out.println("Security configuration failed with the following GSE: " + gse.getCause());
} catch (IOException ioe) {
System.out.println("Security configuration failed with the following IOE: " + ioe.getCause());
}

}

before running this script, you have to import key from server and register it on your local machine, It's mandatory, Java need to register the key as its certificate. Sometimes administrator just give you the key without certificate, so you need to convert it by yourself.

Remember that there are many certificate files on your machine but, the valid key is on $JAVA_HOME/jre/lib/security/cacerts so you need to add your key (after converted to certificate (PEM or CERT) to this file.

There are 3 default key parameters that you have to use to import it.
Key Type : default is JKS
Password : changeit
Alias : mykey, root, host-number such as 127.0.0.1-1

While you import the key, you need ensuring that your certificate file that you operate is the right one, it must be $JAVA_HOME/jre/lib/security/cacert

you may use keytool (portecle-1.5.zip) to export the JKS to PEM or CERT so you can add it to cacerts. The steps are :

1. use it as root

2. open file $JAVA_HOME/jre/lib/security/cacerts

3. import the JKS

4. sometimes you need to export it first to PEM or CERT

5. add the PEM or CERT into cacerts

6. save it.

some WSDL services are need to convert into String manually or just call getValue() before toString();
It's use to rid the xml elements that may still included.

i write it as my own note, so i don't need to make it later.
Read more ...

Mar 1, 2010

cpanel rubygems no such file to load gem A2hosting

Already make some script for a host with ruby, i 've got some trouble while deploy. I have no problem on my local but i got "no such file to load" however it already successfully installed.
Ensuring the installation,  i repeat my installation steps

gem install "module" -y

i move all cache file for gems to other path, you can also delete it.
mkdir mybackup
mv /home/your_username/ruby/gems/cache  mybackup

Cpanel said that i have to add this on my script, but it seems not solve the problem

$:.push("/home/your_username/ruby/gems")

so, i make change on .bashrc, i add some lines below
vim .bashrc
export PATH=.:$PATH:/home/your_username/ruby/gems/bin
export RUBYOPT=rubygems
export GEM_HOME=/home/your_username/ruby/gems
export GEM_PATH=/home/your_username/ruby/gems
export RUBYLIB=/home/your_username/ruby/gems/lib

logout to make bashrc be applied, then logged-in

check the script with irb
irb
>require 'rubygems'
>require 'hoe'
Read more ...

Jan 29, 2010

List Books Shamela Part 1

Its hard to fight The laziness. More than a month I search on Shamela books list, but I just have nothing, I decide to make a simple grabber to catch all list, just use 2 hours I get it all, create and wait until it finished the job.

Some parts  are grabbed yet, i will post later if alls ready. Just use this list first. Okay,... Let's use this technology to assist us closer to God. Recite and research on Islamic science are never ended.  :)

you can use downloader or just create a simple script on perl or ruby or phyton to make a thread-download .

Here's the simple example on Ruby :
Save this list bellow to books.list

create a simple script downloader.rb

File.open("books.list", 'r').each do |f|
    Thread.new do
            system("wget #{f}")
            sleep 1
  end
end


run it with
ruby  ./downloader.rb


cat books.list
http://www.shamela.ws/books/107/10772.rar
http://www.shamela.ws/books/107/10773.rar
http://www.shamela.ws/books/107/10769.rar
http://www.shamela.ws/books/107/10759.rar
http://www.shamela.ws/books/107/10786.rar
http://www.shamela.ws/books/106/10619.rar
http://www.shamela.ws/books/107/10776.rar
http://www.shamela.ws/books/018/1817.rar
http://www.shamela.ws/books/122/12286.rar
http://www.shamela.ws/books/105/10549.rar
http://www.shamela.ws/books/107/10781.rar
http://www.shamela.ws/books/108/10814.rar
http://www.shamela.ws/books/108/10816.rar
http://www.shamela.ws/books/124/12445.rar
http://www.shamela.ws/books/225/22549.rar
http://www.shamela.ws/books/211/21108.rar
http://www.shamela.ws/books/225/22547.rar
http://www.shamela.ws/books/211/21113.rar
http://www.shamela.ws/books/124/12446.rar
http://www.shamela.ws/books/086/8630.rar
http://www.shamela.ws/books/225/22579.rar
http://www.shamela.ws/books/226/22657.rar
http://www.shamela.ws/books/226/22643.rar
http://www.shamela.ws/books/075/7525.rar
http://www.shamela.ws/books/226/22661.rar
http://www.shamela.ws/books/122/12293.rar
http://www.shamela.ws/books/226/22642.rar
http://www.shamela.ws/books/123/12304.rar
http://www.shamela.ws/books/227/22721.rar
http://www.shamela.ws/books/113/11353.rar
http://www.shamela.ws/books/124/12444.rar
http://www.shamela.ws/books/225/22551.rar
http://www.shamela.ws/books/034/3485.rar
http://www.shamela.ws/books/226/22653.rar
http://www.shamela.ws/books/117/11730.rar
http://www.shamela.ws/books/227/22793.rar
http://www.shamela.ws/books/227/22798.rar
http://www.shamela.ws/books/227/22797.rar
http://www.shamela.ws/books/075/7509.rar
http://www.shamela.ws/books/075/7570.rar
http://www.shamela.ws/books/118/11821.rar
http://www.shamela.ws/books/075/7571.rar
http://www.shamela.ws/books/085/8553.rar
http://www.shamela.ws/books/228/22808.rar
http://www.shamela.ws/books/228/22812.rar
http://www.shamela.ws/books/228/22804.rar
http://www.shamela.ws/books/085/8570.rar
http://www.shamela.ws/books/228/22852.rar
http://www.shamela.ws/books/229/22915.rar
http://www.shamela.ws/books/023/2305.rar
http://www.shamela.ws/books/229/22916.rar
http://www.shamela.ws/books/228/22853.rar
http://www.shamela.ws/books/228/22868.rar
http://www.shamela.ws/books/228/22870.rar
http://www.shamela.ws/books/107/10784.rar
http://www.shamela.ws/books/228/22800.rar
http://www.shamela.ws/books/228/22855.rar
http://www.shamela.ws/books/228/22876.rar
http://www.shamela.ws/books/228/22848.rar
http://www.shamela.ws/books/228/22874.rar
http://www.shamela.ws/books/228/22869.rar
http://www.shamela.ws/books/025/2569.rar
http://www.shamela.ws/books/229/22918.rar
http://www.shamela.ws/books/064/6400.rar
http://www.shamela.ws/books/228/22886.rar
http://www.shamela.ws/books/208/20855.rar
http://www.shamela.ws/books/228/22842.rar
http://www.shamela.ws/books/208/20854.rar
http://www.shamela.ws/books/180/18007.rar
http://www.shamela.ws/books/228/22895.rar
http://www.shamela.ws/books/228/22891.rar
http://www.shamela.ws/books/228/22890.rar
http://www.shamela.ws/books/228/22889.rar
http://www.shamela.ws/books/228/22888.rar
http://www.shamela.ws/books/066/6610.rar
http://www.shamela.ws/books/123/12300.rar
http://www.shamela.ws/books/162/16231.rar
http://www.shamela.ws/books/162/16232.rar
http://www.shamela.ws/books/109/10906.rar
http://www.shamela.ws/books/228/22877.rar
http://www.shamela.ws/books/183/18381.rar
http://www.shamela.ws/books/032/3283.rar
http://www.shamela.ws/books/072/7268.rar
http://www.shamela.ws/books/227/22799.rar
http://www.shamela.ws/books/227/22726.rar
http://www.shamela.ws/books/229/22912.rar
http://www.shamela.ws/books/000/0041.rar
http://www.shamela.ws/books/187/18795.rar
http://www.shamela.ws/books/228/22882.rar
http://www.shamela.ws/books/225/22592.rar
http://www.shamela.ws/books/229/22921.rar
http://www.shamela.ws/books/229/22910.rar
http://www.shamela.ws/books/229/22934.rar
http://www.shamela.ws/books/229/22922.rar
http://www.shamela.ws/books/229/22928.rar
http://www.shamela.ws/books/225/22593.rar
http://www.shamela.ws/books/230/23023.rar
http://www.shamela.ws/books/226/22676.rar
http://www.shamela.ws/books/231/23163.rar
http://www.shamela.ws/books/231/23100.rar
http://www.shamela.ws/books/026/2615.rar
http://www.shamela.ws/books/231/23177.rar
http://www.shamela.ws/books/105/10500.rar
http://www.shamela.ws/books/236/23611.rar
http://www.shamela.ws/books/235/23586.rar
http://www.shamela.ws/books/097/9776.rar
http://www.shamela.ws/books/020/2037.rar
http://www.shamela.ws/books/021/2163.rar
http://www.shamela.ws/books/257/25791.rar
http://www.shamela.ws/books/033/3328.rar
http://www.shamela.ws/books/114/11421.rar
http://www.shamela.ws/books/257/25794.rar
http://www.shamela.ws/books/258/25800.rar
http://www.shamela.ws/books/263/26324.rar
http://www.shamela.ws/books/263/26332.rar
http://www.shamela.ws/books/130/13088.rar
http://www.shamela.ws/books/261/26142.rar
http://www.shamela.ws/books/271/27107.rar
http://www.shamela.ws/books/113/11314.rar
http://www.shamela.ws/books/007/0727.rar
http://www.shamela.ws/books/263/26356.rar
Read more ...

Jan 28, 2010

install maktaba shamela on Ubuntu

For you who use shamela on windows, meanwhile you can use it on Ubuntu Karmic (9.10). Just follow my steps.

Add to your repository
sudo vim /etc/apt/sources.list
deb http://ppa.launchpad.net/sabily.team/ppa/ubuntu karmic main
deb http://ppa.launchpad.net/awn-testing/ubuntu karmic main


sudo apt-get update
sudo apt-get install noor
sudo apt-get install thwab
sudo apt-get install ttf-arabeyes
sudo apt-get install ttf-me-quran


The shamela books are available to be downloaded on these site :

http://shamela.ws
http://almeshkat.net
http://saaid.net/book/index.php
http://www.almaktba.com

here's some instance book links :

http://www.shamela.ws/books/106/10657.rar
http://www.shamela.ws/books/106/10649.rar
http://www.shamela.ws/books/099/9904.rar
http://www.shamela.ws/books/091/9134.rar
http://www.shamela.ws/books/084/8474.rar
http://www.shamela.ws/books/106/10659.rar
http://www.shamela.ws/books/099/9950.rar
http://www.shamela.ws/books/085/8565.rar
http://www.shamela.ws/books/099/9938.rar
http://www.shamela.ws/books/099/9943.rar
http://www.shamela.ws/books/099/9942.rar
http://www.shamela.ws/books/106/10641.rar
http://www.shamela.ws/books/099/9948.rar
http://www.shamela.ws/books/099/9988.rar
http://www.shamela.ws/books/107/10765.rar
http://www.shamela.ws/books/107/10701.rar
http://www.shamela.ws/books/106/10695.rar
http://www.shamela.ws/books/107/10767.rar
http://www.shamela.ws/books/106/10660.rar
http://www.shamela.ws/books/059/5923.rar
http://www.shamela.ws/books/090/9075.rar
http://www.shamela.ws/books/042/4289.rar
http://www.shamela.ws/books/107/10756.rar

After download these books, extract it, then open it with thwab. (the extension file must be .bok)
Read more ...

Jan 27, 2010

load balancing Huawei C261 ISP Speedy

Let's make load balancing internet with ISP and Huawei C261. Just follow this steps

Make sure that ISP is ready on eth0 and C261 on ppp0, you can check my previous posting  about how to setup ppp connection on ubuntu karmic 9.10. On this case the ISP gateway is 192.168.1.1 and ppp0 connection is assigned by dhcp server.


$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:1e:33:22:4b:08 
          inet addr:192.168.1.3  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::21e:33ff:fe22:4b08/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20472 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24246 errors:0 dropped:0 overruns:0 carrier:1
          collisions:0 txqueuelen:1000
          RX bytes:14898826 (14.8 MB)  TX bytes:4689741 (4.6 MB)
          Interrupt:29



$ ifconfig ppp0
ppp0      Link encap:Point-to-Point Protocol 
          inet addr:10.10.8.107  P-t-P:10.17.4.12  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:3945 errors:5 dropped:0 overruns:0 frame:0
          TX packets:4302 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:2596124 (2.5 MB)  TX bytes:842762 (842.7 KB)



$ cat /etc/resolv.conf
# Generated by NetworkManager
# nameserver 208.67.222.222   => if you want to use openDNS
nameserver 192.168.1.1
nameserver 10.17.3.244


On list above NS of ISP is 192.168.1.1 and NS of ppp0 is 10.17.3.244. Now to make it simple, just create a new file loadbalance.sh, just like this :

$ vi loadbalance.sh

#!/bin/bash
RP0=`ip addr show ppp0 | grep inet | awk {'print $4'} | cut -d '/' -f1`
ET0=`ip addr show eth0 | grep global | awk {'print $2'} | cut -d '/' -f1 | cut -d '.' -f1,2,3`.1

sudo ip route replace default scope global nexthop via $ET0  dev eth0 weight 200 nexthop via $RP0  dev ppp0 weight 10

echo "------------- load Balanced  $ET0 => $RP0 "
ip route show
route -n


save it and change permission by running
chmod +x loadbalance.sh

now run the script with sudo privilege


$ sudo ./loadbalance.sh
------------- load Balanced  192.168.1.1 => 10.17.4.12
10.17.4.12 dev ppp0  proto kernel  scope link  src 10.10.8.107
10.42.43.0/24 dev wlan0  proto kernel  scope link  src 10.42.43.1  metric 2
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.3  metric 1
169.254.0.0/16 dev wlan0  scope link  metric 1000
default
    nexthop via 192.168.1.1  dev eth0 weight 200
    nexthop via 10.17.4.12  dev ppp0 weight 10
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.17.4.12      0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
10.42.43.0      0.0.0.0         255.255.255.0   U     2      0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlan0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0 


$ ping www.google.com
PING www.l.google.com (64.233.181.104) 56(84) bytes of data.
64 bytes from ni-in-f104.1e100.net (64.233.181.104): icmp_seq=1 ttl=53 time=89.1 ms
64 bytes from ni-in-f104.1e100.net (64.233.181.104): icmp_seq=2 ttl=53 time=276 ms
^C


okay just try it...  :)
Read more ...