MD5Transform.java2011-09-17 09:04:25

OpenAMのJDBC認証時にMD5パスワードを扱いたかったので作ったもの.探がしかたが悪かったのか,適当なものが見つからなかった.ClearTextTransform以外もはじめから用意しててくれればいいのに.

package com.sun.identity.authentication.modules.jdbc;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
 
import com.sun.identity.authentication.spi.AuthLoginException;

public class MD5Transform implements JDBCPasswordSyntaxTransform {

	public MD5Transform() {
		
	}
	@Override
	public String transform(String input) throws AuthLoginException {
		System.out.println(input);
		String result = toMD5HexString(input);
		result = result.trim();
		System.out.println(result);
		return result;
	}
	
	private String toMD5HexString(String source) {
		StringBuilder sb = new StringBuilder();
		 MessageDigest md;
		try {
			md = MessageDigest.getInstance("MD5");

			  byte[] data = source.getBytes();
			  md.update(data);
			            
			  byte[] digest = md.digest();
			            
			  
			  for (int i = 0; i < digest.length; i++) {
				  String hex = Integer.toHexString((int) 0x00FF & digest[i]);
				     if (hex.length() == 1) 
				     {
				        sb.append("0");
				     }
			    sb.append(hex);
			  }
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}

	return sb.toString();
	}
}

有効期間切れアカウントのリストを作成する2011-04-16 14:00:30


# cat /etc/shadow | awk -F":" '{if($8*86400!=0&&$8*86400<systime()){print $1}}'

だいたいこれで良さそうか。。
awk初心者なのでもっといいやりかたがあるかも。

Google Fusion Tablesのテスト2011-03-24 06:40:32

いままで知らなかったけど、Google Fusion Tablesなるサービスがあるみたい。

http://www.google.com/fusiontables/

Google Fusion Tablesは表形式のデータをグラフ化してくれるサービス(beta)。

CSVファイルの読み込みだけでなく、Google Spreadsheetからのインポートにも対応している。

とりあえず、東京電力が公開している消費電力データをグラフ化してみた。

http://www.tepco.co.jp.cache.yimg.jp/forecast/html/images/juyo-j.csv

6時段階のデータなのであまり見応えないけど。。。

まだ使い方わからないこと多いけど、
リアルタイムにデータ取り込んでグラフ化ということもできれば面白い。



sshdの設定2011-02-20 19:40:27

リモート接続用。
鍵交換方式による認証をとる。
rootは許可しない。

# grep -v "^#" /etc/ssh/sshd_config | grep -v "^$"
Port 2222
Protocol 2
SyslogFacility AUTHPRIV
PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL
X11Forwarding yes
Subsystem       sftp    /usr/libexec/openssh/sftp-server

authorized_keysが無い場合はファイルを作る。
パーミッションを変更するのを忘れずに。
$ mkdir .ssh
$ chmod 700 .ssh
$ vi .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys

このファイルに公開鍵を挿入する。
$ cat id_rsa.pub > authorized_keys

PuTTYでエキスポートしたOpenSSH Keyファイルは変換が必要。
$ ssh-keygen -i -f id_rsa.pub.putty > id_rsa.pub

ESXi再構築2011-02-20 11:36:46

HDD障害により、仮想マシンのハードディスクに障害が発生した。
復旧を試みるが、無理だった。
しかたないので新規一転、システム環境を再構築することにする。

とりあえず、ESXi 4.1をインストール。ついでにvSphere Clientも。

まず、リモートアクセス用のサーバ構築から始める。

データストアにCentOS 5.5 netinstall用のisoイメージをアップロードして、
新規仮想マシンでisoイメージをデータストア経由でマウントする。

設定変更点は以下のとおり。
ネットワークアダプタ:
VMXNET3は認識しなかったので、E1000に変更。
SCSIコントローラは、
VMWare準仮想~はインストーラから認識できなかったので、
LSI Logic SASに変更。


後は通常どおりのインストール。

はぁ、先は長い。



JSON形式SPARQL Resultを処理する2010-12-17 21:50:53

あまり使う機会は無いけど。

try {
    FileInputStream fin = new FileInputStream(new File("sparql.json"));
    ResultSet result = JSONInput.fromJSON(fin);
    while(result.hasNext()) {
        QuerySolution qsol = result.next();
        Literal literal = qsol.getLiteral("o");
        String str = (String) literal.getValue();
        System.out.println(str);
    }
 } catch (FileNotFoundException e) {
 e.printStackTrace();
 }


log4j RollingFileAppenderについてのメモ2010-12-09 07:44:05

課題

Servletでのlog4j.appender.file.Fileでのパス指定の仕方がわからずPermission deniedが発生。フルパスは使いたくない。

対処法

log4j.appender.file.Fileでのパス指定に変数${catalina.home}を利用する。

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${catalina.home}/logs/servlet.log
log4j.appender.file.Append=true
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=10  
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %-5p %c - %m [%t] (%F:%L)%n