不過「同源政策」又出來搗亂了,因為網頁所在伺服器與瀏覽器本來就不該一樣,而我能拿到的一個 ActiveX 替代方案參考實作,又偏偏不開放 Access-Control-Allow-Origin 這個表頭(一定是故意!),沒關係,請 Nginx 來助陣,設定如下:
星期五, 12月 02, 2016
Break Same-origin policy by Nginx
HTML 5 愈來愈成熟,可預見的未來不再容許 ActiveX 的存在,替代方案是 WebSocket 或類似的架構,說穿了就是把一些髒事有安全疑慮的工作交給本機的一個輕量化 Web Server 處理。
不過「同源政策」又出來搗亂了,因為網頁所在伺服器與瀏覽器本來就不該一樣,而我能拿到的一個 ActiveX 替代方案參考實作,又偏偏不開放 Access-Control-Allow-Origin 這個表頭(一定是故意!),沒關係,請 Nginx 來助陣,設定如下:
如此一來,原先在 JavaScript 存取 http://localhost:61161 受到同源政策拘束的問題,改往 http://localhost:6116 即可解決。
不過「同源政策」又出來搗亂了,因為網頁所在伺服器與瀏覽器本來就不該一樣,而我能拿到的一個 ActiveX 替代方案參考實作,又偏偏不開放 Access-Control-Allow-Origin 這個表頭(一定是故意!),沒關係,請 Nginx 來助陣,設定如下:
星期二, 11月 29, 2016
VirtualBox Windows Guest + USB SmartCard Reader
不需要安裝 Guest Additions,但步驟如下可能會順利許多:
- 安裝 Windows Guest VM,關機。
- 插上讀卡機,在 VM USB (ver. 1.1 / 2.0) 設定勾選該裝置。
- 拔除讀卡機。
- 開啟 Windows Guest VM,開機完成再插入讀卡機。
Ping VirtualBox Windows Guest Fail?
想從 VirutalBox Host ping 到 Windows Guest?兩個條件:
- VirtualBox Settings -> Network -> Host-only Adapter
- Windows Guest Firewall -> Inbound Rules -> Virtual Machine Monitoring (Echo Request - ICMPv4-In / ICMPv6-In) -> Profile: Public / All -> Enable
星期四, 11月 24, 2016
Java 8 + JBoss 4.x + JSP
要安裝 JBoss 4.x,可先在此下載,解壓縮即可。解壓後的目錄在下文以 <JBoss_Home> 表示。
啟動指令是 <JBoss_Home>/bin/run.sh -b <hostName_or_IP> &,如果省略 -b binding 的部份也可以,就只會允許伺服器本機的來源訪問;如果省略尾巴的 & 也可以,就變成前景執行(好像比較難管)?
停機指令是 <JBoss_Home>/bin/shutdown.sh -S -s <hostName_or_IP>,-s 的部份可省略,視如何開啟決定。
JBoss 4.x 接受 .war 熱部署,也就是把檔案直接丟 <JBoss_Home>/server/default/deploy 即可。
重點來了:如果底下是 Java 8 的話,.war 裡面的 JSP 如果有用到字串取代,在編譯時會拋出以下的錯誤:
依據這篇文章的說法,改 Java 7 即可解決。在安裝 Java 7 之後的程序如下:
怪的是,若再改回 Java 8 也不會有錯?其實原因在編譯結果已存在 JBoss 的其他位置,所以若將 JBoss 重新解壓縮到另一個目錄,那邊的 JSP 仍然會有問題。
啟動指令是 <JBoss_Home>/bin/run.sh -b <hostName_or_IP> &,如果省略 -b binding 的部份也可以,就只會允許伺服器本機的來源訪問;如果省略尾巴的 & 也可以,就變成前景執行(好像比較難管)?
停機指令是 <JBoss_Home>/bin/shutdown.sh -S -s <hostName_or_IP>,-s 的部份可省略,視如何開啟決定。
JBoss 4.x 接受 .war 熱部署,也就是把檔案直接丟 <JBoss_Home>/server/default/deploy 即可。
重點來了:如果底下是 Java 8 的話,.war 裡面的 JSP 如果有用到字串取代,在編譯時會拋出以下的錯誤:
依據這篇文章的說法,改 Java 7 即可解決。在安裝 Java 7 之後的程序如下:
怪的是,若再改回 Java 8 也不會有錯?其實原因在編譯結果已存在 JBoss 的其他位置,所以若將 JBoss 重新解壓縮到另一個目錄,那邊的 JSP 仍然會有問題。
星期六, 11月 19, 2016
Alpine quick start
因為 Docker 的關係,才注意到 Alpine 這種超輕量級的 Linux 最近很紅,以下紀錄一些初探的心得。
首先由官網下載 ISO,開機過程中有些問題要回答,大部份依照預設值即可。值得注意的是:
首先由官網下載 ISO,開機過程中有些問題要回答,大部份依照預設值即可。值得注意的是:
- 首次登入的帳號是 root,無需密碼。
- 登入後第一個命令在提示訊息也可看到:setup-alpine。
- 網路必須要通,依預設會用 dhcp 連外。
- 在意時區的話,可輸入 Asia/Taipei。
- 鏡像站 mirror 的選擇,可依預設讓每一個都測試過反應時間,自動挑最快的。
- 除非當作 LiveCD 用,可以一直按 enter 依預設值下去。若要安裝在硬碟的話,還是必須選擇裝在 sda 之類的裝置上,接著「如何使用」請回答 sys,為了要清除舊磁區內容還必須再回答 y。
- 這階段完成會提示要 reboot,請先移除光碟再重啟。
- 以 openjdk 為例,指令 apk search openjdk 搜尋沒有結果。
- vi /etc/apk/repositories 可看到先前實測過最快的鏡像站,並且預設只接受官方套件,在此試著修改以增加社群等其他來源,存檔。
- 執行 apk update,再次搜尋 openjdk 就有結果。
- 執行 apk add openjdk8-jre (不需完整套件名稱)即可安裝。
- 詳細列表可參考這裡,不過這裡的搜尋條件要用 openjdk* 的型式。
Jenkins farm on Docker
單獨一部 Docker based Jenkins 不稀奇:
接下來要準備讓 Slave 掛上來,首先在 Jenkins 管理介面建一個新 Node,假設取名為 slave1,並設定 Remote root directory 為 /var/opt/jenkins,存檔,再點進去,畫面會像這樣:
點選超連結下載 slave.jar 並移到新建的 ~/share 目錄,然後在 Terminal 下指令:
[2016/11/27]
補充不在 Docker 又限制 https,若憑證是自簽或沒有預設信任的狀況下,當然增加信任根憑證是治本之道,不過也可以應急:
- docker run -d --name jenkins -p 80:8080 jenkins
- docker inspect jenkins | grep IPAddress
- docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
接下來要準備讓 Slave 掛上來,首先在 Jenkins 管理介面建一個新 Node,假設取名為 slave1,並設定 Remote root directory 為 /var/opt/jenkins,存檔,再點進去,畫面會像這樣:
點選超連結下載 slave.jar 並移到新建的 ~/share 目錄,然後在 Terminal 下指令:
- docker run -d --name slave -v ~/share:/var/opt/jenkins:Z -w /var/opt/jenkins java:8-jre-alpine java -jar slave.jar -jnlpUrl http://172.17.0.2:8080/computer/slave1/slave-agent.jnlp -secret 1689af1c531a13800eff7b69113622c383d30b218cf7d28fea1322b3faf651b4
[2016/11/27]
補充不在 Docker 又限制 https,若憑證是自簽或沒有預設信任的狀況下,當然增加信任根憑證是治本之道,不過也可以應急:
- java -jar slave.jar -jnlpUrl https://172.17.0.2:8080/computer/slave1/slave-agent.jnlp -secret 1689af1c531a13800eff7b69113622c383d30b218cf7d28fea1322b3faf651b4 -noCertificateCheck
星期三, 11月 16, 2016
Building dynatrace easyTravel from Source
- 在 dynatrace 官網下載 easyTravel 的原始碼壓縮檔,假設解壓目錄名為 ~/Downloads/dynatrace-easytravel-src。
- 安裝 Java、Ant。
- 編輯 /etc/hosts,為本機增加一個名稱,例如 osboxes。
- 切換至 ~/Downloads/dynatrace-easytravel-src/Distribution 目錄,執行 ant 命令,將產生 dist 子目錄放置編譯結果。
- 編輯 dist/startDistribution.sh,找到一行「export WEBLAUNCHER=set-this-property」,改為「export WEBLAUNCHER=osboxes」,存檔並執行,即會出現 easyTravel 的網頁管理介面。
- 在管理介面關閉 Mobile 相關的前端,也不要自動產生模擬流量,以節省資源。
- 在管理介面啟動 Production -> Standard 模式,注意資料庫必須正常運作,否則請檢查紀錄並排除問題。
- Credit Card Auth. (C++) 啟動失敗可以忽略,另外兩項在啟動過程中逾時,事實上已在提供服務。若在意的話,停止再啟動應能成功,否則請檢查紀錄並排除問題。
- 透過瀏覽器登入,帳密可用 afrida / afrida,網頁應會回應「Hello Afrida Afwika!」。
訂閱:
文章 (Atom)



