問題タブ [openid4java]
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 - OpenId プロバイダーがサポートする属性拡張を見つける方法は?
http://code.google.com/p/openid4java/wiki/SampleConsumerを見てきましたが、タイプ " fetch_request
" で動作するようにハードコードされています。どのタイプが必要かは重要ですか、それを伝える方法はありますか、それとも Fetch リクエストを使用することができますか。
java - OpenIDログイン認証実装(Java)をJBossと統合する方法
openid4javaライブラリを使用してOpenIDログイン認証に必要な操作を実行するサービスを1つ実装しました。
応募の流れは以下のように思われます
- ユーザーからOpenIDを取得するためのJSPページ
- JSPページのアクションサーブレット
- サーブレットフェッチopenidパラメータは、サービスと対話して、認証のためにユーザーを実際のOpenIDプロバイダーにリダイレクトするために必要な情報を取得します。
- OpenIDプロバイダーに提供されるreturnurlは、互いにサーブレットです。
- このサーブレットは、Open IDプロバイダーによって送信された応答から必要な情報を取得し、サービスと対話して、ユーザーがOpenIDプロバイダーによって認証されているかどうかを確認します。
- ユーザーが認証されると、サーブレットはユーザーをホームページにリダイレクトします。
私の実装アプローチを理解している場合は、次のクエリを楽しませてください。それ以外の場合は、理解できるようにさらに努力するために、私に知らせてください。
クエリJBoss5アプリケーションサーバーを使用しています。上記のコードでは、ユーザーが認証されているかどうかの情報を取得しているだけですが、ユーザーが制限されたリソースにアクセスできるようにする方法、つまりWebページの表示方法をjbossに通知する必要があります。
org.jboss.security.auth.spi.UsernamePasswordLoginModule
通常、データベースベースの認証(データベース認証情報を取得するためのサービスメソッドの呼び出し)を継承するカスタムログインモジュールクラスを使用します。しかし、この場合、サービス、ユーザー、OpenIDプロバイダー間の通信チャネルとして機能するサーブレットが必要です。サーブレットとログインモジュールの実装の両方をどのように統合する必要がありますか。
私が直面している可能性のあるもう1つの問題は、DiscoveryInformation
オブジェクトの保存と取得に2つの実装されたサーブレット間のセッションを使用していることです。ユーザーがログインしない限り、セッションにアクセスできないと思います。
私がフォローしている実装アプローチは、記事http://www.theserverside.com/news/1364125/Using-OpenIDに基づいています。
私を助けてくださいありがとう
java - Java サーブレットの動作に関する質問
私は現在、OpenID4Java ライブラリを使用して Java HttpServlets で OpenID Relying Party (RP) と ID プロバイダー (IdP) を実装しています。2 つのサーブレットが相互に通信する際に問題が発生しました。私が抱えている問題は、サーブレットの動作をさらに改善することだと思いますが、何が起こっているのかをよりよく理解するために、アプリケーションに関する情報を含めました。
シナリオは次のとおりです。
サーブレット #1 (私の RP) は、次のようにサーブレット #2 (私の IdP) にリクエストを送信します。
基本的に authReq = さまざまな OpenID 固有のパラメーターを含むメッセージ。getDestinationUrl(true) を呼び出すことで、リクエストを GET 経由で送信する URL にエンコードします。
サーブレット #2 は、doGet メソッドで上記の GET をキャッチします。情報を解析し、応答を作成して、次の方法でサーブレット #1 に送り返します。
文字列 responseText = processRequest(httpReq, httpResp);
私の問題は、この応答がサーブレット #1 に戻らないことです。サーバー #1 がサーブレット #2 から応答を受信すると、その doGet または doPost メソッドがメッセージをキャッチすることを期待します。ただし、どちらの場合も発生しません。
アドバイスをいただければ幸いです。
ありがとう!
java - Spring Security 3.0 OpenID4Javaを使用したGoogle AppsオープンIDサインイン
OpenID4Java ライブラリで Google Apps オープン ID を使用してサインインしようとしています。
コンシューマー クラスで次のコードを使用して、ユーザーのサービスを検出します。
次に、http 要求からパラメーターを取得し、openid.claimed_id プロパティで " http://domain.com/openid?id= ...." を受け取ります。応答を確認しようとするとconsumerManager.verify(receivingURL.toString(), openidResp, discovered);
、例外がスローされます。org.openid4java.discovery.yadis.YadisException: 0x706: GET failed on http://domain.com/openid?id=... : 404:Not Found
例外を回避するために、値「 http://domain.com/openid?id= ....」を「https://www.google.com/a/domain.com/ 」に変更してパラメーターリストを変更しようとしましたopenid?id= ...."
現在、メソッドconsumerManager.verify
は例外をスローしていませんが、そのステータスは失敗に変更されています。ログに次のエラーが表示されます
フォーラムで同様の問題を見ましたが、解決策はに変更consumerManager.verify
することでしたconsumerManager.verifyNonce
。この方法を使用してもセキュリティ上の問題が発生しないかどうかはわかりません。open id コンシューマを Google Apps openid で動作させるには、何を変更すればよいか分かりますか?
web-services - openid4java ConsumerManagerリクエスト/スレッドセーフ?
サーブレットでopenid4javaを使用しています。2つのサーブレットがあります。1つは最初のステップ(ユーザーをログイン/アプリケーションアクセスの受け入れにリダイレクト)を実行し、もう1つは結果の情報を処理します。
ドキュメントには、org.openid4java.consumer.ConsumerManagerクラスが両方のステップで同じインスタンスである必要があると書かれています。そのためのシングルトンを作成できますか?スレッドとリクエストは安全ですか?
返信ありがとうございます!
java - openid4javaのMaven「依存関係を解決できませんでした」
概要:
「mvnwar:war」
の実行は、「次のアーティファクトを解決できませんでした:org.openid4java:openid4java:jar:0.9.6」などのエラーで失敗します。
私はMavenの初心者であるという事実にチョークで書きますが、openid4javaのWebサイトに、openid4javaのMavenセントラルにjarファイルがないことを示す他の人が投稿していることがわかります。
詳細:
openid4javaの最新バージョン(0.9.6.662)に含まれているSimple-OpenIDサンプルアプリを実行して、openid4javaに慣れようとしています。
Readmeによると、「このデモをビルドするにはapacheMaven2が必要です」。Readmeには、「mvn war:warタスクはwarファイルをコピーしてデプロイできるwarファイルを作成する必要がある」とも記載されています。
これまで、AntとMavent Ant Tasksを使用してきましたが、今日は弾丸を噛んでMaven3.0.3をインストールすると思いました。インストール手順に従い、「mvn--version」を正常に実行できるようになりました
「mvnwar:war」を実行すると、実際に多くのファイルがローカルリポジトリにダウンロードされますが、最終的には次の抜粋メッセージでビルドが失敗します。
私はここで何か間違ったことをしていますか、それとも実際にMavenリポジトリからjarファイルが欠落していますか?
java - OpenId4Javaアプリエンジンのサンプルアプリを実行するにはどうすればよいですか?
OpenId4Javaのサンプルコードにはappengine-consumerが含まれています。ただし、サンプルを作成することはできますが、実行方法がわかりません。mvn jetty:runが失敗し、別の明らかな開始メカニズムがないようです。
maven gaeプラグインを使用して他のプロジェクトを開発しており、mvn gae:runまたはIntelliJAppEngineアプリケーション構成を使用してプロジェクトを開始します。
では、サンプルアプリを実行するにはどうすればよいですか?
session - openid4java APIを使用してログアウトするにはどうすればよいですか?
プロバイダーで検証/検証した後、プロバイダーアプリケーションからログアウトします(またはプロバイダーアプリケーションセッションを無効にします)。使用するopenid4javaAPIを教えてください。
注:InMemoryConsumerAssociationStore.remove(opURL、handle)は機能していません。
ありがとう!
oauth - openid4java を使用した YouTube の OpenID+OAuth
私のアプリケーションでは、ユーザーは Google または Yahoo から OpenID を使用してログインできます。ユーザーが YouTube にアップロードできる機能もあります。一部のユーザーは、何かを作成して YouTube にアップロードする目的で YouTube コンテキストを介してアクセスします。これらのユーザーは、OpenID を介して Google アカウントのアドレスと OAuth を介して YouTube アカウントの両方にアクセスするために、私のアプリケーションを承認する必要があります。これは、ユーザーの認証クリック 1 回で実現したいと考えています。
私はこれがここで行われているのを見てきました: http://www.youtube.com/create/Xtranormal . このアプリから Google OpenID エンドポイントに送信されるリクエストは次のとおりです。
アプリケーションでの他のすべての OpenID サポート (うまく機能します) は、OpenID4Java で記述されています。This answerのヒントを実装して同様のリクエストを作成しようとしましたが、私の人生では、Google ポップアップで YouTube を尋ねることができず、メール アドレスのみを尋ねられます。
このメッセージ拡張機能を追加して、回答からパラメーターを追加しています。
これにより、リクエストは次のようになります。
ここで何が欠けていますか?
java - 「loginwithgoogle」にopenid4javaを使用しているときに検証に失敗しました
spring-mvcアプリケーションで「loginwithgoogle」機能を実装するためにopenid4javaライブラリを使用しています。
ローカルのTomcatサーバーでは正常に動作しますが、リモートサーバーでは突然動作を停止しました。それ以前も問題なく動作していました。
catalina.outにログインした後、グーグルがリターンURLにリダイレクトした後、応答の検証が失敗することがわかりました
リモートサーバーでは、verifiedの値はnullです。ローカルサーバーでは、そのURI
応答を処理している間、ConsumerManagerは認証要求を行うために使用されるのと同じインスタンスである必要があることを認識しています。
残りのコードは次のように実装されます
OpenIdServiceが自動配線されているOpenIdControllerがあります。
OpenIdServiceImplはOpenIdServiceを実装し、consumerManagerインスタンスを返すgetConsumerManagerメソッドを備えています。
OpenIdServiceImplの構成では、ConsumerManagerのインスタンスが作成されます。
送信用のフォームを作成し、応答を処理するアクションは、OpenIdControllerに書き込まれ、getConsumerManagerメソッドを使用してconsumerManagerインスタンスにアクセスします。
編集:
フォームを送信する前にディスカバリー情報をログに記録してみましたが、ここにコールバックすると出力されます
私はここで何か間違ったことをしていますか?しかし、それはローカルサーバーで動作します!
または、リモートサーバーのTomcat構成と関係がありますか?
どんな助けでも大歓迎です。必要に応じてコードを投稿できます。
ありがとう。