JAX-RS

Jersey (JAX-RS) のアクセス制御

今回は Jersey (JAX-RS) で作った WebAPI でアクセス制御を行う方法について書きます。JAX-RS は J2EE の仕様である以上、アクセス制御をロール単位で行う点に変わりはありません。とはいえ、アプローチの方法は複数あります。主に 3 つです。1. web.xml (な…

Jersey Test Framework を使って WebAPI の単体テストを書いてみる

フロントエンドの HTML やアプリケーションと WebAPI を別々に開発すると、ビューとロジックをほぼ完全に分離できます。それぞれの責務が絞られるので、もともと不具合が生じにくいというのもありますが、何より WebAPI は単体テストが書きやすいという点で…

WebAPIのステートレスなCSRF対策

Jerseyのバージョン1.9.1で追加されたCSRFをステートレスに防ぐフィルタが興味深かったので、そのメモです。 CSRF対策の手法 通常、CSRF攻撃を防ぐにはトークンを使う方法があります。サーバがクライアントにトークンを発行して、クライアントは発行されたト…

JAX-RS のリファレンス実装 Jersey のフィルタを使う方法 その2

前回のフィルタの例はあまりにも実用性がなかったので、もう少し実用性のある例を書いてみました。ContainerRequestFilter と ContainerResponseFilter を組み合わせてリソースの処理時間を測るフィルタです。 package test.jersey.filter; import javax.ser…

JAX-RS のリファレンス実装 Jersey のフィルタを使う方法

JAX-RS を使っていると、リソースの処理が呼ばれる前か後に何らかの処理をはさみたい、ということがあると思います。Jersey ではそういったニーズにフィルタで対応できます。Jersey のフィルタにはリクエスト/レスポンスを一律処理するフィルタ (ContainerRe…

Jersey OAuth を使って Twitter API にアクセスする

Jersey には OAuth で認証するためのモジュールが用意されています。今回はそれを使ってみた時のメモです。内容的には JAX-RS を使ったことがあることを想定しています。まず、あらかじめ Twitter Developers でアプリケーションを登録して Consumer Key と …