[Seasar-user:18189] Re: URL直接入力(直リンク)の制御について
Yusuke Ito
[E-MAIL ADDRESS DELETED]
2009年 8月 4日 (火) 11:11:33 JST
伊藤です。
ご回答ありがとうございます。
質問が抽象的で申し訳ありません。
具体的にやりたい事は、直リンクされたときに
1.ログインされているか
2.アクセス権限があるか
3.アクセス権限があるが、直リンクで確認画面などに
遷移されたときのチェック
をやろうとしています。
上記の内、1と2に関しては問題なく作成できています。
問題なのは3のチェックの実装で困っている状況です。
皆さんはどのように対応されているのでしょうか?
2009/08/04 10:32 に <[E-MAIL ADDRESS DELETED]> さんは書きました:
> 伊藤さん、こんにちは。
>
> 鈴木 秀和と申します。
>
> 小林さんもおっしゃっているように具体的にどうなさりたいかわかりませんが
> うちのプロジェクトでは
> よくありがちな
>
> ログインしたユーザーの権限毎に
> 入力 or 遷移 できる画面を制御させる
> (e.g. 一般ユーザーは、マスタメンテ関連画面には入れない等)
>
> という機能を以下のような感じでやってます。
>
> まずDBなどに、ユーザー権限毎のアクセス禁止ページ(url)の情報を登録して
> おいて
> 次にインターセプタにて
>
> public Object invoke(MethodInvocation methodInvocation) throws
> Throwable {
>
> //URLを取得
> String url = httpServletRequest.getRequestURL();
> // ログインしていなければ
> if (authenticationDto.AuthenticationStatus == null) {
> // ログイン画面へ
> }
> // ログイン済なら
> else {
> // アクセス権限があるかを判断
> if (!pageAuthorityService.isAllowPageAccess(url)) {
> // 権限がないときは、あんたは権限ないよエラー画面へ
> return NoAuthorityPage.class;
> }
> }
> //各画面へ遷移
> return methodInvocation.proceed();
> }
>
> として
>
> アクセス権限チェックメソッド(上記の例だと isAllowPageAccess(url))にて
> 引数のurlと登録のアクセス禁止ページをマッチングさせて
> マッチしたらfalseを返す
>
> としています。
>
> こうしておけば URL直接入力されてもインターセプタでチェックが掛かりま
> す。
> ただしすべてのurlに対応するPageクラスがあり、そこにinitialize()なり
> prerender()なりが
> 必ずあるという前提ですが。
>
> # とここまで書いてたら、先に松山さんが回答してました... (^^;)
> # 処理的には多分、同じだと思います。
>
> 参考になれば幸いです。
>
> ではでは。
>
>
> 鈴木 秀和
>
>
>>From: Yusuke Ito <[E-MAIL ADDRESS DELETED]>
>>To: [E-MAIL ADDRESS DELETED]
>>Date: Mon Aug 03 18:09:06 JST 2009
>>Subject: [Seasar-user:18175]
> URL直接入力(直リンク)
> の制御について
>>
>>お世話になります。
>>伊藤と申します。
>>
>>teeda 1.0.13-sp6を使用しています。
>>
>>質問ですが、Teeda(Seasar2)の機能で
>>URL直接入力(直リンク)を制御できるような機能は
>>ありますでしょうか?
>>
>>大雑把な質問で申し訳ありませんが、宜しくお願い致します。
>>
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
--
--Yusuke Ito<[E-MAIL ADDRESS DELETED]>
Seasar-user メーリングリストの案内