2017-06-15 19 views
0

ログイン後にブラウザのCookieの値を設定したいと思います。 次のコードで成功したログインイベントを検出できました。Spring起動アプリケーションのApplicationListenerでhttprequestとhttpresponseを取得するには?

@Component 
@Slf4j 
public class LoginEventListener implements ApplicationListener<InteractiveAuthenticationSuccessEvent> { 

    @Override 
    public void onApplicationEvent(InteractiveAuthenticationSuccessEvent event) { 

     log.info("hahaha: " + event.toString()); 
    } 
} 

答えて

1

サーブレットコンテナ内で実行中のコンポーネントことを考えると、あなたのLoginEventListenerコンポーネントにHttpServletRequestオブジェクトをオートワイヤリング試してみてください。

@Component 
@Slf4j 
public class LoginEventListener implements ApplicationListener<InteractiveAuthenticationSuccessEvent> { 

    @Autowired 
    private HttpServletRequest request;  

    @Override 
    public void onApplicationEvent(InteractiveAuthenticationSuccessEvent event) { 
     log.info("hahaha: " + event.toString()); 
     log.info("Request Object: " + request); // You now have access to the HTTP request object. 
    } 

} 
0

Tksは、別の方法で取得できます。

HttpServletRequest request = 
       ((ServletRequestAttributes) RequestContextHolder. 
         currentRequestAttributes()). 
         getRequest(); 
関連する問題