問題タブ [jaas]
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.
java - フォームベースのコンテナマネージドセキュリティでログインを再試行します
コンテナマネージドセキュリティを使用しているGlassFish3.0.1にデプロイされたWebアプリケーションがあります。これは、JDBCRealmに対してj_security_checkを使用する単純な標準形式ベースの実装です。アプリケーションのセキュリティ保護に関係することはすべて問題ありません(そして、過去に自分のセキュリティシステムを導入したことがあるとは信じられません)。
しかし、私が理解できないのは、ユーザーが間違ったパスワードを入力した場合の対処方法です。「loginFailed.xhtml」ページは正しく表示されますが、ユーザーをログインページに(リンク経由または自動的に)戻して再試行したいと思います。
これを試したところ、login.xhtmlページに戻るリンクは正常に機能しますが、セキュリティシステムは、ユーザーが認証された後、ユーザーを送信しようとしている場所を忘れているようです。ユーザーが正しく認証すると、システムが存在しないページ(ログインページのURLの一部のマングルバージョン)を読み込もうとするため、例外が発生します。
ユーザーをホームページに戻して、そこから再試行させることはできると思いますが、それほど多くの問題を抱えたアプリケーションは長い間見たことがありません。すべてのアイデアと助けを感謝して受け取った...
tomcat - java.lang.SecurityException:ログイン構成が見つかりません
こんにちは
私はBonita5.2とTomcat6.0.19を使用しています。アプリケーション(warファイルといくつかの構成ファイルとライブラリを提供します)をエクスポートし、tomcatにデプロイしました。アプリケーションを実行すると、ログインページの後にエラーが発生します
tomcatを開始する前に、次の内容のbatファイルを実行します。
このエラーは、jaas構成ファイルが見つからないためだと思います。しかし、私は私が言及した道について確信しています。
jaas用に構成するために私が欠けている他に何がありますか?
ありがとう
authentication - JAAS LoginModule login() および commit() は成功したが、ユーザーがログインしていない
カスタム認証を実行する LoginModule を実装し、LoginContext クラスの login() メソッドを使用して認証を呼び出します。ログイン モジュールの login() メソッドと commit() メソッドは正常に呼び出されますが、Web アプリを使用する代わりに、すぐにログイン ページに戻されます。request.getUserPrincipal() は、request.getRemoteUser() と同様に null です。
どんなアイデアでも大歓迎です。ありがとう!
追加情報
loginContext.login()
また、フロントエンドで呼び出した直後に、呼び出しloginContext.getSubject().getPrincipals()
によって、ログインしたばかりのユーザーのプリンシパルとロールの適切なリストが表示されます。
サーバーとして Tomcat 6.0.29 を使用しています。
java - Kerberos を使用して資格情報を暗号化する / プリンシパルの静的シークレットとは
Java で記述されたアプリケーションは、ユーザーごとに外部サービスへのパスワードを保存する必要があります。アプリケーション内では、ユーザー自体が Kerberos を使用して KDC に対して認証します (基本的に Jaas を使用して LoginContext を作成します)。
アプリケーションの場所にあるある種のファイル (XML?) に、暗号化されたシークレットを他のサービスに保存したいと考えています。シークレットは、Kerberos が有効でないデータベース (MySQL...) へのログイン/パスワードの組み合わせである可能性があります。私が提案するものよりも優れたアプローチはありますか?おそらく情報を保存するためのより良い場所ですか?
LoginContext からの既存の情報の一部を使用して、同じサブジェクト (個人またはサービス) のみが情報を復号化できるようにデータを暗号化することは可能ですか?
アップデート:
質問を少し言い換えたいと思います。基本的に私が必要としているのは、認証されたユーザーだけが受け取ることができるある種の秘密です。このようなものはありますか?
それ以外の場合は、サブジェクト名のある種の塩漬けハッシュをシークレットとして使用するでしょう。これは推測できることはわかっていますが、提案されているように、ソリューションに追加のセキュリティを提供します。.
java - jboss ldap 認証に半径を追加するには?
これはロングショットですが、試してみる価値があると思いました。
jboss で実行され、ldap を使用して認証する Java サーブレットを設計しました (編集: JAAS 経由)。ここで、顧客は、ワンタイム生成パスワードを使用する一部のユーザーに対して、radius 認証に変更したいと考えています。ただし、ログイン フィールドは 2 つしかありません。ユーザー名とパスワード。まだ LDAP からのユーザー情報が必要なので、セキュリティを犠牲にすることなくこれは可能ですか? ユーザー コンテキストを取得するには、LDAP で認証する必要があります。しかし、パスワードを取得していないので、方法がわかりません。一部のユーザーの LDAP 連絡先を半径にすることはできますか? たぶん、ノーと言って、3 つのフィールドと、ldap にログインした後に半径に対する追加のチェックを受け入れるようにする必要があります。
security - Tomcat マネージャーが LoginModule を使用するのはなぜですか?
Tomcat 6.0.29 を実行しており、独自のレルムとログイン モジュールを作成しました。これらは server.xml で次のように定義されています。
<Realm className="mycompany.tomcat.MyRepositoryRealm"
appName="My_Realm"
userClassNames="mycompany.tomcat.IdentityPrincipal"
roleClassNames="mycompany.tomcat.RolePrincipal"
useContextClassLoader="true"/>
これらのクラスを含むライブラリを tomcat/lib フォルダーに追加しました。それ以外は、Tomcat をデフォルト構成から変更していません。
で Tomcat マネージャ アプリケーションを起動しようとするhttp://localhost:9080/manager/html
と、ログインできず、Tomcat ログにログイン モジュールのエラーとスタック トレースが表示されます。
何か案は?ありがとう!
編集:
リクエストごとに、これがスタックトレースです。私のレルムは JBoss サービスに接続するため、NamingContextFactory エラーが発生します。
javax.security.auth.login.LoginException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory
at mycompany.tomcat.MyRepositoryLoginModule.login(MyRepositoryLoginModule.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
at org.apache.catalina.realm.JAASRealm.authenticate(JAASRealm.java:410)
at org.apache.catalina.realm.JAASRealm.authenticate(JAASRealm.java:335)
at mycompany.tomcat.MyRepositoryRealm.authenticate(MyRepositoryRealm.java:34)
at org.apache.catalina.authenticator.BasicAuthenticator.authenticate(BasicAuthenticator.java:181)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:528)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
java - JAX-WS と SAAJ スタイル、どちらを使用するか
Service クラスと Dispatch クラスを使用して Java コードから Web サービスを呼び出すことと、SOAPConnection クラスを使用することの違いは、哲学的かどうかにかかわらず何ですか?
たとえば、次のようなものです。
対これらの線に沿った何か?
これらの違いは何ですか? また、一方のアプローチを選択する理由は何ですか?
tomcat - Tomcat/JAAS - データソースの検索
新しく作成された JAAS モジュールがあり、DataSource オブジェクトのデータベース接続設定をどこに置くべきか疑問に思っていました。
通常、Tomcat Web アプリケーションでは、これは「web.xml」ファイル内で参照され、「$catalina_home/conf/Catalina/localhost」にある XML ファイルを指します。
(Tomcat にデプロイされた) JAAS モジュールの同様の構成をどこに配置できますか?
ありがとう。
java - Tomcat セキュリティ ロールのマッピング
これは、JAASRealm とセキュリティ用のカスタム JAAS モジュールを備えた Tomcat 6 に関連しています。
他のアプリケーション サーバーは、Java EE 5 チュートリアルで説明されているように、サーバー固有の展開記述子を使用して、アプリケーション ロール名 (web.xml 内) を基礎となるセキュリティ レルムの実際のグループにマッピングすることをサポートしているようです。
Tomcat には同様のメカニズムがありますか?
編集:このスレッドは同じ要件について話しているようですが、残念ながら決定的な答えはありません。
この同じ問題に対処するために、JBoss Web (ボンネットの下に tomcat を含む)の機能強化が要求されました。
java - Java JEE5 アプリ。Windows 認証を使用し、ユーザー名とパスワードを要求しないクライアント
グラスフィッシュ上で動作する Web モジュールとアプリクライアントで構成される Java JEE5 エンタープライズ アプリケーションがあります。
Active Directory に対する認証を設定する必要があります。Web モジュールまたはアプリケーション クライアント モジュールに LDAP ベースの認証を設定するのは簡単ですが、アプリケーション クライアントを起動するときに Windows ログオンから資格情報を取得するように求められており、何らかの形で資格情報が ejb に伝播されることは承知しています。いつものティア。これには、ユーザー プリンシパルだけでなく、ロールも含まれます。
簡単に言えば、私の質問は次のとおりです。JAAS は、ユーザーにユーザー名とパスワードの入力を求めることなく、デスクトップ クライアントの Windows 認証メカニズムにプラグインできますか?
ありがとう、パブロ。