- 1 名前:nobodyさん mailto:sage [2010/12/11(土) 10:58:56 ID:???]
- ■前
【Ruby】Ruby on Rails Part10 hibari.2ch.net/test/read.cgi/php/1282991262/ ■参考サイト <英語> 本家:rubyonrails.org API document:api.rubyonrails.com/ 開発者のblog:weblog.rubyonrails.org/ 参考wiki:wiki.rubyonrails.org/rails <日本語> Rails' wiki: wiki.fdiary.net/rails/ twitter.com/dhh www.loudthinking.com/
- 22 名前:15 [2010/12/13(月) 03:07:52 ID:aRjyTaj/]
- >>16
>>19 すいません、しばらくPHPばかり触っていて演算子のオーバーロード が頭にありませんでした。。ありがとうございます。 その後、色々調べていますが、やはりどうもうまくいきません。 例えば、 def ==(cmp_signature) exit Base64.decode64(signature) == Base64.decode64(cmp_signature) end のようにしても exitが実行されていないようで、普通の == 比較になってしまっているようなのです。 def verify exit self == self.request.signature end のようにすると、exitはちゃんと実行されるので、やはり == がなにかおかしい感じです。 rvm で Ubuntu 10.04.1 LTS に ruby-1.9.2p0を入れて使っているのですが、 同じような妙な挙動をしている方って他にいらっしゃるのでしょうか。。?
- 23 名前:15 [2010/12/13(月) 03:08:40 ID:aRjyTaj/]
-
また、== がおかしいのをとりあえず無視して ==メソッドの中身を verifyメソッドに書き足して def verify #self == self.request.signature Base64.decode64(signature) == Base64.decode64(self.request.signature) end とすると、 #<OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key:: nested asn1 error> となりました。 追っていくと、 digestメソッドのところでえらーになっているみたいなのですが、これがまたよくわからず、 同じクラス内の digest プライベートメソッドを呼び出さず、 https://github.com/pelle/oauth/blob/master/lib/oauth/signature/rsa/sha1.rb こちらの digest メソッドを呼び出しているようで、 #<OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key:: nested asn1 error> となります。 試しにrails consoleで require '/home/hoge/.rvm/gems/ruby-1.9.2-p0/gems/oauth-0.4.4/lib/oauth/signature/rsa/sha1.rb' して (OAuth::Signature::RSA::SHA1).methods.grep /digest/ すると [:digest_class, :digest_klass] が返り、digestメソッドが含まれていません。 よく分からないのですが、この挙動は正しいのでしょうか。。? 全く解決できる見込みがありません。 ご教示いただけると幸いです。
|

|