2017-08-09 10 views
2

私は、UserDetailsインターフェイスを実装するカスタムユーザークラスを持つ春のセキュリティ用のカスタム認証プロバイダとカスタム認証ハンドラを用意しています。 私のアプリケーションにすべてのアクティブなユーザーリストが必要です。 私はのsecurity.xmlすべてのアクティブセッションを春のセキュリティで取得する

<session-management> 
     <concurrency-control 
      session-registry-alias="sessionRegistry" /> 
    </session-management> 

そして、私のコントローラ内にweb.xmlにコードの下にコードの下

<listener> 
<listener-class> 
    org.springframework.security.web.session.HttpSessionEventPublisher 
</listener-class> 
</listener> 
アプリ-のcontext.xmlでのコードの下

<bean id="sessionRegistry" 
    class="org.springframework.security.core.session.SessionRegistryImpl" /> 

を追加しました使用しました

@Autowired 
SessionRegistry sessionRegistry; 
List<Object> allPrincipal = sessionRegistry.getAllPrincipals(); 
    System.out.println(sessionRegistry.getAllPrincipals().size()); 

System.out.printlnの結果は0です。

答えて

0

これはおそらく重複した質問です:sessionRegistry is empty when I use ConcurrentSessionControlAuthenticationStrategy instead of ConcurrentSessionControlStrategyが、最も一般的な問題は、通常、スプリングコンテキストを2回ロードしています。アノテーションベースのコンテキストとapplicationContext.xmlも持っていないことを確認してください。

+0

私のコントローラでは、@autowired SessionRegistry sessionRegistryも使用しました。これは正しい方法ではありませんか? –

関連する問題