@Override
 public void afterPropertiesSet() {
   super.afterPropertiesSet();
   setAuthenticationFailureHandler(
       new AuthenticationFailureHandler() {
         public void onAuthenticationFailure(
             HttpServletRequest request,
             HttpServletResponse response,
             AuthenticationException exception)
             throws IOException, ServletException {
           if (exception instanceof BadCredentialsException) {
             exception =
                 new BadCredentialsException(
                     exception.getMessage(), new BadClientCredentialsException());
           }
           authenticationEntryPoint.commence(request, response, exception);
         }
       });
   setAuthenticationSuccessHandler(
       new AuthenticationSuccessHandler() {
         public void onAuthenticationSuccess(
             HttpServletRequest request,
             HttpServletResponse response,
             Authentication authentication)
             throws IOException, ServletException {
           // no-op - just allow filter chain to continue to token endpoint
         }
       });
 }
 /** Check properties are set */
 @Override
 public void afterPropertiesSet() {
   super.afterPropertiesSet();
   Assert.notNull(oAuth2ServiceProperties);
   Assert.isTrue(
       oAuth2ServiceProperties.getRedirectUri().endsWith(super.getFilterProcessesUrl()),
       "The filter must be configured to be listening on the redirect_uri in OAuth2ServiceProperties");
 }
  @Override
  public void afterPropertiesSet() {
    super.afterPropertiesSet();

    // if our JOSE validators don't get wired in, drop defaults into place

    if (validationServices == null) {
      validationServices = new JWKSetCacheService();
    }

    if (symmetricCacheService == null) {
      symmetricCacheService = new SymmetricKeyJWTValidatorCacheService();
    }
  }
 @Override
 public void afterPropertiesSet() {
   super.afterPropertiesSet();
   CommonHelper.assertNotNull("clients", this.clients);
   this.clients.init();
 }