Проблемы с настройкой Active Directory в Spring Framework - PullRequest
0 голосов
/ 28 марта 2019

У меня проблема, мне нужно иметь доступ к активному каталогу для управления аутентификацией в Spring. В частности, у меня есть информация о коде моего коллеги, который использует asp.net для управления им. Я взял проект из spring.io, но я просто не могу понять, какой URL нужно ввести, чтобы установить соединение для аутентификации. Я пробовал так много раз, но я не мог справиться с этим более 4 дней. Я прикрепляю часть кода моего коллеги, «замаскированного» в asp.net, чтобы иметь возможность просматривать данные, которые будут введены в проекте Spring.

https://spring.io/guides/gs/authenticating-ldap/ (проект Spring.io)

ASP.NET-КОД, ГДЕ ПОЛУЧИТЬ ИНФОРМАЦИЮ СОЕДИНЕНИЯ

      private string aut(string us, string psw){
        string strPath = "LDAP://DC=USERS,DC=italia, DC=it";
DirectoryEntry de = new DirectoryEntry(strPath,us,psw); 

        DirectorySearcher se = new DirectorySearcher(de);

        se.Filter = "(samaccountname=" + TextBox1.Text + ")";

        try
        {
          SearchResult sr;
          sr = se.FindOne();

          return "user e password CORRETTE:  " + sr.Properties["givenName"][0].ToString();
        }
        catch (Exception)
        {

            return "NON AUTENTICATO";
        }

Мой код spring.io для редактирования;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.password.LdapShaPasswordEncoder;

@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .anyRequest().fullyAuthenticated()
                .and()
            .formLogin();
    }

    @Override
    public void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .ldapAuthentication()
                .userDnPatterns("uid={0},ou=people")
                .groupSearchBase("ou=groups")
                .contextSource()
                    .url("ldap:///dc=USERS,dc=italia,dc=it")
                    .and()
                .passwordCompare()
                    .passwordEncoder(new LdapShaPasswordEncoder())
                    .passwordAttribute("userPassword");
    }

}
...