VwpFAQAuthUsersJa

許可されたユーザにのみページへのアクセスを許容する方法を教えてください。

NetBeans Visual Web Pack で開発されたアプリケーションの Sessionbean に '権限を与える' という値を追加するのは簡単に思えるかもしれません。この場合、保護された各ページはその値をチェック出来ます。そしてもしそれがセットされていなければユーザをどこかほかの場所へ送ります。しかし、すべてのページ Bean にチェックのソートを置くのも大変です。−NetBeans アプリケーションに限らず−ウェブアプリケーションをベースとした Java プラットフォームで一般的に実施されているアプローチが二つあります。

  • セキュリティを管理するコンテナ −セキュリティを管理するコンテナはウェブアプリケーション中の URL がマップされたセキュリティ制約を宣言する事が出来ます。そして、基本的に " この URL にアクセスするには、ログインし、この特殊な権限を所有しなければいけません。 " という事を表示してくれます。もし、ログインしていないユーザがそのリンクにアクセスしようとすると、リクエストされたページを表示する前にコンテナはそのユーザをまずログインさせます。サーブレット API をカバーしているどんなコンポーネントブックもこれがどうやってセットアップされるか、という情報を含んでおくべきだと思います。


  • サーブレットフィルタ −サーブレットフィルタは同じ機能をシミュレーションするのに使われます。しかし、このケースの場合は、コンテナの一部を含むアプリケーションの一部です。" セキュリティフィルタ "(SourceForge で使うことが出来ます。) と呼ばれるこの機能を果たすオープンソースパッケージがあります。セットアップ書類が含まれています。


これらのアプローチのアドバンテージは認証と権限のチェックが一カ所に集まっていて、特別なページ上で認証と権限を実行する事を忘れる可能性を防げる事です。 SecurityFilter API はセキュリティ管理コンテナの後でモデル化され、どちらのシステム上でも動くウェブページを簡単に設計できるようになりました。


( NetBeans でビルドされたものを含んでいる ) JavaServer Faces (JSF) テクノロジ に基づいたアプリケーションの急な動きはあなたが保護する必要のある /faces/* とか *.jsp ではなく、 *.faces のURL があるページを保護する必要があるということです。というのも、実際のリクエストは、いってみれば Admin.jsp ページが本当に(もし、プレフィックスマッピングが使われているなら) /faces/Admin.jsp 、 ( もし、拡張マッピングが使われているなら )

/Admin.faces に割り当てられているかということだからです。


getExternalContext().isUserInRole(String role) を現在ログオンしているユーザが指定された職務かどうかを判断するために使ってください。ユーザの職務に基づいたビジュアルコンポーネントを与えるかどうかを判断するためにページの中で使うことが出来ます。ユーザが"Administrator"か "User" もしくは "Manager" の役を割り当てられているかもしれないと考えてください。 Page1.jsp の出力テキストコンポーネントを表示するためには、もしユーザがマネジャだったら isUserInRole("Manager") を返すゲッターメソッドに返されたコンポーネントのプロパティをバインドする値をセットします。例えば、

1. Page1.java の終わりの下にあるゲッターメソッドをコピーしてページ bean のプロパティを定義する。

public boolean isManager() { 
 return getExternalContext().isUserInRole("Manager"); 
}


2. 返ってきたコンポーネントのプロパティを false ( プロパティウィンドウにチェックを入れない )にセットする。


3. Page1.jsp ソースを編集し、値を "false" から "#{Page1.manager}" に置き換えます、よってコードは以下のようになります。

<h:outputText 
 binding="#{Page1.outputText1}" id="outputText1" rendered="#{Page1.manager}" 
 style="left: 48px; top: 48px; position: absolute"/>

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo