ここ最近ほとんどフロントエンドを触ってなかったのでFacebookのreactのチュートリアルを試しに触ってみた。
- コンポーネントってそういうことかー
- JSX、最初は違和感あったけど、記述量が減るし慣れれば気にならなくなる
- 規模が大きくなるとわからないけど、この程度なら見通しよさそう
- propsで深く値を引き回すようだと大変になりそう
ここ最近ほとんどフロントエンドを触ってなかったのでFacebookのreactのチュートリアルを試しに触ってみた。
sorcery v0.9.0からソルトの生成とパスワードの暗号化の処理がbefore_save
からbefore_validation
に移された。この影響で、テストのためにログインパスワードを上書きするときにupdate_attribute
を使っているとログインできずにテストが落ちるようになった。
これはupdate_attribute
がバリデーションをスキップするためにbefore_validation
のフックが発火されないためだ。
対策としてはupdate_attributes
もしくはupdate_attributes!
を使えばいい。
module AuthenticationForFeatureRequest def login user, password = 'login' user.update_attributes password: password page.driver.post sessions_url, {email: user.email, password: password} visit root_url end end
すごくわかりやすいし面白い。
などなど。デジタル署名あたりまで読み終えたけど、SSL/TLSはまだまだこれから。
素数をもとにしたRSAが解けるかどうかは素因数分解を高速に解けるかどうかにかかっていて、P≠NP問題が暗号につながるのはこれかーとか。楕円曲線暗号ってなんだろうなーとか。AESはオープンなコンペ方式で専門家が穴をつつきまくった結果負けなかったアルゴリズムであるとか。
やあ、楽しいですね。
$HOME/.guardrc
もしくはGuardfileと同じディレクトリの.guardrc
に次のように追記する。
Pry.commands.delete(/^$/)
全プラグインを実行するにはa
やall
を入力すればよい。
ポリシージェネレータをいじったり手でいじったりして、特定のタグを持つインスタンスの起動、停止ができるカスタムポリシーを作った。
// ※ 実際はJSONなのでコメントは記入できません { "Version": "2012-10-17", "Statement": [ // EC2のインスタンスに対する状態の取得を許可する // これも↓のAllowStopStartのように対象をタグで絞り込もうとしたら動いてくれなかったので、全サーバに対して許可した { "Sid": "AllowDescribe", "Effect": "Allow", "Action": [ "ec2:Describe*" ], "Resource": [ "*" ] }, // key=Foo,value=Barタグを持つインスタンスに対して起動と停止を許可する { "Sid": "AllowStopStart", "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Condition": { "StringEquals": { "ec2:ResourceTag/Foo": "Bar" } }, "Resource": [ "arn:aws:ec2:*" ] } ] }
実際にはAllowStartStop
部分だけでいいんだろうけど、decribe系のAPIも使いたかったのでAllowDescribe
として混ぜた。注釈でも触れているとおり、describe系の対象もタグで絞り込もうとしたら動かなかったので、全インスタンスを対象にした。ちなみにSid
は自由に設定できる。
ポリシーは生成してからもあとから編集できるんだけど、反映されるまでに少し時間がかかった。それと、ポリシー名をあとから変えたらポリシー自体が設定していたユーザの画面から消えた…。
カスタムポリシーを使えばFull Accessのような過大な権限を与えた結果関係ない部分に対して誤操作をしてしまうこともないし、適切なポリシー名をつければそのユーザがグループの用途やできることがわかりやすくなる。