信息是:
C:\ Users \ caydin> whoami
vegandc1 \ caydin C:\ Users \ caydin> whoami / upn
caydin@vegan.local
C:\ Users \ caydin> whoami / fqdn
CN = CanerAydın,CN = Users,DC = caner,DC = local
我是从域中公司笔记本电脑的CMD控制台中获得的。
我想要的是使用笔记本电脑登录凭据登录。因此,公司域名。
我是在春季创建的
@Configuration
@EnableWebSecurity
//@EnableGlobalMethodSecurity(securedEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.ldapAuthentication()
.userDnPatterns("CN=Users")
// .groupSearchBase("ou=groups")
.contextSource()
// .managerDn("CN=Administrator,CN=Users,DC=contoso,DC=com")
// .managerPassword("myadminpassword")
.url("ldap://192.168.1.13:389/");
}
@Inject
private CustomAuthenticationProvider customAuthProvider;
和其他班级是:
@Named
public class CustomAuthenticationProvider implements AuthenticationProvider {
@PostConstruct
public void init() {
// LOGGER.info("Initializing Custom LDAP Provider with LDAP server {} and domain name {}.", ldapUrl, domain);
provider = new ActiveDirectoryLdapAuthenticationProvider("vegan.local",
"ldap://192.168.1.13:389/");
// provider.setSearchFilter("(sAMAccountName={1})");
// provider.setUserDetailsContextMapper(userDetailsMapper);
provider.setConvertSubErrorCodesToExceptions(true);
}
@Override
public Authentication authenticate(Authentication auth) throws AuthenticationException {
Authentication authenticated = null;
authenticated = provider
.authenticate(
new UsernamePasswordAuthenticationToken(
auth.getPrincipal(),
auth.getCredentials()
));
LOGGER.info("Authentication of user {} {}.", authenticated.getPrincipal(),
authenticated.isAuthenticated() ? "success" : "failed");
return authenticated;
@Override
public boolean supports(Class<?> arg0) {
return true;
}
}
这仅仅是项目的开始。我需要先登录,所以没有其他进展。这是spring的启动器Web项目。
但是它给出了错误。
authentication failed: Supplied password was invalid error.
但是我输入了我用来登录的用户名和密码。
我需要什么?我尝试遵循许多示例,例如 Spring Boot LDAP Authentication
但仍然无法执行此操作。请给我建议。
我用于登录笔记本电脑的用户名是:
caydin
但是我将这个用户名用于spring项目:
"caydin@vegan.local"
我也尝试过
@配置 公共类LdapTemplateConfig {
@Bean
public LdapTemplate ldapTemplate() {
LdapTemplate ldapTemplate = new LdapTemplate(ldapContextSource());
return ldapTemplate;
}
@Bean
public LdapContextSource ldapContextSource() {
String url = "ldap://192.168.1.13:389/";
String base = "DC=vegan,DC=local";
LdapContextSource ldapContextSource = new LdapContextSource();
ldapContextSource.setUrl(url);
ldapContextSource.setBase(base);
ldapContextSource.setUserDn(
"CN=Caner Aydın,CN=Users,DC=vegan,DC=local");
ldapContextSource.setPassword("xxxas");
// ldapContextSource.setReferral("follow");
ldapContextSource.afterPropertiesSet();
return ldapContextSource;
}
但相同。
我还尝试了如下3个参数构造函数:
ActiveDirectoryLdapAuthenticationProvider authenticationProvider =
// new ActiveDirectoryLdapAuthenticationProvider(ldapDomain, ldapUrl,
// "DC=bpn,DC=local");
但是还是一样。