- PR -

Servletからロール一覧を取得

1
投稿者投稿内容
カーニー
ぬし
会議室デビュー日: 2003/09/04
投稿数: 358
お住まい・勤務地: 東京
投稿日時: 2004-06-03 16:31
こんにちは、カーニーです。

サーブレット環境でプログラミングをしています。
web.xml に定義されているロール(security-roleタグ)の一覧を、サーブレットプログラムからListや配列で取得する方法はありませんでしょうか?

ログインユーザがどのロールを持っているかをプログラムから知りたいのです。

1)定義されているロール一覧を取得 <- このやり方が不明
2)各ロールについて、HttpServletRequest.isUserInRole(String)でログインユーザがそ
 のロールを持っているかどうかを判定

もしご存知でしたら教えて下さいませ。
よろしくお願いします。

環境
J2SE 1.4.1
Tomcat 5.0
Cluster
ぬし
会議室デビュー日: 2003/03/06
投稿数: 289
お住まい・勤務地: 大阪
投稿日時: 2004-06-03 16:39
スマートな手があるかもしれませんが、とりあえず強引な手を一つ。

servletcontext#getRealPath でアプリケーションのインストールディレクトリを
割り出して、そこからファイルとしてweb.xmlを読み込んで、パースして値を取得する
とか。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-06-03 16:53
>servletcontext#getRealPath でアプリケーションのインストールディレクトリを 割り出して
私もゴリ押し実装に一票です。ただし getRealPath はアーカイブされているアプリケーションでは null を返すので getResourceAsStream で取得するのをお勧めいたします。
カーニー
ぬし
会議室デビュー日: 2003/09/04
投稿数: 358
お住まい・勤務地: 東京
投稿日時: 2004-06-03 17:49
んー、やっぱゴリ押しですか・・・。

別のゴリ押しとしては、Tomcat限定で

org.apache.catalina.Context#findSecurityRoles()

っていうのを見つけたので、HttpServletRequestをうまくキャストすればたどり着けそうです。
1

スキルアップ/キャリアアップ(JOB@IT)