У меня проблема, мне нужно иметь доступ к активному каталогу для управления аутентификацией в 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");
}
}