問題タブ [spring-session]
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.
spring - redis を使用した Spring セッション - 統合テストでモックする方法は?
だから、私は私のプロジェクトで春のセッションを使用しています。それを使用してプロジェクトで統合テストを作成する方法は? 春のセッションの内部で何かをモックする必要がありますか? または、組み込みの redis を使用する合理的な方法はありますか?
過去に @EnableEmbeddedRedis アノテーションがあったのを見ましたが、削除されたようです: https://github.com/spring-projects/spring-session/issues/248
//編集
私はMockHttpSessionをに渡そうとしました
とにかくSpringはredisに接続しようとして失敗します。
spring - 春のセッション (redis) の Cookie 名を変更するには?
同じドメインの背後に 2 つのプロジェクト (それらの前に zuul プロキシ) があり、どちらもセッションが redis に保持された spring session プロジェクトを使用しています。
これらの 2 つのセッションは異なるはずですが、「SESSION」という名前の Cookie で互いの ID を上書きしているようです。その名前を変更するには?構成を通じてそれを行う簡単な方法はありますか?
spring - spring-boot 1.3.0.RC1 : Redis に永続化されたセッションから oauth2 ユーザー情報を取得する際の ClassCastException
OAuth2 シングル サインオンを備えたスプリング ブート アプリケーションを使用しています (開発中ですが、既に動作しています)。
セッションストアを Tomcat から Redis に変更しました。
問題
ClassCastException
から User オブジェクトを取得しようとしたときに取得しましたSecurityContextHolder
。
User オブジェクトの保存先UsernamePasswordAuthenticationToken
認証後のセッション
User オブジェクトの取得 (認証後)
オブジェクトをデバッグし、MyUser オブジェクトがあるuserAuthentication
ことを確認します。userAuthentication.details
UserEntityClassCastException
をUserEntityにキャストすると発生しますが、なぜですか?
プリンシパル (=UserEntity.id) を正しく取得できます。
誰にも解決策はありますか?
以下は現在の構成の一部です。
依存関係
Redis 構成
OAuth2 SSO 構成
同様の問題
上記の回答のように (RedisConfig.java で) フィルターの順序を変更しましたが、機能しません。
私の現在のフィルターの順序は以下です。
コードを更新する
ClassCastException の原因は ClassLoader の不一致です。
org.springframework.boot.devtools.restart.classloader.RestartClassLoader
とsun.misc.Launcher$AppClassLoader
しかし、相変わらず、この問題を解決する方法はわかりません。
解決しました!
以下のフィルターの順序を変更すると、機能します。
- requestContextFilter
- oAuth2ClientContextFilter
- springSessionRepositoryFilter
spring - Spring Session + REST + カスタム認証フィルター (クエリパラメーターではなく JSON から資格情報を読み取る)
レスト サービス認証を基本認証からフォーム ベース認証に変換しようとしていますが、次のようなクエリ パラメータとして URL で認証の詳細を送信すると、以下のコードは正常に動作します (カスタム認証フィルタをコメントアウトしたことに注意してください)。http://localhost:8080/login?username=dfdf&&password=sdsdd
ただし、資格情報をクエリ パラメーターとして送信することに熱心ではなく、代わりに json として送信したいので、カスタム認証フィルターを作成しました。カスタム認証フィルターを追加すると、Spring セッションが機能しなくなります。x-auth-token
応答ヘッダーにフィールドが見つかりません。春のセッションとカスタム認証を一緒に有効にする方法、または資格情報のjson入力を処理するより簡単な方法かもしれません。
spring - 1 つのアプリでの Spring セキュリティ OAuth2 認証とフォーム ログイン
login basic と oauth2 による承認と認証を 1 つのアプリケーションで組み合わせることができますか?
私のプロジェクトは、単純な春のセキュリティ セッション ログインを備えた jhipster プロジェクトに基づいています。モバイル アプリに oauth2 セキュリティを追加する必要がありますが、それは不可能のようです。
WebSecurityConfigurerAdapter が ResourceServerConfiguration よりも大きい注文番号を持っていれば、そのうちの 1 つを動作させることができます。これは、oauth セキュリティ フィルターが最初の場合の平均です。私はstackoverflowで多くのことを読んで、次のような多くのソリューションを試しました
.Springセキュリティoauth2とフォームログイン構成は機能しません。
セキュリティフィルターの競合に関連していることはわかっていますが、修正方法はわかりません。
誰かが同様の問題を抱えていて、彼がそれをなんとかやり遂げた場合、または回避する方法や改善する方法を知っている場合、私はその情報に感謝します. よろしくお願いします:)
この設定では、WebSecurityConfigurerAdapter セッションは正しく機能します。正しく承認された後の OAuth の場合、有効なアクセス トークンを取得しますが、セッションからのこのトークンを使用したリクエストの場合、次の結果が得られます。
関数はコンソールに書き込みます: anonymousUser true [ROLE_ANONYMOUS] anonymousUser
user1 true [ROLE_USER] user1 である必要があります
spring - Redis なしで Spring Boot セッションを使用することは可能ですか?
Spring Boot ドキュメントを見ると、Redis でセッションを使用する例しか見つかりませんでした。Redisなしで使用することは可能ですか?
java - spring-boot 1.3-M5 oauth2 SSO は spring-session では機能しませんか?
基本的に、spring-boot oauth2 統合を spring-session で動作させることはできません。
spring-boot の問題トラッカーで問題を作成しました: https://github.com/spring-projects/spring-boot/issues/4360
この問題を実証するためにレポを作成しました
https://github.com/sloppycoder/spring-session-oauth-problem
2 つのモジュールがあります。
- auth-server は oauth2 認証サーバーです。それを実行するには、ただ
mvn
. サーバーはhttp://localhost:19999/uaaになります - web-app は、シングル サインオンに auth-server を使用する Web アプリケーションです。http://localhost:8080
mvn
でアプリを起動します
私の sso ログアウト ロジックは次のように機能します。
- 「ログアウト」ボタンをクリックすると、ログアウトが成功した後、リダイレクト先の URL http://localhost:8080/ssologoutを渡し、 http://localhost:19999/uaa/logoutに POST が実行されます。
- 認証サーバーからログアウトし、http://localhost:8080/ssologoutにリダイレクトします
- http://localhost:8080/ssologout次に、 http://localhost:8080/logoutに POST します。
- (デフォルトの spring-security 動作) ログアウト後、http://localhost:8080/login?logoutにリダイレクトします
- http://localhost:8080/login?logout http://localhost:19999/uaa/loginにリダイレクトし、ユーザーに再度ログインするように求めます。
しかし、春のセッションに入った後、ステップ 5 は行われません。ブラウザは web-app /dashboard に直接アクセスします。
sos-spring-session ブランチを実行する前に、必ずローカルの redis デーモンを開始してください。
異なる動作を示すために 2 つのブランチを作成しました。
- sso のみ。spring-boot は auth-server と統合され、問題なく動作します。
- sso-spring-session。ログアウトは機能しません。
github compareは違いを示しています。
これを解決する方法についてのアドバイスや提案をいただければ幸いです。
spring-security - 「自動セッション エイリアス インクルージョン」を使用するには特別な設定が必要ですか?
現在、春のセッションを使用する簡単なアプリケーションを作成しようとしています(春のブートで春のセキュリティを使用)
それはほとんどうまくいきます。しかし、私はある時点で立ち往生しています
spring session のガイドには 、「Spring Session は任意の URL にセッション エイリアスを自動的に含める」とあります。
しかし、私のjspでは機能しません。
そのため、エイリアスコードを含めて手動で記述する必要があります
私のIDE(Spring Tool Suite)では、マルチユーザーのサンプルコード がガイドと同じようにうまく機能し、アプリで同じバージョンのjstlを使用しています
ええと...おそらく、私の質問についてもっと情報を書かなければなりません
申し訳ありませんが、どのコンポーネントがこの問題に影響を与えるのか推測できません。おそらく、スプリング セッションまたはブートの機能の一部です。
「自動セッション エイリアス インクルージョン」をブロックしているコンポーネント、または使用するための設定が必要なコンポーネントを教えてください。