問題タブ [container-managed]
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.
security - コンテナ管理のセキュリティを使用しているときに tomcat-user.xml から取得するのではなく、データベースからユーザー名、パスワード、およびロールを取得する方法
Tomcat にデプロイする Web アプリケーションがあります。URL パスAdministration/*の下にあるすべてのページを保護したいと考えています。
web.xml ファイルに次のスニペットを入力して、コンテナー管理のセキュリティを設定しました。
そして $CATALINA_HOME/conf/tomcat-users.xml に私は持っています
すべてが正常に機能しています。ログイン ボックスが表示され、自分自身を userA として認証できます。
ただし、Web アプリケーションを使用して新しいユーザーを直接保存したり、ユーザーのパスワードを変更したりできるようにしたいと考えています。
ユーザー、パスワード、およびロールを他の方法で取得するようにTomcatに指示することは可能ですか? たとえば、データベースからそれらを取得するクラス。
c++ - このコードを例外安全にするのを手伝ってください
だから私はこのライブラリコードを持っています、見てください...
そして私のクライアントコードでは...
私がこだわっているのは例外安全性です。現状では、Objコンストラクターのいずれかがスローされるか、Thingコンストラクターがスローされると、既にベクター内にあるObjsがリークします。ベクターは多態的に使用されているため、Objsへのポインターを含める必要があります。また、例外を処理する必要があります。これは、例外を認識しない古いコードベースから呼び出されているためです。
私が見ているように、私のオプションは次のとおりです。
- クライアントコードを巨大なtryブロックでラップし、catchブロックのベクトルをクリーンアップします。
- すべての割り当ての周りにtryブロックを配置し、そのcatchブロックは共通のクリーンアップ関数を呼び出します。
- 私がまだ考えていないいくつかの巧妙なRAIIベースのアイデア。
- パント。現実的には、コンストラクターがスローすると、とにかくアプリケーションが炎上しそうになりますが、これをより適切に処理したいと思います。
java - web.xml 以外のコンテナー管理セキュリティでセキュリティ制約を構成する別の方法はありますか?
Java EE 6 コンテナー管理セキュリティーを使用する場合、web.xml デプロイメント記述子内のリソースのセキュリティー制約を構成できます。これを行う別の方法はありますか?
たとえば、コンテナーは、ユーザー データの場合と同様に、それらをデータベースから取得できます。
このようなことは可能ですか?webapp を再デプロイする必要のない方法が欲しいです。
前もって感謝します。
java - コンテナ管理のトランザクションコミットからの例外をキャッチするにはどうすればよいですか?
コンテナ管理のトランザクションを使用するインターフェイスを備えた@Stateless
EJBがあります。つまり、メソッドが呼び出された後、システム例外がスローされない場合、トランザクションはコンテナによって自動的にコミットされます。@WebService
一意の制約がある列に同じ値を持つ2つのオブジェクトを試行するEntityManager.persist(...)
と、コンテナーはPersistenceException
コードの外部でコミット時にクライアントにをスローします。この例外をキャッチして、自分のアプリケーション例外を再スローできるようにするにはどうすればよいですか?
コミット時に例外をキャッチするには、メソッドでトランザクションを手動でコミットする必要がありますか?(そしてそれEntityManager.flush()
を行う正しい方法はありますか?)もしそうなら、コンテナー管理トランザクションを持つことのポイントは何ですか?
java - Weblogic 10.3: WLS コンソール内で web.xml と DB ロールを使用した Web アプリケーション セキュリティ
シナリオ
Weblogic Server 10.3.4 を使用して、アプリケーションを使用する前にユーザーにサインインを要求するためにセキュリティ制約が有効になっている webapp を実行しています。ユーザーとグループの情報はアプリケーション データベースに常駐し、認証は WLS (コンテナー) によって処理されます。
このブログ記事 で説明されているようにデータベース スキーマをセットアップし、WLS コンソールで新しいセキュリティ レルム「app.realm」をセットアップし、そのSQLAuthenticator
中に を定義しました。
WLS を再起動した後、WLS Web コンソールの「app.realm」のデータベースからユーザーとグループの定義を確認できます。認証しようとしているユーザーはグループのメンバーですWEBAPP_USER
(WLS コンソールのユーザーの詳細ページにグループ メンバーシップが表示されます)。
アプリケーションをデプロイし (標準設定を使用し、WLS Web コンソールで調整を行わない)、保護された URL を呼び出すと、login.html
期待どおりにフォームにリダイレクトされます。ただし、何を試しても、(正しい)パスワードを入力すると、常に認証に失敗し、login_error.html
ページに移動します。デバッグの目的で、 でプレーン テキストのパスワードを有効にしたSQLAuthenticator
ので、適切な資格情報を使用したことは間違いありません。
これらの 2 つのスレッドは既に見ましたが、どちらも私の問題を解決していないようです。
更新 1
emzy のコメントのおかげで、WLS がデフォルト レルム「myrealm」に対して資格情報をチェックし、組み込み LDAP に対してログイン ユーザー名を解決しようとしていることがわかりました。
更新 2
これらの手順を実行して、認証を機能させました。
SQLAuthenticator
WLS コンソールのデフォルト レルム「myrealm」に を追加します。- それぞれのプロバイダー設定でWeblogic
DefaultAuthenticator
と新しいSQLAuthenticator
の両方をSUFFICIENT
設定します(「JAAS制御フラグ」と呼ばれます) - WLS を再起動する
ただし、1 つの疑問が残ります。
質問
<domain>/server/AdminServer/logs
WLS には、何が起こったかを確認できるフォルダ内の標準のログ ファイル以外に、追加のログ記録がありますか?何が間違っているのですか / フォームベースの認証をアプリケーションで機能させるには、パズルのどの部分が欠けていますか?- my で "app.realm" を明示的に指定しているのに、WLS が認証に "myrealm" を使用するのはなぜ
web.xml
ですか?
ここに私の設定の詳細があります:
web.xml
weblogic.xml
login.html
transactions - EJBにCMTとBMTの疑問がありますか?
セッションBeanでCMTを使用する場合、トランザクションをどこでコミットしますか?
REQUIRES_NEW属性を使用すると、コンテナは新しいトランザクションを作成し、呼び出し元のトランザクションは一時停止されます。REQUIRES_NEWをよりよく理解するだけで、トランザクションを新しい接続に関連付けることで上記の動作を実現できますか。現在のトランザクションを完了すると、前の接続を想定しますか?新しいトランザクションでコミットが発生したのはいつですか?
誰かが私に、JDBCを使用したセッションBeanの簡単な簡単なCMTとBMTを教えてもらえますか。基本的に、CMTとBMTで接続、コミット、ロールバックを取得する方法を調べます
CMTでは、トランザクションマネージャーは現在のスレッドに関連付けられているトランザクションを完了します。ここでの私の質問は、トランザクションをどのようにコミットするかです。接続を使用してトランザクションをコミットすることは知っていますが、ここでは、new演算子を使用してメソッド内に接続を作成する例のように、現在のスレッドに関連付けられている接続をどのように知ることができますか。
java - 保護された URL が Web ページの保護されていないコンポーネントを認証されていないユーザーに漏らしている
<login-config>
+ <security-constraint>
+<security-role>
と の使用による JSF アプリケーションのセキュリティの実装<filter>
は、2 つの異なる方法だと思います!? 彼らは ?
上記の最初の方法 ( <login-config>
+ <security-constraint>
+を使用<security-role>
) でセキュリティの実装を試みましたが、保護された HTML コンポーネントと保護されていない HTML コンポーネントの両方を使用している保護された Web ページが、認証されていないユーザーにも保護されていないリソースとともに配信されることがわかりました。
保護された URL がその Web ページの一部を認証されていないユーザーに漏らさないように、URL を完全に保護する必要があります。どうすればいいですか?
また、セキュリティの実装は、セキュリティに対処するために自己管理された方法で使用<filter>
されていますか? web.xml
リクエストごとにフィルタリング/キャッチするので、セキュリティをよりきめ細かくカスタマイズできると思いますか?
hibernate - 明示的にsaveを呼び出さずにGlassfish/Hibernateで保存
私はGlassfish 2と、Hibernate 3.2を永続化プロバイダーとして使用するコンテナ管理の永続化を使用しています。ビジネス ロジックに finder メソッドがいくつかあります。これは、EntityManager
. 操作はString
プロパティを変更するだけです (コレクションから要素を削除すると、同じ効果が得られます)。saveやpersistの
ようなものは呼び出しません。変更されたエンティティをクライアントに返したいだけです。EntityManager
コンテナがトランザクションをコミットすると、エンティティへの変更が自動的に保存されるようです。これまでに完全に見逃した魔法の Hibernate または Glassfish の動作はありますか?
java - .NET 4.0 には、Java からのコンテナー管理トランザクションに似た機能がありますか?
確かに、トランザクション スコープはありますが、次のようなものもありますか。
http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Transaction3.html
java - Java Container Managed Security がログイン ページにリダイレクトされない
GlassFish 3 で構築している JSF 2 Web アプリケーションがあります。ログインを処理するためにコンテナー管理セキュリティを使用しています。Web アプリのすべてのページを安全にする必要があります。すべてのページは、ログイン ページとともにルート ディレクトリにあります。問題は、保護されたページに直接アクセスするために URL を入力すると、ユーザーがログインしていなくても表示されることです。ログイン ページを除くサイトのすべてのページを保護して、ユーザーがサイトにアクセスする必要があるようにしたいと考えています。このログインページから。ユーザーがログインしていないときに他のページへのリクエストをブロックしない理由はありますか?
私のweb.xmlからの関連するスニペットは次のとおりです。