2016-07-16 4 views
0

Я пытаюсь добавить базовую аутентификацию для своих API-интерфейсов, где пользователи будут проходить аутентификацию на основе их учетных данных, хранящихся в MongoDB. Я хочу использовать конфигурацию java вместо конфигурации на основе XML. До сих пор я узнал, что мне нужно создать @Configuration путем расширения WebSecurityConfigurerAdapter и переопределить метод configure. В этом я могу добавить настраиваемый фильтр по addFilterBefore().Spring security java config basic authentication filter

Но как я могу получить информацию заголовка Authentication в фильтре, как действовать, если пользователь аутентифицирован. Я много гулял, но не нашел хорошего примера, который поможет новичкам вроде меня, которые были в весну только на 1 неделю.

Есть ли у кого-нибудь хороший учебник или образец, который может помочь мне начать с этого? Заранее спасибо.

ответ

0

В качестве примера вы можете использовать следующее решение.

@Override 
protected void configure(HttpSecurity http) throws Exception {  
    http.httpBasic().authenticationEntryPoint(getBasicAuthenticationEntryPoint()); 
} 

@Bean 
public BasicAuthenticationEntryPoint getBasicAuthenticationEntryPoint(){ 
    BasicAuthenticationEntryPoint basicAuthenticationEntryPoint = new BasicAuthenticationEntryPoint(); 
    basicAuthenticationEntryPoint.setRealmName("Basic Authentication"); 
    return basicAuthenticationEntryPoint; 
} 

@Bean 
@Override 
public AuthenticationManager authenticationManagerBean() throws Exception { 
    return super.authenticationManagerBean(); 
} 

@Autowired 
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
    auth 
      .userDetailsService(userDetailsService) 
      .passwordEncoder(passwordEncoder()); 

} 

Это работает для меня. Но вам нужно реализовать интерфейс UserDetailsService. Spring автоматически проверяет подлинность пользователя и пытается продолжить аутентификацию, если нет.

+0

Спасибо за ваш ответ, но, как я уже сказал, я абсолютно не знаком с весной, поэтому не могли бы вы поделиться каким-то подробным примером или образцом. благодаря – BiJ