1

この質問は無数の答えに開かれているため、良い質問ではないことはわかっていますが、ここにあります:

私は Java EE 6 (JBoss AS 7 上) が初めてで、Tomcat + 春の世界から来ています。私の最初の実際の Web アプリケーションは、jsf jpa hibernate と ejb を使用した単純な crud のようなものです。ここで、最も単純なログイン フォームで URL (/admin/*) を保護する必要があります。「ユーザー」(ユーザー名、パスワード、role_id、その他のデータ) と「ロール」(コード、名前、その他) という名前の 2 つのテーブル (休止状態のエンティティ) が既にあります。ログイン関連の問題を管理するセッション スコープの独自の LoginController を作成できますが、「これは /admin パス専用です!」と言う方法がわかりません。それで.... web.xml の構成について読み始めました: セキュリティ制約、jdbc レルムなど。しかし、申し訳ありませんが、私はまだ十分な知識を得ることができません。私はチュートリアルや実践学習にはまっています。

簡単なログイン フォームでサンプル プロジェクトを見つけるのを手伝ってもらえますか? または、ログインフォームをデータベーステーブルにバインドする方法について、少なくともいくつかのチュートリアルまたはいくつかのアドバイスはありますか? 500 ページの正確なドキュメントは必要ありません。「標準」認証を機能させようとしているだけです。

4

1 に答える 1

1

Ok。まず第一に、認証メカニズムはJavaEE標準では提供されていません。仕様の一部は、役割ベースの認証のみです。したがって、すべてのアプリケーションサーバーにはカスタム認証メカニズムが必要です。これにより、データベースやLDAPなどを使用してユーザーの資格情報を保存できます。

JBossの場合は次のようになります。

(1) web.xmlでセキュリティ制約を定義する必要があります(これを行う方法については、たくさんのチュートリアルがあります)。ログインが必要なURLを示します。ブラウザのポップアップウィンドウまたはカスタムフォームを使用して、ユーザーがログインする方法を選択するには、login-config要素を定義する必要があります。

(2) JBoss側でconfiguration/standalone.xmlのsecurity-domainを定義する必要があります。たとえば、この例を参照してください。

(3)(1)と(2)に参加する必要があります。これは、アプリケーションのWEB-INFを含むjboss-web.xmlファイルで実行されます。多かれ少なかれ見えます

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
          <security-domain>NAME-OF-DOMAIN-DEFINED-IN-STEP-2</security-domain>
          <context-root>ROOT-OF-YOUR-APP</context-root>
</jboss-web>

JBoss 7の場合はどうなるかわかりませんが、以前のバージョンではjava:/jaas/プレフィックスを追加する必要があったため、セキュリティドメインのコンテンツはになりますjava:/jaas/NAME-OF-DOMAIN-DEFINED-IN-STEP-2

さらに、Spring Frameworkを知っている場合は、JavaEEメカニズムをバイパスしてSpringSecurityの使用を検討できます。

于 2012-05-10T07:21:55.707 に答える