2013年3月30日土曜日

systemctl で wpa_supplicant と network の起動順がうまく解決できない

Fedora なんだけど、どうも wpa_supplicant と network の起動順がうまく制御
できない。systemctl でこのあたりどうしたらいいのか。

/usr/lib/systemd/system/wpa_supplicant.service は、 ディストリデフォルト
で以下のように network.tar.get の前に起動するようになっている。

[Unit]
Description=WPA Supplicant daemon
Before=network.target
After=syslog.targe

手元の無線 LAN のインタフェースは wlan0 で、/etc/sysconfig/network-scripts/ifcfg-wlan0
では、ちゃんと BOOTPROTO=dhcp になっているが、OS 起動後に dhclient の
プロセスがない。

/usr/lib/systemd/system/network.target に以下のように無理くり Requires
と After を入れてみたがダメ。

[Unit]
Description=Network
Documentation=man:systemd.special(7)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
Requires=wpa_supplicant.service
After=wpa_supplicant.service

うーーん、network.target から dhclient を分離すべきなんじゃ、と思ってしまう。

とりあえずこんなことに時間をとられたくないので、rc.local に dhclientの
起動を書いてごまかすか。rc.local は systemctl の rc-local.service で使えるみたいだ。

2013年3月26日火曜日

SFDC OAuth2 で勘違いしてた

今まで FDC の OAuth2 で Authorization Code を取得するところで
一処理余分なことをやってたっぽい。以下のような感じ。

  1. クライアントが SP(https://login.salesforce.com/services/oauth2/authorize)
    に POST で以下の内容を送る。
    response_type=code&client_id=<clientid>&client_secret=<secret>&redirect_uri=https://example.com/hoge
  2. するとクライアントは以下のリダイレクト用 URL を受け
    取るので、これをLocationヘッダとしてユーザに送り返す。

    https://login.salesforce.com/setup/secur/RemoteAccessAuthorizationPage.apexp?source=xxxxxxxxxxxxxxxxxxxxx
  3. ユーザのブラウザはこれを受け取り SP にリダイレクトする。
    するとユーザがログインしていない場合はログイン画面が表示
    されログイン処理を行い、その後は自動的にクライアントにリ
    ダイレクト。この際 GET パラメータには Authorization code
    が含まれている。
  4. クライアントは受け取った Authorization code を SP に送信
    して Access Token を取得。
と思ってたんだけど、どうも 1 の部分の SP とのやりとりは不要で
2 から始められるようだ。この際の Location ヘッダにセットする
URL は以下のような感じで client_secret は不要。


https://login.salesforce.com/services/oauth2/authorize?response_type=code&client_id=
3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA
9GE&redirect_uri=https%3A%2F%2Fwww.mysite.com%2Fcode_callback.jsp&state=mystate

1と同じ response_type=code というパラメータを渡してる。

まぁ、勘違いというわけでもなく今まで覚えていた方法でも良いの
だろうが、どこからこの情報を得たのかがもうわからなくなってい
て、、、うーーんという感じ。




2013年3月21日木曜日

urxvt で動的フォントサイズ変更

これもずっとわからんで放置してたんだけど、イーカゲン画面を他人に
見せてる状態で urxvt を起動したら文字が小さくて見えんというのを
なんとかしたいと思い調べた。

下記 URL によれば、man 7 urxvt に説明があるらしい。

https://bbs.archlinux.org/viewtopic.php?id=44121

printf '\33]50;%s\007' "xft:Terminus:pixelsize=20" で行けるらしい。
で、上記の最後の人を真似てスクリプトを作成。
 cat ~/bin/urxvt-font
 #!/bin/sh
 printf '\33]50;%s\007' "xft:Terminus:pixelsize=$1"

2013年3月19日火曜日

java md4

java で ntlm ハッシュを作らなくちゃならなくて、
http://www.monyo.com/technical/samba/translation/ntlm.html
を参考にソース書いてるんだけど、どうもこの中の MessageDigest.getInstance("md4")
のところで以下の Exception が発生してしまう。

  java.security.NoSuchAlgorithmException: md4 MessageDigest not available

sun.security.provider.MD4 のソースを見ると以下のコメントあり。
 
 37  * <p>The MD4 algorithm is very weak and should not be used unless it is
 38  * unavoidable. Therefore, it is not registered in our standard providers. To
 39  * obtain an implementation, call the static getInstance() method in this
 40  * class.

結局 MD4.getInstance() することで解決。
 

2013年3月15日金曜日

トラブルの時だけ顔出し屋

トラブルのときだけ顔出して、テキトーなことだけアドバイス
したつもりになって、作業は誰かにやらせる。

これが一番会社で評価されますw

2013年3月12日火曜日

公開鍵が見つからん

Shibboleth のバイナリを shibboleth.net からダウンロードして、
gpg で verify したいんだけど、署名した人の公開鍵が見つからない。

D2B37353 っつー GPG ID なんだけど、pgp.nic.ad.jp には存在
しない。ぐぐったら pgp.rediris.es というサーバにはあったので
--recv-keys したんだけど、このサーバ大丈夫かな?

どうも pgp のキーサーバー達ってうまく同期がとれていないよう
に思う。

古い資料だけど、以下は各鍵サーバの鍵数の違いについて触れられ
ていた。

http://www.ipa.go.jp/security/fy14/development/openpksd/report.pdf

このあたり、gpg いや pgp が普及しない要因でもあるのかな?


2013年3月7日木曜日

tsocks すごいや

今まで知らなかったのがもったいないというか恥ずかしいというか、、、

「このコマンド SOCKS 対応してないじゃん」なんてもう言わせない→ tsocks
こりゃすごい。

 TSOCKS_CONF_FILE 環境変数にテキトーなファイルを指定。

    TSOCKS_CONF_FILE=$HOME/.tsocks
    export TSOCKS_CONF_FILE

$HOME/.tsocks を編集。手元の localhost に 10011 ポートで SOCKS を
開けた時の例。私は通常 ssh の -D 使ってる。

  server = 127.0.0.1
  server_port = 10011

んで、SOCKS Proxy を通したいアプリを tsocks コマンド経由で起動。

  tsocks wget http://www.fastriver.net/

なんて感じで。もう何でもありです。ありがとう tsocks!

実はこれも TSOCKS で firefox 起動して書いてます
(firefox はもともと SOCKS 対応してるじゃんw)

 

2013年3月1日金曜日

.gitattributes で * ident すると autocrlf が効かない

.gitattributes に以下を記述したまま git clone すると、
git config で core.autocrlf=true にしても改行が LF
のまま。

  *   ident

原因はまだわからん…

仕方ないので

git rm .gitattributes
git commit -m "remove .gitattributes"
# git が管理しているファイルを全部削除して以下実行
git reset --hard

これで復活