タグ

ブックマーク / qiita.com/kawasima (6)

  • Shift_JIS文化からUTF-8への移行ガイド - Qiita

    まだまだ場所によってはShift_JIS文化は根強く、2015年が終わろうとしている現在でも、「ようやく我が社もUnicodeでシステムを作ることを考えるっ!」なんてところは多くあるかと思います。 そんな現場で、これまでJavaでShift_JISでシステム構築してきたSIer向けのUTF-8移行ガイドです。 文字長のチェック 文字長の入力チェックはShift_JISの世界では、半角文字は1バイト、全角文字は2バイトなので、以下のようなチェックロジックになっていたかと思います。 if (inputValue.getBytes("Windows-31j").length > 20) { errors.add("hoge", new ActionMessage("errors.maxlength", "ほげ", 10)); } UTF-8ではそれらの文字は、1バイト~3バイトで表されるので、バ

    Shift_JIS文化からUTF-8への移行ガイド - Qiita
    kuwalab
    kuwalab 2015/12/07
  • 多い日も安心設計 - Qiita

    アプリケーションエンジニアの多くは、眠れない夜を過ごしたことがあるでしょう。特に月に一度の…「月末締めバッチ」の日は。 そんなデータ量の多い日や、初モノのバッチが動く日でも安心して眠れるためのバッチ設計を考えてみます。 ログの設計 まず何はなくともログです。きちんとしたメッセージを出せていれば、専任の人がリカバリ可能にもなるってものです。 Audit用のログなど業務要件の強いものを除いては、だいたい3種類に分けるようにしています。 プログレスログ リカバリログ 例外ログ(調査のため) この分類でファイル単位も分けます。ログを必要とする人が、それぞれ異なるからです。 プログレスログ プログレスログは、特に長時間かかるバッチに対して、現在どのくらいまで処理が出来ているのかを目的として出力します。 トラブル発生時や、大規模移行作業時には、バッチの定期的なモニタリングと報告の必要が出てきます。「あ

    多い日も安心設計 - Qiita
  • プロキシ環境下でのCoreOS + Docker - Qiita

    ※ この記事はVMWare上のCoreOSについての記述です。Vagrantなど別の環境では、違った方法があるのかもしれません。 dockerホストOSとしてなるべく軽量なものがいい、CoreOSだ、となるのですが、プロキシ環境下では困ったことになります。 dockerは内部的にはGonet/httpを使って、イメージファイルを取りに行きます。したがってプロキシを通すためには、HTTP_PROXY環境変数にプロキシURLを設定すればよいのです。

    プロキシ環境下でのCoreOS + Docker - Qiita
  • BeanUtils 1.9.2で追加されたSuppressPropertiesBeanIntrospectorの使い方 - Qiita

    Struts1の脆弱性問題で、commons-beanutilsに対応が入ったバージョン1.9.2がリリースされました。 https://issues.apache.org/jira/browse/BEANUTILS-463 といっても、デフォルトで問題が修正されるわけではなく、セットアップは必要です。 仕組み BeanIntrospectorという仕組みが1.9.xからは導入されていて、PropertyUtilsにこのBeanIntrospectorを追加すると、オブジェクトのどのメソッドをプロパティとして扱うかの挙動を変えることができるようになっています。 使い方はテストコードがあるので、そちらを見てみます。 String[] properties = { "test", "other", "oneMore" }; SuppressPropertiesBeanIntrospector

    BeanUtils 1.9.2で追加されたSuppressPropertiesBeanIntrospectorの使い方 - Qiita
    kuwalab
    kuwalab 2014/06/10
  • S2-020類似攻撃のStruts1での対策方法 - Qiita

    恐ろしいことですが、実装が全然違うStruts2の脆弱性S2-020と同様の攻撃手法で、Struts1も脆弱性があることが分かりました。 http://www.lac.co.jp/security/alert/2014/04/24_alert_01.html ここではあまり明らかになっていませんが、原因は // Set the corresponding properties of our bean try { BeanUtils.populate(bean, properties); } catch(Exception e) { throw new ServletException("BeanUtils.populate", e); } finally { if (multipartHandler != null) { // Set the multipart request handl

    S2-020類似攻撃のStruts1での対策方法 - Qiita
  • パスワード問合せシステムを作る (clojureのreducers) - Qiita

    現在のパスワードを教えてくれるからといって、「平文で保存してる!くぁwせdrftgyふじこlp‎」と脊髄反射してはいけません。 JALの6桁数字パスワードがどう格納されているか? 古いシステムなのでMD5でハッシュ化していると想定しますが、もちろんsaltは付けているでしょう。 さて、そんなパスワード保管方式で、現在のパスワード問合せに応答するシステムを作ってみます。 パスワードを「567890」、saltを「hoge」として、データベースには"hoge$567890"のMD5値"4b364677946ccf79f841114e73ccaf4f"が格納されているとします。 総当りしてみましょう。 (ns six-length.core (:require [clojure.core.reducers :as r]) (:import [java.security MessageDigest

    パスワード問合せシステムを作る (clojureのreducers) - Qiita
    kuwalab
    kuwalab 2014/02/09
    これは新しい形の批判でおもしろいw
  • 1