2016-12-20 11 views
0

StormpathのRequestEventListenerAdapterメソッドをオーバーライドして、ユーザーがログインまたはアカウントを作成したときにアカウントのCustom Dataを入力しようとしました。Spring Boot(Stormpath)のRequestEventListenerAdapterメソッドを無効にする

私はRequestEventListenerAdapterを拡張するクラスを作成し、それらが動作しているかどうかをテストするために、コンソールにいくつかの簡単な出力を作るためにSuccessfulAuthenticationRequestEventLogoutRequestEvent上に上書きしようとしています(単純に「Hello World!」という例が)。しかし、アプリケーションでこれらのアクションを実行すると、これらのイベントのどれもトリガーされません。だから私はここの誰かが私を助けることができるかどうか疑問に思っていた、私が宣言するはずの豆が適切な場所にあるかどうか、または私はイベントのトリガのためのいくつかの種類の設定が欠けている場合。何か助けていただきありがとうございます。詳細情報が必要な場合はお知らせください。

これは私のカスタムクラスである:

@Bean 
public RequestEventListener stormpathRequestEventListener() { 
    return new CustomRequestEventListener(); 
} 
+0

'@Bean'を' @Configuration'でマークされたクラスに置くことができます。 @ SpringBootApplicationで注釈が付けられている主要なSpring Bootクラスさえ。 –

+0

はい、私は現在メインクラス(@ @ SpringBootApplication')に '@ Bean'を持っていますが、別の場所に行かなければならないかどうかは分かりませんでした。 – Tuco

答えて

2

あなたは正確に右のルックスをやっている:

import com.stormpath.sdk.servlet.authc.LogoutRequestEvent; 
import com.stormpath.sdk.servlet.authc.SuccessfulAuthenticationRequestEvent; 
import com.stormpath.sdk.servlet.event.RequestEventListenerAdapter; 

public class CustomRequestEventListener extends RequestEventListenerAdapter { 

@Override 
public void on(SuccessfulAuthenticationRequestEvent e) { 
    System.out.println("Received successful authentication request event: {}\n" + e); 
} 

@Override 
public void on(LogoutRequestEvent e) { 
    System.out.println("Received logout request event: {}\n" + e); 
} 
} 

これは私がどこに配置するかわからないBeanがあります。私はa sample projectを作成して、物事をどのように動かすかを実証しました。あなたはそれを見て(それは非常に簡単です)、あなたが持っているものと比較することができます。

また、実際に動作するかどうかを確認するために、実行方法を追加しました。

+0

恐ろしい!私はそれをチェックし、あなたに戻ってきます。 – Tuco

+0

私の側のすべては同じですが、イベントリスナーからの出力はまだありません。なぜなら、通常のログインの代わりにソーシャルローンを使用しているからですか?私もログアウトイベントを試していますが、どちらも動作していません:/ – Tuco

+0

私が提供した例では、FacebookとGoogleの両方で試してみました。プロジェクトの関連部分を共有することは可能ですか?もしそうなら、私たちへのチケットをここに作成することができますhttps://support.stormpath.com/hc/en-us/requests/new – mario

関連する問題