[Seasar-user:18190] Re: URL直接入力(直リンク)の制御について

松山 大樹 [E-MAIL ADDRESS DELETED]
2009年 8月 4日 (火) 11:21:51 JST


松山です。

> 具体的にやりたい事は、直リンクされたときに
> 
> 1.ログインされているか
> 
> 2.アクセス権限があるか
> 
> 3.アクセス権限があるが、直リンクで確認画面などに
>   遷移されたときのチェック
> 
> をやろうとしています。
> 
> 上記の内、1と2に関しては問題なく作成できています。
> 問題なのは3のチェックの実装で困っている状況です。
> 
> 皆さんはどのように対応されているのでしょうか?

いきなり確認画面に直リンクしても、表示すべき内容など
がないので、あまり実害はないだろ、ってことで、あまり厳密に
考えてないです(^^;
厳密にやるなら、入力画面→確認画面の間のロジックで、何か
トークンとか生成して、確認画面のinitialize() でそれがなかったら
例外にするとかですかね。

> 
> 
> 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
>>
> 
> 
> 




Seasar-user メーリングリストの案内