GAEでRSA-SHA1方式のOAuth認証は出来なかった => 出来た

前々々回作ったG-Storageを機能追加した。
土日+有給の5連休で本気出した。
本気出し過ぎた。
明日から仕事。
 
G-Storage
http://g-storage.appspot.com/
 

OAuth認証(RSA-SHA1方式)

Pythonでは、PHPでいう所のopenssl_verify()がなくて、ダメだった。
TLSLiteってライブラリがあったけど、中でC言語使ってるからGAEでは無理だった。
TLSLite => M2Crypto => C言語(SWIG) => OpenSSL
 
TLSLiteは、tlslite/api.pyのintegration/*をimportしてる部分をうまい事消せば、importする事は出来た。
 
Python | def openssl_verify(data, sig, - Andrew B - f137244e1 - Pastebin.com
http://pastebin.com/f137244e1
 

API機能追加

Share Storage API追加

/storage/share以下のフォルダを、/share/[username]として公開するようにした。
/share/[username]は認証不要。
methodはcat固定。
デフォルトのformatはbin。
 

Proc API追加

ユーザの情報。
Storage APIとは違って、ログイン出来てなくても200を返す。
Flexからのログインチェックなどに使うと便利。
 

Flex Filler機能追加

/path?X-WSSE=〜〜

ファイルダウンロードが失敗してた。
FileReference.download()で指定したURLRequestのrequestHeadersは無視されるらしく、X-WSSEヘッダが送られてなかった。
なので、GET/POSTで送っても認証出来るようにした。
独自仕様。
 

ファイル削除

ファイルの右の「×」でファイル削除出来るようにした。
 

フォルダ作成

右上の「フォルダ作成」から作成出来るようにした。
 

バリデート

入力は全体的にバリデートするようにした。
 

 

追記

RSA-SHA1認証出来た。
 
G-StorageにOAuth認証(RSA-SHA1方式)をつけてみた - eth0jpの日記
http://d.hatena.ne.jp/eth0jp/20100411/1270943250