問題タブ [spring-security-oauth2]
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 - Spring Security OAuth Maven ビルドに失敗しました
私は自分を削除し、 https://github.com/spring-projects/spring-security-oauth~/.m2/repository
から複製されたmvn clean install -P bootstrap
on commit #371aad08ac93efa2
(master)を実行しました。javadoc "フェーズ" を渡すことができず、スローされました。Linux と Windows で JDK 1.7.0_65 を使用しました。以前の古いプロジェクトをコンパイルできました。~/.m2/repository
ここで何が欠けていますか?ありがとう
java - XML 構成なしで Spring Security Oauth を実装する
OAuth 2.0 認証と承認を使用して、Spring Security で保護された基本的な REST サービスを構築しようとしています。
関連する要素を制限しようとしているので、Spring Beans、Spring MVC などに依存する Spring Security Oath XML 構成をコピーして貼り付けるのではなく、Spring Security Oauth クラスを直接使用しています。
/oauth/token からアクセス トークンを取得しようとしたときに問題が発生しました。おそらく何か基本的なことが欠けていますが、Spring Security と Spring Security Oauth の両方を理解するのは難しく、追加のフレームワークを使用する必要のない単一の例やチュートリアルを見つけることができないようです。
誰かが私が間違っているところを見ることができますか?
RestService.java
OAuthServices.java
SecurityConfig.java
web.xml
spring - Spring では少なくとも 1 つのマッピングが必要です
ここに問題があります。サードパーティの OAuth2 で承認されるまで URI を保護したいと考えています。http://docs.spring.io/spring-security/oauth/apidocs/org/springframework/security/oauth2/config/annotation/web/configuration/EnableOAuth2Client.htmlに基づいて、私はこれらを持っています:
と
そして最後に
しかし、これは次のようになります。
java.lang.IllegalStateException: 少なくとも 1 つのマッピングが必要です (つまり、authorizeRequests().anyRequest.authenticated())
私は HttpSecurity ビルダーのかなりの数の組み合わせを試しましたが、役に立ちませんでした。それとも、このアプローチは完全にベースから外れていますか?
spring-security - リダイレクト ループの Spring Security OAuth2 (google) Web アプリ
Spring MVC アプリケーションを構築しようとしており、Spring Security OAuth2 で保護しており、プロバイダーは Google です。セキュリティなしでフォーム ログインを使用して Web アプリを動作させることができました。ただし、Google で OAuth を機能させることができません。コールバックなどをSpring Security以外のアプリで動作させることができるので、Googleアプリのセットアップは問題ありません。
私のセキュリティ設定は次のとおりです。
OAuth2 で保護されたリソースは次のとおりです。
OAuth2 認証を取得するためにリダイレクト例外をスローするように作成したカスタム認証フィルターは次のとおりです。
Spring Web アプリからのフィルター チェーン シーケンスは次のとおりです。
Google へのリダイレクトは正常に機能し、フィルターへのコールバックが取得され、認証が成功します。ただし、その後、リクエストの結果はリダイレクトになり、フィルターが再度呼び出されます (リクエストは同じです。hasCode を確認しました)。2 番目の呼び出しでの認証SecurityContext
はnull
. 最初の認証呼び出しの一部として、Authentication オブジェクトがセキュリティ コンテキストに取り込まれたのに、なぜ消えてしまうのでしょうか? 私は初めてSpring Securityを使用しているので、初心者の間違いを犯した可能性があります。
spring - パスワードがチェックバックされているときに Bcrypt ハッシュを機能させることはできません
私は Bcrypt を使用してパスワードをハッシュし、Spring のドキュメントに従って Random を使用しています。Spring Security 3.2.5.RELEASE を使用しています。
次の OAuth2 セキュリティ構成があります。
問題は:
実行すると、org.springframework.security.authentication.dao.DaoAuthenticationProvider とメソッドに移動します。
additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken authentication) は、ソルトが空であるため失敗します。
ランダムソルトが必要です。これは、パスワードを作成してデータベースに保存する方法です。データベースから取得したパスワードを確認しましたが、正しいものです。
どこ:
パスワードはハッシュ化され、適切に生成されます。データベースに適切に保存され、適切に取得されます。ただし、チェックされると、提示されたパスワードはハッシュされないため、比較は失敗します。
まず、ソルト Bean が定義されていないため、this.saltSource は null です。これはランダムで、塩は古い方法だと思いました。
さて、デバッガを見ると:
presentPassword はハッシュ化されておらず、salt は空です。したがって、 (!passwordEncoder.isPasswordValid(userDetails.getPassword(), presentedPassword, salt)) テストがチェックされ、失敗します。
ランダムソルトを使用している場合、これを機能させるにはどうすればよいですか? 私は何が欠けていますか?
spring-security - 2 つの異なる承認および認証マネージャーを持つメソッド レベルのセキュリティを有効にする方法は?
アプリケーションにユーザーベースのセキュリティがあり、接頭辞 /app を持つすべてのリクエストを処理します。
ここで、/rs で始まるアプリケーションにいくつかの RESTFul サービスを作成し、Spring セキュリティ Oauth2 を使用してそれらのリソースを保護しました。
xml 構成を使用してこれらのリソースを正常に保護しました。ただし、メソッド レベルのセキュリティも有効にしたいと考えています。
私が読んだように、アプリケーションにはタグを 1 つだけ持つ必要があります。また、メソッド レベルのセキュリティは、認証マネージャーと承認マネージャーに依存します。認証マネージャーと承認マネージャーは両方とも、http プレフィックスに基づいて異なります。この場合、メソッド レベルのセキュリティを有効にする方法を教えてください。xml ベースのセキュリティ構成を使用しています。提案してください。
spring-security - 春のセキュリティとパターン属性
Spring Security OAuth2 サンプルでこれが定義されているのを見たことがありますspring-servlet.xml
。
タグのpattern
属性は有効ですか? http
でその定義を見つけることができませんでしたspring-security-2.0.1.xsd
。有効な場合、このパターンとintercept-url
のpattern
属性との関係は? たとえば、インターセプト パス/photos/user/**
の最終一致インターセプト パスは/users/photos/user/**
ですか? ありがとう。
java - Spring 4.0 Oauth 2 が機能しない
spring サーブレットのファイル構成については、以下を参照してください。以前は機能していましたが、依存関係を Spring コア 4.0 および Spring sec oauth 2.0 にアップグレードした後、機能しなくなりました。つまり、トークンを取得できません。以下のエラー メッセージと問題を参照してください。
次の URL を使用してトークンを取得しようとすると、406 エラーが発生します。
URL: /oauth2/oauth/トークン
「エラー」: この要求によって識別されるリソースは、要求の「受け入れ」ヘッダーに従って受け入れられない特性を持つ応答を生成することしかできません。
Spring 4.0 および Spring security 3.2 または Spring security oauth 2.0.0 で新しい構成が欠落していますか?
詳細は次のとおりです。
これは REST ベースの API であり、クライアントはありません。私はこれをChromeブラウザのPostmanでテストしていました。明示的に、受け入れヘッダーで何も送信しませんでした。Spring oauth2 の古いバージョンでは、accept ヘッダーの application/json で動作します。
以下の依存関係バージョンでは、この応答が返され、正常に動作します。しかし、新しい依存バージョンにアップグレードするとすぐに失敗し、406 が表示されます。
{ "access_token": "f9287b1d-243b-453d-9d3e-f5ed67e974f6", "token_type": "bearer", "refresh_token": "c6a45534-7c20-4dda-b6f1-9a231cb649ed", "expires_in": 299999, "スコープ" : "読み書き" }
次の依存関係を使用して動作するようになりました。:
最初のものは、InMemoryTokenStore を使用して実装されました。しかし、今は JDBCTokenStore を使用したいと考えています。Spring oauth2 2.0 にはより優れた機能があることを読んだので、依存関係の変更を開始しました。それに伴い、2.0 で変更されたため、コード内のいくつかのパッケージ参照を変更する必要がありました。
Spring サーブレット コンテキスト ファイルは次のとおりです。
両方の実装の curl 応答は次のとおりです。
これは、Spring 4 および Spring oauth 2.0.3 の新しい実装です。
curl -v -X POST -d "username=user1&password=user1&client_id=client1&client_secret=client1&grant_type=password" -H "Accept:application/json" [url1]
次のエラーで失敗します。
これは、Spring 3 および Spring oauth 1.0 の古い実装であり、適切な応答が返されます。
curl -v -X POST -d "username=user1&password=user1&client_id=client1&client_secret=client1&grant_type=password" -H "Accept:application/json" [url2]