java

ANYアドレスでServerSocketをバインドさせる

ServerSocketがbind()するとき、そのエンドポイント指定に使うInetSocketAddress作成で、 第一引数にInetAddress.getByName("0.0.0.0")を渡す 第一引数にInetAddress.getByName(null)を渡す と、ANYでバインドする。つまり、上記の二つのInetAddressがANYア…

メッセージの国際化

とりあえずデフォルトメッセージと日本語用メッセージを用意。それぞれ文字コードをUTF-8にしておく。(native2asciiはしない) messages.properties (デフォルト名+.properties) pstyle.crypt.Tool.location_is_null=--location option is required. pstyle…

秘密鍵 / 公開鍵 を生成して署名

署名を生成するための秘密鍵、書名の確認を行うための公開鍵の生成。 アルゴリズムは "RSA" とか "DSA"とか。 public CryptKeyPair generate(String keyAlgorithm, int keyLength) { try { KeyPairGenerator generator = KeyPairGenerator.getInstance(keyAl…

共通鍵方式で 暗号化 / 復号化

まず鍵生成。アルゴリズムは "AES" とか "DESede" とか "Blowfish" とか。 public CryptKey generate(String keyAlgorithm, int keyLength) { try { KeyGenerator generator = KeyGenerator.getInstance(keyAlgorithm); SecureRandom random = SecureRandom.…

JCE参考サイト

・セキュリティー http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/security/index.html Javaにおけるセキュリティ全般の説明。 ・Java ™ 暗号化アーキテクチャー(JCA) リファレンスガイド http://java.sun.com/javase/ja/6/docs/ja/technotes/gu…

Base64 エンコード / デコード

エンコード。3バイト分のデータを4文字に変換。dataはバイト列。forの真ん中がlength-2なのは3バイトであまるものをはじくため。3バイトずつ処理して、データのお尻で余ったもの処理を入れた。 public String encode(byte[] data) { char[] charBuffer = new…

SimpleJdbcTemplateに甘えすぎた

JdbcTemplateのsyntax sugarなSimpleJdbcTemplate。文法が甘いだけに、恥ずかしいエラーで立ち止まる。SimpleJdbcTemplateで使うのRarameterrizedRowMapper public class FooRowMapper implements ParameterizedRowMapper { @Override public Foo mapRow(Res…

ResourceBundle, MessageSourceでproperties内に日本語でメッセージを書く

<移行分> ResourceBundle, MessageSourceでproperties内に日本語でメッセージを書く Java6のJavaDocを眺めていると、ResourceBundle を拡張する ResourceBundle.Control というものがあるらしいことに気づいた。つまりUTF-8指定した Properties を使う Res…

eclipse.ini

SpringIDE 2.1がリリースされてる。Spring Web Flow 2 と Ganymede 対応がメインの様子。コード編集中に eclipse がやたらに落ちる。[プロジェクト]/.metadata/.log 内にjava.lang.OutOfMemoryError: PermGen spaceが出力されるとき、eclipse.ini でPermSize…

スレッドスコープ

Springframeworkのカスタムスコープ、知っておくといろいろ便利そうなので、 リファレンスで実装例がなかった "thread" スコープを実装してみました。ThreadLocalMapはThreadLocal内にあるHashMapをMapインターフェースでラップしたもの。 package examples.…

visualvm 1.1 リリース

先月の話っぽいのですが、visualvm 1.1がリリースされている模様。SunのVM以外も見れたりプラグインで拡張できたりといろいろな新機能が盛り込まれていみたいだけれど、コアダンプ解析がとっても気になる。こいつとJConsole(というかJTop), visualgcはJavaア…

日本語が使えるPropertiesクラス

<移行分><追記> Java6では、util.Properties#load(Reader reader) なんてメソッドが用意されており、 java.util.Properties jp = new java.util.Properties(); InputStream in = this.getClass().getClassLoader.getResourceAsStream("path/to/props.prope…