問題タブ [jaspic]
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 - Glassfish でのサーバー認証モジュールの転送
Glassfish 用の独自のサーバー認証モジュール (SAM) を開発するためのこのガイドを見つけました: http://docs.oracle.com/cd/E18930_01/html/821-2418/gizel.html
一部の資格情報を確認するのは非常に簡単に思えますが (たとえば、HTTP Auth ヘッダーで)、私の質問は次のとおりです。
ユーザーがログインしていない場合に特定のページに転送できるように SAM を開発できますか?
ガイドの例は次のとおりです。
java - JASPIC JDBCレルム認証の「新しいユーザーを登録する」ソリューションは何ですか?
JavaEE 7 チュートリアルのパラグラフ50.3で説明されているように、(WildFly 8.2 を使用して) 独自の JDBC レルムを作成しました。私の理解では、JDBCレルム認証は、ユーザー資格情報がサーバーによって読み取られてチェックされることを意味し、アプリケーションは認証予約DBの座標さえ知りません。
「新しいユーザーのサインアップ」の場合、私が想像できる唯一のことは、アプリケーションの内部から古典的なソリューションを実装することです。認証DBにアクセスし、選択したユーザー名が既に存在するかどうかを確認し、テーブルに行を挿入します...しかしそうではありませんこれは「コンテナ管理認証」のパラダイム全体に違反しているのではなく、セキュリティ ホールを挿入する可能性があります。
私が無視するサーバー実装のメカニズムはありますか?
jakarta-ee - カスタム ServerAuthModule (loginModule)、パスワードをハッシュする場所は? ジャピック
ログインモジュールを実装して、Web アプリで「remember me」機能を実行し、パスワードを bcrypt でハッシュできるようにしようとしています。このチュートリアルを使用してクラスを構築しました。ただし、これを実装した後、接続できませんでした。現在、db のパスワードは SHA-256 経由でハッシュされており、それが理由であると思われます。
そして、私は次のようにログインします(カスタムログインモジュールを実装する前に機能しました):
また、私のページには、上部にユーザー名がない場合、ユーザーがnullの場合にのみ表示される登録ボタンとサインインボタンがありました。これを実装したので、ユーザーが「ANONYMOUS」として接続されているようです(したがって、ページの上部に「あなたはANONYMOUSとして接続されています」があります。これを防ぐために、一時的な修正を行いました:
私は試した :
しかし、ユーザーがいないので、npeを取得しています。これについてもどうすればよいかわかりません。
wildfly - WildFly でアプリケーション レベルの SAM をセットアップする方法
以前、Glassfish で動作するコードがいくつかありましたが、それを WildFly に移植したいと考えています。
ただし、モジュールを WildFly から呼び出すことはできないようです。はServletContextListener
、次のようにモジュールを初期化します
"HttpServlet"
Glassfish固有のものではなく、https://github.com/wildfly/wildfly/blob/master/undertow/src/main/java/org/wildfly/extension/undertow/security/jaspi/JASPIAuthenticationMechanism.javaで参照されているようです?ソース=cc
Glassfish は<logon-config>
ブロックを必要とせずweb.xml
、WildFly にバリアントを配置しても機能しません (予想どおり)。
私が疑っているもう 1 つの場所は、アプリケーション コンテキスト識別子の計算方法です。私が持っていたGlassfishの場合
WildFly では違うのでしょうか? https://github.com/rdebusscher/secSpikeWeb/blob/master/src/main/java/org/omnifaces/security/jaspic/core/Jaspic.java#L300でも同様のコードを見ましたが
私もstandalone.xml
このブロックに追加しようとしました
そしてセット<default-security-domain value="jaspi"/>
ただし、効果はなく、モジュールにブレークポイントを配置しても、ヒットすることは示されませんでした。
さらに、WildFly でのように次のことを行う方法を見つけることができませんでしたglassfish-web.xml
が、それは別の質問になる可能性があります
コードはかなり大きいですが、その要点は次の場所にあります。
https://github.com/trajano/openid-connect/tree/openid-connect-1.0.1/openid-connect-jaspic-module
と
https://github.com/trajano/openid-connect/tree/openid-connect-1.0.1/openid-connect-jaspic-sample
私はアプリケーションレベルでそれを探しており、グローバルサーバー JASPI を設定していないことに注意してください。
java - グラスフィッシュでサーバー認証モジュールの存在をプログラムで特定することは可能ですか?
Glassfish でサーバー認証モジュール (JSR196) を有効にしました。モジュールは期待どおりに機能しますが、サーブレット内の認証モジュールの存在をプログラムで判断する必要があります。
java を使用して認証モジュールの存在を確認する方法はありますか?