私はAspectJを学び始めたばかりで、たとえばユーザーログインのユースケースがあります。ユーザーのセッション データ (Cookie) がサーバーに保存されているデータと一致しない場合、呼び出される関数を変更したいと考えています。2 つの操作があるとします。
class HttpServlet {
public function() {
}
public function2() {
}
public doLogin() {
}
}
そして私は次のようなアドバイスをしています:
public aspect UserLoggedIn {
pointcut GreetingServer(): within(HttpServlet);
pointcut requireAuth():
GreetingServer() && execution(* function*(..));
before(): requireAuth() {
if ( notLoggedIn ) {
redirectToDoLoginAndAbortCalledFunction();
}
}
}
では、redirectToDoLoginAndAbortCalledFunction() を機能させるにはどうすればよいでしょうか。