1

次の問題に直面しました。子スレッドから現在ログインしているユーザー名を取得する必要があり、この目的のためにMODE_INHERITABLETHREADLOCALSecurityContextHolder の戦略を使用します。ユーザーがログオフして再度ログインするまで、すべて正常に機能します。その後、MODE_INHERITABLETHREADLOCAL動作しません。原因がわからず、解決策を見つけようとします。SecurityContextHolder.getContext().getAuthentication()問題は、子スレッドから呼び出された re-login の後、 null( return ) をSecurityContextHolder.getContextHolderStrategy()返すことMODE_INHERITABLETHREADLOCALです。security-config.xml でコンテキストホルダー戦略を設定しました

<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="targetClass" value="org.springframework.security.core.context.SecurityContextHolder"/> <property name="targetMethod" value="setStrategyName"/> <property name="arguments"><list><value>MODE_INHERITABLETHREADLOCAL</value></list></property> </bean> 誰かが私を助けてくれたらありがたいです。前もって感謝します!

4

0 に答える 0