2

2つの質問について、私はあなたに相談したいと思います。

背景:テスト、Java EEアプリケーションを作成し、宣言型セキュリティを追加しました。アプリケーションはGlassfish3.1にデプロイされます。単体テストでは、ローカルインターフェイスを持つすべてのBeanに組み込みコンテナを備えたJUnitを使用しました。アプリケーションのエントリポイントである、唯一のリモートインターフェイスを持つSessionFacde Beanについては、SessionFaceBeanへの参照を取得する単純なクライアントを作成しました。SessionFacadeBeanにのみ適用したセキュリティアノテーション。

(質問1:セキュリティ付きの推奨される単体テスト戦略は何ですか?sessionFacadeに単純なアプリケーションクライアントを使用しても大丈夫ですか?(セキュリティ注釈が適用されていないため、他の(ローカル)Beanは影響を受けません。))

質問2:アプリケーションクライアントからSessionFacdeにアクセスするにはどうすればよいですか?ここにapplication-client.xmlのコードサンプルをコピーして、JNDIサービスへの参照を取得していただければ幸いです。これは私に多くの時間を節約するでしょう。質問はJavaEE6アプリケーションクライアントログインの質問と似ていますが、実際には推奨されないという説明(http://docs.oracle.com/cd/E18930_01/html/821-2418/beacm.html )を見つけました。フレームワークではなく開発者にセキュリティの負担を戻すためです。以下のテキストを参照してください。

「[...]プログラムによるログインにより、アプリケーション開発者はGlassFishサーバーでサポートされる認証メカニズムをバイパスし、認証データをセキュリティサービスに直接フィードできます。柔軟性はありますが、セキュリティの問題をある程度理解していない限り、この機能を使用しないでください。

このメカニズムはコンテナ管理の認証プロセスとシーケンスをバイパスするため、アプリケーション開発者は、制限されたリソースやメソッドにアクセスする前に、認証が確立されていることを確認する際に細心の注意を払う必要があります。ログイン試行のステータスを確認し、それに応じてアプリケーションの動作を変更することも、アプリケーション開発者の責任です。

プログラムによるログイン状態は、必ずしもセッションで持続したり、シングルサインオンに参加したりする必要はありません。[...] "

これまでお読みいただきありがとうございます。よろしく、タマス

備考:元の投稿を書いてから返答がないので、2番目の質問に答えれば十分だと思います。それは私が続けるのを助けるでしょう。ありがとう、タマス

4

0 に答える 0