問題タブ [jdbcrealm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
768 参照

java - ダイジェスト認証を使用した Glassfish JDBC レルム

私は Java REST プロジェクトに取り組んでおり、現在、基本認証で JDBC レルムを使用しています。パスワードの SHA-256 ハッシュを保存していますが、基本認証は正常に機能します。ダイジェスト認証に切り替えるには、レルムの JAAS コンテキストを jdbcRealm から jdbcDigestRealm に変更し、web.xml で auth-method を DIGEST に設定しました。

これにより、何らかの理由で、ハッシュ自体を提供した場合にのみ認証が成功します。ダイジェスト認証に設定すると、基本認証の場合のように、Glassfish は提供されたパスワード文字列を自動的にハッシュしてからチェックしないようです。

これが私のレルム構成です:

  • JAAS コンテキスト: jdbcDigestRealm
  • JNDI: jdbc/レストショップ
  • ユーザー テーブル: ユーザー
  • ユーザー名列: ユーザー名
  • パスワード欄:パスワード
  • グループ テーブル: user_role
  • グループ名列: role_name
  • ダイジェスト アルゴリズム: SHA-256
  • エンコーディング: 16 進数

レルム構成にはパスワード暗号化アルゴリズム フィールドもありますが、その目的がわかりません。

他の情報が必要な場合は、私が提供します。ありがとう。

0 投票する
1 に答える
1515 参照

login - コンテナの再起動後、すべての Glassfish ログイン モジュールが機能しなくなりました

これは、私が抱えていた別のログイン モジュールの問題の拡張版です。新しいスレッドを開始するきっかけとなった、さらに重要な詳細をいくつか診断しました。Glassfish の再起動後、すべてのログイン モジュールが動作を停止することが発生します。さらに面白いことに、Glassfish はモジュールが正しくロードされたことを報告します。

しかし、基本認証中は安全なレルムを使用できません。カスタム jdbcRealm と事前構成された fileRealm の両方を新しいユーザーで試しました。最終的には次のようになります。

この

さらに、「許可されていない間違ったログインまたはパスワード」とserver.logを受け取ったため、より洗練されたasadminコマンドを使用することさえできません

LoginContextの実装を確認したところ、そのようです

常に間違った方向に進み、null が返されます。

手動で構成ファイルを操作しません。LoginModules をブロックするような方法でそれらを壊すことはできますか?

上記の ConfigurationEntry によって読み取られる構成ファイルはどれですか?

この不幸な再起動の問題が発生する前に、MySQL データベースが発生しました。データベースが許可するよりも、Glassfish 接続プールで利用可能なものが多くありました。データベースからの接続を強制終了した後、適切な接続番号に変更してコンテナを再起動すると、すべてが崩壊しました。

login.conf はドメイン dir に存在し、問題ないように見えます。

助けを求めて

0 投票する
1 に答える
9695 参照

mysql - Apache Tomcat 7 で JDBCRealm を設定するには?

ユーザー (サイトへのログオンが許可されている) が MySQL データベースから読み込まれるようにしたいと考えています。そのために、Apache Tomcat 7 アプリケーション サーバー用に JDBCRealm をセットアップします。

ドキュメントを読み、JNDI リソース (jdbc/foo4) を使用してデータベース接続を作成しました。このリソースは機能します (アプリケーションで既に使用してデータを取得しています)。機能していないように見えるのは、レルムとこのリソースのリンクです。

私の構成ファイルは次のようになります。

src\main\webapp\META-INF\context.xml

私の標準配備記述子では、次のように入力しました。

src\main\webapp\WEB-INF\web.xml

そして、この SQL スクリプトを使用してサンプル ユーザーを作成しました。

セキュリティ.sql

create table users ( user_name varchar(15) not null 主キー、 user_pass varchar(15) not null );

create table user_roles ( user_name varchar(15) not null,
role_name varchar(15) not null, primary key (user_name, role_name) );

INSERT INTO users(user_name,user_pass)VALUES('benny','test'); INSERT INTO user_roles(user_name,role_name)VALUES('benny','admin');

しかし、ユーザー「benny」とパスワード「test」でログインできません。ユーザー「tomcat」とパスワード「tomcat」でログインできますが (%CATALINA_HOME%\conf\tomcat-users.xml で定義されているため)、MySQL データベースから自分のユーザーでログインできません。

もちろん、Tomcat サーバーは MySQL ドライバーを使用しています ("mysql-connector-java-5.1.9.jar" を %CATALINA_HOME%\lib に配置しました)。

ログインしようとすると、次のエラー メッセージが表示されます。

誰かがエラーを見ますか?

0 投票する
1 に答える
197 参照

tomcat - 各グループで異なるロールを持つユーザーに JDBCRealm を実装するにはどうすればよいですか?

ログイン認証に JDBCRealm を使用したいのですが、user_role テーブルの代わりに、ユーザーとそのグループ内の役割を含むグループ テーブルへのポインタを持つグループ テーブルがあります。この場合、JDBCRealm をどのように実装すればよいですか?

ありがとうございました

0 投票する
0 に答える
306 参照

security - EJB コンテナ内の Java EE セキュリティ ロールと、それらが Web コンテナからどのように伝播または関連するか

先日、作業中のアプリでテストを行いました。セキュリティが Web 層から Java EE コンテナーにどのように伝播するかを確認したかったのです。これを行うために、バッキング Bean と EJB ステートレス Bean という簡単なページをいくつか作成しました。ログインして、Web 層と EJB コンテナーでのプリンシパルとロールを確認できるようにセットアップしました。

EJB コンテキストへの呼び出しは、Faces コンテキストを介した呼び出しと同じプリンシパルを持っていることを示しています。しかし、Web 層のレポート (getRole) は、データベースに設定されたグループに含まれていることを期待どおりに確認しましたが、EJB 側への呼び出しは失敗し、例外が発生しました。基本的に、そのコンテキストでの構成について尋ねたように、グループがないことを見つけることができると言っていました。実際、私は EJB 側でセキュリティー構成を行っていません。

ここで何かが欠けているようです。役割/グループに関して双方が同期していることを確認するには何が必要ですか? JDBCレルムを介してユーザーをグループにマップするようにWeb側を構成しました(これは標準構成オプションであるカスタムではありません)。

私はGlassfish 3.1.1を使用しており、カスタマイズされたJDBCレルムを作成して、グループをユーザーに一致させるために、よりクリーンな方法(つまり、間にルックアップテーブルを使用)であることに注意してください。FWIW、私は長い間ソフトウェアに携わってきましたが、フルスタックの Java EE に慣れてきたばかりです (約 1 年)。

0 投票する
2 に答える
4620 参照

java - Tomcat で複数のレルムを設定するのに助けが必要

Tomcat で 2 つのレルムをセットアップしようとしていますが、何らかの理由でそれができません。管理作業 (Web アプリケーションのデプロイなど) には標準の UserDatabaseRealm (conf/tomcat-users.xml) を使用したいのですが、特定の Web アプリケーションの認証にはカスタム領域が必要です。

だから、私はこれを私のwebappのコンテキストに入れてみました:

これは実際には server.xml にあるもののコピーにすぎず、いくつかの変更が加えられています。

  • 名前は、UserDatabase から CustomDatabase に変更されます。

  • パス名は絶対パス名です (メイン レルムにも同じものを使用します)。

私はいつもこの同じエラーを受け取ります:

そして、私はそれが私に何を言っているのかわからない。それはどのコンポーネントについて話しているのですか?

上記のコンテキストに加えて、他にもいくつか試しましたが、常に同じエラーが発生します。

  • Resource を GlobalNamingResources タグでラップしてみましたが、同じエラーがあるかどうかはわかりません。

  • Resource の auth 属性を Container と Application の両方に変更しようとしましたが、同じエラーが発生しました。

私は何が欠けていますか?Google からのすべてのヘルプは、ほとんどの人がメインのレルム (私の場合は問題ありません) を台無しにしており、2 番目のレルムを構成しようとはしていません。

0 投票する
1 に答える
912 参照

java - カスタム Tomcat レルムのデバッグ

Maven と Eclipse Juno を使用して、Tomcat 7 のカスタム領域を開発しています。

これは、 Implement a Tomcat Realm with LDAP authentication and JDBC authorizationで説明されているソリューションによく似ています。

  • インターフェースがわずかに変更されたため、適応された hasRole メソッド (最初のパラメーターとしての追加のラッパー) ;
  • いくつかの社内固有のもの。

このレルムをEclipseでデバッグしようとすると、次の例外が発生し続けます:

私が見る限り、このクラスは $TOMCAT_ROOT/lib/tomcat-coyote.jar にあります:

このプロジェクトは非常に単純で、maven で構築された jar が次のように構成されています。

結果の jar は $TOMCAT_ROOT/lib に配置されます。

何か案が ?

補足 : この問題は LDAP 接続でのみ発生します。非 SSL LDAP 接続では、すべて問題ありません。

次のようなコードを使用して、オーバーロードされた「オープン」メソッドのパラメーターを手動で設定した場合でも、次のようになります。

}

... InitialDirContext コンストラクターで奇妙な例外が発生します。

更新: javax.net.ssl.trustStore プロパティを、jar に含まれるファイルではなくローカル ファイルに設定すると、機能します。

そう :

動作します。理由はありますか?

0 投票する
0 に答える
238 参照

tomcat - Tomcat 7 レルムの構成でのエラー

こんにちは、誰でもそれを手伝ってもらえますか、私は一晩中過ごしましたが、それを機能させることができませんでした:(これは私のweb.xmlにあります

wearg のユーザー名またはパスワードを入力すると、間違った User.jsp (データベースに接続する必要があります) につながりますが、正しいユーザー名とパスワードを入力すると、次のように表示されます。は構文的に正しくありません (フォーム ログイン ページへの無効な直接参照)。

誰がそれの何が問題なのか考えていますか? 前もって感謝します

0 投票する
1 に答える
327 参照

web-services - Glassfish は引き続きデフォルト レルムを使用します

戦争にバンドルされた安全な Web サービス (ssl 経由のメッセージ認証) があり、jdbcRealm を使用してユーザーを認証しようとしています。jdbcRealm は他の ear アプリでは正常に機能しますが、この .war では機能しません

web.xml:

コンソールでこれを取得します:

これを修正するには?ありがとう。ps:Glassfish 3.1.2.2 b5 と jdk6 を使用しています。

0 投票する
1 に答える
5794 参照

tomcat - Tomcat JDBC と DataSource レルム

web.xml に次のものがあるwebappの場合testapp(とりわけ)

次の 2 つの Tomcat レルム構成を検討してください。

構成 1 - JDBC レルム:

.../webapps/testapp/META-INF/context.xml

構成 2 - データソース レルム:

.../webapps/testapp/META-INF/context.xml

そしてで.../conf/context.xml

はっきりしない理由により、構成 1 は機能しますが、構成 2 は機能しません。構成 2 の Context.xml リソースを使用して、あらゆる場所でコード内の MySQL に接続していることに注意してください。これはうまく機能します。ただし、Tomcat レルムがそれを使用しようとすると、構成 1 と同じことを行っているように見えても、認証は常に失敗します。

これがなぜなのか、誰にも洞察がありますか?