問題タブ [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.

0 投票する
4 に答える
11696 参照

spring - redis を使用した Spring セッション - 統合テストでモックする方法は?

だから、私は私のプロジェクトで春のセッションを使用しています。それを使用してプロジェクトで統合テストを作成する方法は? 春のセッションの内部で何かをモックする必要がありますか? または、組み込みの redis を使用する合理的な方法はありますか?

過去に @EnableEmbeddedRedis アノテーションがあったのを見ましたが、削除されたようです: https://github.com/spring-projects/spring-session/issues/248

//編集

私はMockHttpSessionをに渡そうとしました

とにかくSpringはredisに接続しようとして失敗します。

0 投票する
5 に答える
7758 参照

spring - 春のセッション (redis) の Cookie 名を変更するには?

同じドメインの背後に 2 つのプロジェクト (それらの前に zuul プロキシ) があり、どちらもセッションが redis に保持された spring session プロジェクトを使用しています。

これらの 2 つのセッションは異なるはずですが、「SESSION」という名前の Cookie で互いの ID を上書きしているようです。その名前を変更するには?構成を通じてそれを行う簡単な方法はありますか?

0 投票する
0 に答える
452 参照

spring - spring-boot 1.3.0.RC1 : Redis に永続化されたセッションから oauth2 ユーザー情報を取得する際の ClassCastException

OAuth2 シングル サインオンを備えたスプリング ブート アプリケーションを使用しています (開発中ですが、既に動作しています)。

セッションストアを Tomcat から Redis に変更しました。

問題

ClassCastExceptionから User オブジェクトを取得しようとしたときに取得しましたSecurityContextHolder

User オブジェクトの保存先UsernamePasswordAuthenticationToken

認証後のセッション

User オブジェクトの取得 (認証後)

オブジェクトをデバッグし、MyUser オブジェクトがあるuserAuthenticationことを確認します。userAuthentication.detailsUserEntityClassCastExceptionをUserEntityにキャストすると発生しますが、なぜですか?

プリンシパル (=UserEntity.id) を正しく取得できます。

誰にも解決策はありますか?

以下は現在の構成の一部です。

依存関係

Redis 構成

OAuth2 SSO 構成

同様の問題

spring-session および spring-cloud-security を使用すると、OAuth2ClientContext (spring-security-oauth2) が Redis に保持されない

上記の回答のように (RedisConfig.java で) フィルターの順序を変更しましたが、機能しません。

私の現在のフィルターの順序は以下です。

コードを更新する

ClassCastException の原因は ClassLoader の不一致です。

org.springframework.boot.devtools.restart.classloader.RestartClassLoadersun.misc.Launcher$AppClassLoader

しかし、相変わらず、この問題を解決する方法はわかりません。

解決しました!

以下のフィルターの順序を変更すると、機能します。

  1. requestContextFilter
  2. oAuth2ClientContextFilter
  3. springSessionRepositoryFilter
0 投票する
1 に答える
1475 参照

spring - Spring Session + REST + カスタム認証フィルター (クエリパラメーターではなく JSON から資格情報を読み取る)

レスト サービス認証を基本認証からフォーム ベース認証に変換しようとしていますが、次のようなクエリ パラメータとして URL で認証の詳細を送信すると、以下のコードは正常に動作します (カスタム認証フィルタをコメントアウトしたことに注意してください)。http://localhost:8080/login?username=dfdf&&password=sdsdd

ただし、資格情報をクエリ パラメーターとして送信することに熱心ではなく、代わりに json として送信したいので、カスタム認証フィルターを作成しました。カスタム認証フィルターを追加すると、Spring セッションが機能しなくなります。x-auth-token応答ヘッダーにフィールドが見つかりません。春のセッションとカスタム認証を一緒に有効にする方法、または資格情報のjson入力を処理するより簡単な方法かもしれません。

0 投票する
1 に答える
2811 参照

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 である必要があります

0 投票する
3 に答える
10317 参照

spring - Redis なしで Spring Boot セッションを使用することは可能ですか?

Spring Boot ドキュメントを見ると、Redis でセッションを使用する例しか見つかりませんでした。Redisなしで使用することは可能ですか?

0 投票する
2 に答える
1012 参照

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:8080mvnでアプリを起動します

私の sso ログアウト ロジックは次のように機能します。

  1. 「ログアウト」ボタンをクリックすると、ログアウトが成功した後、リダイレクト先の URL http://localhost:8080/ssologoutを渡し、 http://localhost:19999/uaa/logoutに POST が実行されます。
  2. 認証サーバーからログアウトし、http://localhost:8080/ssologoutにリダイレクトします
  3. http://localhost:8080/ssologout次に、 http://localhost:8080/logoutに POST します。
  4. (デフォルトの spring-security 動作) ログアウト後、http://localhost:8080/login?logoutにリダイレクトします
  5. http://localhost:8080/login?logout http://localhost:19999/uaa/loginにリダイレクトし、ユーザーに再度ログインするように求めます。

しかし、春のセッションに入った後、ステップ 5 は行われません。ブラウザは web-app /dashboard に直接アクセスします。

sos-spring-session ブランチを実行する前に、必ずローカルの redis デーモンを開始してください。

異なる動作を示すために 2 つのブランチを作成しました。

  1. sso のみ。spring-boot は auth-server と統合され、問題なく動作します。
  2. sso-spring-session。ログアウトは機能しません。

github compareは違いを示しています。

これを解決する方法についてのアドバイスや提案をいただければ幸いです。

0 投票する
1 に答える
261 参照

spring-security - 「自動セッション エイリアス インクルージョン」を使用するには特別な設定が必要ですか?

現在、春のセッションを使用する簡単なアプリケーションを作成しようとしています(春のブートで春のセキュリティを使用)

それはほとんどうまくいきます。しかし、私はある時点で立ち往生しています

spring session のガイドには 、「Spring Session は任意の URL にセッション エイリアスを自動的に含める」とあります。

しかし、私のjspでは機能しません。

そのため、エイリアスコードを含めて手動で記述する必要があります

私のIDE(Spring Tool Suite)では、マルチユーザーのサンプルコード がガイドと同じようにうまく機能し、アプリで同じバージョンのjstlを使用しています

ええと...おそらく、私の質問についてもっと情報を書かなければなりません

申し訳ありませんが、どのコンポーネントがこの問題に影響を与えるのか推測できません。おそらく、スプリング セッションまたはブートの機能の一部です。

「自動セッション エイリアス インクルージョン」をブロックしているコンポーネント、または使用するための設定が必要なコンポーネントを教えてください。