JSF Web アプリケーションの認証と承認を実装するための最良の方法は何ですか? できれば、プリンシパルを必要とする EJB を呼び出す必要があるため、引き続きコンテナー ベースのセキュリティを使用したいと考えています。
フォームベースの認証が JSF との大きな闘いであることは理解していますが、おそらく PhaseListener などをプログラムによるログオンと一緒に使用して、ユーザーを認証することはできますか?
私がむしろ見なければならない他の方法はありますか?
JSF Web アプリケーションの認証と承認を実装するための最良の方法は何ですか? できれば、プリンシパルを必要とする EJB を呼び出す必要があるため、引き続きコンテナー ベースのセキュリティを使用したいと考えています。
フォームベースの認証が JSF との大きな闘いであることは理解していますが、おそらく PhaseListener などをプログラムによるログオンと一緒に使用して、ユーザーを認証することはできますか?
私がむしろ見なければならない他の方法はありますか?
SpringSecurityフレームワークを使用できます。手順はこちらhttp://ocpsoft.com/java/acegi-spring-security-jsf-login-page/を参照してください。
私は JSF Seam を使用しており、Seam の組み込みの認証と承認を使用してきましたが、非常に使いやすいことがわかりました。
認証の場合、1 つのメソッドを実装するだけで、public boolean login(String username, a String password) { ... }
ブール値が返されます。次に、ページを「ログインが必要」としてマークすると、seam が残りの処理を行います。
承認のために、Seam は@Restrict
コントローラーまたはサービス メソッドに配置できるアノテーションを提供し、残りは Seam が処理します。
高度な承認: 役割が動的なSeam を使用して、より高度な承認を処理することもできます。たとえば、掲示板では、@Restrict アノテーションを Java メソッドに委譲するだけで、いくつかの投稿の「作成者」でありながら、「読者」またはその他の投稿です。 .
Seam をご覧になることをお勧めします。Seam は JSF の上にあるレイヤーにすぎないため、技術的には JSF で実行しているにすぎません。何らかの理由で Seam を使用できない場合は、Seam が JSF で認可と認証を処理する方法からアイデアを借りることができます。
JSF 2.0 の質問に対するこの回答に示されているように、Servlet 3.0 HttpServletRequest API を使用できます。