re-factor: filter as AbstractAuthenticationFilter