Thursday, May 23, 2013

在Ubuntu 12.04 LTS中使用OpenJDK及Oracle Java讀取健保卡 - 3

本系列文章的重頭戲來了,因為openjdk和和oracle jdk雖然有99%以上的相似程式,但有些應用程式就限定要用oracle jdk,因此本文要來介紹此問題。
而在Ubuntu使用oracle jdk來讀取智慧卡最大的問題原先以為是讀卡機裝置權限的問題,在經過幾週的搜尋之後,終於發現到是pcsc函式庫路徑的問題,感謝OpenSC網站上的資料

首先將函式庫連結處理好。
$ locate libpcsclite.so
-------看看libpcsclite.so的實際檔案放在哪
-------以下以我的機器為例(Ubuntu 12.04 LTS 64bits)
$ sudo mkdir /usr/lib64
-> 建立此目錄的原因是Ubuntu不管是32位元或64位元都只有/usr/lib的資料夾
-> 而Oracle JDK 64位元版本只認/usr/lib64,故要建立如上資料夾
-> 但在Centos 64位元的機器上原本就有
-> 若是32位元的系統只要以下指令即可
$ sudo ln -s /lib/x86_64-linux-gnu/libpcsclite.so.1.0.0 /usr/lib/libpcsclite.so

接下來若要安裝Oracle JDK有兩種方式,其一是從官網中下載並手動設定。另一種方式則是使用ppa提供的自動安裝程式!在此介紹ppa的方法。


  • 首先移除所有openjdk套件
  • $ sudo apt-get purge openjdk*
    

  • 接下來加入ppa套件庫(ppa:webupd8team/java)
  • $ sudo add-apt-repository ppa:webupd8team/java
    $ sudo apt-get update
    $ sudo apt-get install oracle-java7-installer
    

花一點時間之後即可安裝完成!

測試程式下載

在Ubuntu 12.04 LTS中使用OpenJDK及Oracle Java讀取健保卡 - 2


接續前一篇文章,本文是第二部份,主要在說明使用openjdk及icedtea來執行健保卡程式的讀取。



首先安裝openjdk及icedtea(在此以openjdk7版為例)。

sudo apt-get install openjdk-7* icedtea-7*

接下來即可測試範例程式

在Ubuntu 12.04 LTS中使用OpenJDK及Oracle Java讀取健保卡 - 1

先前協助基隆市撰寫之健保卡認證Applet,其實在W$系統中運作都很正常,某天,突然收到基隆市某校的主任來信說,他們全校都用Ubuntu,會發生找不到讀卡機的狀況,於是就研究一下該如何解決。
花了很久的時間終於發現有兩個方法可以正確的讀取到健保卡,在此和大家分享。

本系列文章共分3段,此是第一部份-讓讀卡機可以正確的在Ubuntu中運作。在第二部份將會介紹使用OpenJDK來讀取健保卡;而第三部份則是使用Oracle JDK來讀取。

Saturday, July 14, 2012

使用openid4java實作Open ID RP (2)

本文接續上一篇,主要在實作程式碼的部份。

首先使用NetBeans建立一個新的Apache Wicket專案,並命名為myrp。依據原文所寫,作者將Web Application中負責和Open ID OP進行通訊的相關功能,放在model的套件中,其中分為兩個項目:

Friday, July 13, 2012

使用openid4java實作Open ID RP (1)

本文的原始出處是IBM技術文章

為了要實作OpenID Provider的Java Web Application,我認為要先了解如何在Java Web Application中先實作Open ID RP,以了解Open ID的運作方式。

OpenID的官網中,針對Java有提供了許多函式庫可以讓我們來使用,在原始文件中是使用openid4java的函式庫,目前可以取得的版本為0.9.6。

另外,為了要試驗Apache Wicket此framework的功能,我也改用Apache Wicket 1.5.3的版本,它和原始文章所使用的版本(1.3.3),在實作上有一些差異!

還有,本文主要說明概念的部份,實作則在下一篇