Как сделать внедрение зависимости в Spring Security Filter?

295
10 июня 2017, 13:56

Есть такой вот фильтр:

public class JWTLoginFilter extends AbstractAuthenticationProcessingFilter 

Проблема в том, что используется он каждый раз как новый инстанс:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .csrf().disable()
            .formLogin().disable()
            .authorizeRequests()
            .antMatchers("/health").permitAll()
            .antMatchers("/test").permitAll()
            .antMatchers("/login").permitAll()
            .anyRequest().authenticated()
            .and()
            .addFilterBefore(new JWTLoginFilter("/login", authenticationManager()),
                    UsernamePasswordAuthenticationFilter.class)
            .addFilterBefore(new JWTAuthenticationFilter(),
                    UsernamePasswordAuthenticationFilter.class);
}

Это означает, что я могу не проинжектить в фильтр нужную мне зависимость. Тогда как я могу в фильтре использовать компоненты вроде такого

@Component
public class UserServiceImpl implements UserService {
    @Autowired
    private UserRepository userRepository;
    @Override
    public Optional<User> findByUsername(String username) {
        return userRepository.findByUsername(username);
    }
} 

?

READ ALSO
Почему при смене языка не меняется название Фрагмента?

Почему при смене языка не меняется название Фрагмента?

Почему при смене языка не меняется название Фрагмента?

333
Создание папок в Windows из PL/SQL

Создание папок в Windows из PL/SQL

Стоит задача написать PL/SQL процедуру, которая будет создавать пустую папку по указанному путиЯ знаю что для этого можно использовать класс...

256
Как изменить стиль в NetBeans?

Как изменить стиль в NetBeans?

Я новичок в Java, да и в программировании вообщеНачал её изучать, сейчас разбираюсь с GUI, пишу простенький калькулятор, но почему то в GUI билдере...

384
Как правильно сделать POST запрос Retrofit?

Как правильно сделать POST запрос Retrofit?

Мне очень нужна помощьНе знаю как сделать POST запрос по этому API: http://smktesting

412