つかびーの技術日記

情報系修士卒のWeb系技術日記です。現在のフォーカス分野はアドテクです。

@PermitAllを勘違い(認証不要)して時間を無駄にした

   

WebアプリケーションまたはWebサービスを作る場合、認証をかけたいリソースと認証をかけたくないリソースを区別したい場合があると思います。当たり前ですが、ログインページとかは認証をかけたくないです。

JavaとJAX-RS(Jersey)でWebサービスを作成する場合、以下のようなクラスを作ります。

このWebサービスに認証を導入する場合は、BASIC認証などを用いると思いますが、上記のinfoリソースには認証をかけないことを考えます。

このとき、@PermitAllアノテーションをgetIt()メソッドに付ければ解決すると思っていたのですが、どうやら違うようで・・・。web.xmlの設定次第ですが、認証は必要なようです。

PermitAllはあくまで認可という意味のようです。全てのユーザに上記リソースへの操作を認める、と。

permitって許可するという意味なので、てっきり認証すっ飛ばしてリソースへの操作を認めるのかと思いきや、違うんですね。ネーミングが悪いのか、自分の英語力が足りないのか・・・。

 - Java