2016-09-23 6 views
0

Я пытаюсь сделать проверку подлинности LDAP, используя пользовательскую страницу входа в систему, но ее не работает ниже моей безопасности и LDAP конфигурацииSpring загрузки Безопасность LDAP аутентификации

@Configuration 
@EnableWebSecurity 
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER) 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 

     http.httpBasic().and().authorizeRequests().antMatchers("/**").permitAll() 
      .anyRequest().authenticated() 
      .and().formLogin().loginPage("/login") 
      .usernameParameter("username") 
      .passwordParameter("password") 
      .failureUrl("/login?error"); 

    } 

    @Autowired 
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
     auth 
      .ldapAuthentication() 
       .userDnPatterns("uid={0},ou=people") 
       .groupSearchBase("ou=groups") 
       .contextSource().ldif("classpath:test-server.ldif"); 
    } 
} 

Ниже приведен пример файла LDIF, который помещается в папку ресурсов

дп: UID = боб, НУ = люди, DC = springframework, DC = орг ObjectClass: топ ObjectClass: человек ObjectClass: organizationalPerson Objectclass: InetOrgPerson сп: Боб Гамильтон зп : Hamilton uid: bob userPassword: bobspassword

Я ищу только действительные пользователи могут обращаться к другим страницам приложения.

Есть ли недостатки в конфигурации и будут благодарны за ваши ответы.

ответ

-1

Вы должны изменить свой код на следующее:

@Override 
    protected void configure(HttpSecurity http) throws Exception { 
    http.httpBasic().and().authorizeRequests() 
    .anyRequest().authenticated() 
    .and().formLogin().loginPage("/login") 
    .usernameParameter("username") 
    .passwordParameter("password") 
    .failureUrl("/login?error"); 

, поставив

.antMatchers("/**").permitAll() 

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