仙人掌世界
learn - innovate - share
Apr 7, 2012
ScalaSTM 試用
STM(
software transactional memory
)是種
concurrency control
機制,相對於用 locking 進行同步化,更安全與簡單,以下使用帳戶轉帳的例子實作比較locking與STM
帳號轉帳案例
多組帳號同時以隨機金額進行轉帳,轉帳過程要保證沒有 race condition 與避免 deadlock
Read more »
Mar 18, 2012
Random / Math.random() / ThreadLocalRandom
java.util.Random
java.util.Random 亂數演算法會依賴 seed 數值產生亂數,並在產生亂數後重新產生 seed,
在 Multi-thread 下為了保證在各Thread取到不同的亂數, java.util.Random 在實作上使用 optimistic locking 來同步更換 seed ,問題是若所有Thread都使用同個Random物件產生亂數,在大量競爭下會造成不斷的loop計算,進而產生效能問題
Read more »
Feb 17, 2012
TOTP authentication demo 開發工具與佈署環境(Heroku)
延續前篇
使用 TOTP 與 Google Authenticator 實作 Two-Factor authentication
,此篇說明使用到的工具與相關心得
Application
Back-end
Java
slf4j
Apache commons-codec
Spring framework 3.1
嘗試了些新版的功能
1. Java-based configuration 覺得一般使用沒比 XML schema-based 好用,做框架設計的時候會比較實用,動態組裝、設定樣版、模組化,不知道還能怎麼運用
2.
Environment API
在啟動時依系統參數來區分"開發"或"佈署環境"的Profile,用於載入不同的 bean definition,若沒指定啟動參數則為 default 的 profile
e.g. JAVA_OPTS => -Dspring.profiles.active=heroku
Zxing
Google 的 QRCode library,在這用來產生 QRCode image 傳遞 secret key
Jedis
Redis Client 端的 Java Library
AspectJ
在這用來做 redis 的連線控制,避免階層操作下佔用多組連線
TOTP Algorithm
基於
RFC6238:TOTP: Time-Based One-Time Password Algorithm
附錄程式並做了些簡化
Front-end
Spring MVC
試用 Servlet 3.0 免宣告 web.xml 的功能,但從 Tomcat 搬到 Jetty 遇到些問題,在 Jetty 的根目錄(/) 會被 DefaultServlet 覆蓋, 導不到 spring mvc的DispatcherServlet,不想多加 Filter 只好換回 web.xml
Jackson Json
JQuery
Bootstap
Twitter 開發的前端工具庫
Read more »
Jan 22, 2012
[Java Performance]Chapter 3:JVM Overview
這篇談JVM的概觀與各元件用途與描述HotSpot VM在各元件上的優化技術
HotSpot VM High Level Architecture
JVM 有三個主要元件:
VM Runtime
JIT Compiler
Memory manager
Read more »
Jan 2, 2012
使用 TOTP 與 Google Authenticator 實作 Two-Factor authentication
在食衣住行育樂都需要的網路的時候,現代人擁有許多網路帳號,但能記憶的帳號密碼通常只有少數組合,當遇到密碼外洩(e.g.
資料庫外洩
、病毒側錄密碼),相對的也影響了使用共同帳密的網路服務,對今日資安事件逐漸從惡作劇變往金融犯罪的趨勢,帳號有操作功能,個資,身份(實名化),對盜竊者來說帳號密碼可以產生許多價值。
帳號盜用除了個人影響外,間接牽連的還有親友與網路服務提供者,對網路服務提供者而言,帳號盜用是會提高營運成本與降低使用者信賴度的麻煩事,因此面對使用者規模與服務品質,強化帳號安全逐漸成為不可忽視的事情,Google 於去年底開始提供
2-step verification
做多層次的帳號驗證,別於以往硬體 OTP 的方式,透過 Smartphone 使用軟體(i.e
Google Authenticator
) 來規模化佈署。
目前得知使用類似軟體驗證機制的服務提供者有
Google Account
Amazon AWS Account
Battle.net
Dropbox
在 Server 端的實作驗證流程不難,未來可能會變成一種常見的帳號驗證方法。
以下參考
國外部落格文章
與
Google Authenticator Android原始碼
實作
Two-Factor authentication
驗證流程,並釋出伺服器端
原始碼
。
Read more »
Newer Posts
Older Posts
Home
Subscribe to:
Posts (Atom)