当前位置: 首页 > 知识库问答 >
问题:

springldap和springboot配置

邢心水
2023-03-14

我有教育问题:

存在具有windows server 2003(AD)的虚拟机,其中包含用户及其密码。已建立与机器的连接(ip:192.168.56.101:389)。

Web应用程序的目的是使用户能够在AD中更改他的密码。

问题:无法配置到windws server 2003的连接。

我从这个教程开始https://spring.io/guides/gs/authenticating-ldap/

当我试图以“杰克·伍德”的身份登录并通过“1234”时,我出错了。

org.springframework.security.authentication.InternalAuthenticationServiceException: 
Uncategorized exception occured during LDAP processing; 
nested exception is javax.naming.NamingException: 
[LDAP: error code 1 - 00000000: LdapErr: DSID-0C090627, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, vece ]; remaining name 'cn=Jack Wood,cn=Users'

请检查应用程序。属性

#spring.ldap.embedded.ldif=classpath:test-server.ldif
#spring.ldap.embedded.base-dn=dc=springframework,dc=org
#spring.ldap.embedded.port=8389
spring.ldap.base=dc=GRSU,dc=local
spring.ldap.urls=192.168.56.101:389
spring.ldap.username=cn=Jack Wood,cn=Users,dc=GRSU,dc=local
spring.ldap.password=1234

网络安全配置

package hello;

import java.util.Arrays;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.encoding.LdapShaPasswordEncoder;
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.ldap.DefaultSpringSecurityContextSource;

@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("cn={0},cn=Users")
                .groupSearchBase("ou=groups")
                .contextSource(contextSource())
                .passwordCompare()
                    .passwordEncoder(new LdapShaPasswordEncoder())
                    .passwordAttribute("userPassword");
    }

    @Bean
    public DefaultSpringSecurityContextSource contextSource() {
        return new DefaultSpringSecurityContextSource("ldap://192.168.56.101:389/");
    }

}

家庭控制器

package hello;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HomeController {

    @GetMapping("/")
    public String index() {
        return "Welcome to the home page!";
    }
}

应用

package hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

共有1个答案

计光赫
2023-03-14

试着改变

spring.ldap.username=cn=Jack Wood,cn=Users,dc=GRSU,dc=local

spring.ldap.username=cn=Jack Wood,cn=Users

这有用吗?

我的理解是用户名使用相对域名(rdn),而不是绝对域名(dn)。

 类似资料:
  • 我正在尝试使用spring连接到LDAP服务器 有关LDAP服务器的可用信息如下: 主机/ip 端口 域名 这是我的密码 然后在另一个类中是身份验证方法 我有以下错误: m. m. a. ExceptionHandlerExceptionResolver:已解决的[org.springframework.ldap.未分类的LdapExctive:在LDAP处理过程中发生了未分类的异常;嵌套的异常j

  • <dependencyManagement> <dependencies> <dependency> <!--Import dependency management from SpringBoot--> <groupId>org.springframework.boot</groupId>

  • 我有在openshift中运行的springboot和非springboot(Eclipse Microprofile)Rest API。两者都有服务endpoint端口9443 SpringBoot度量路径-/actuator/Prometheus Eclipse micro profile度量路径/度量 Eclipse微配置文件抓取配置 Spring靴刮擦配置 由于MP指标在springboo

  • 我尝试将springboot应用程序配置为每天登录一个文件,因此我将logback.xml配置为: 所以当我尝试运行我的应用程序时,我得到了这个错误:

  • 本文向大家介绍详解SpringBoot Schedule配置,包括了详解SpringBoot Schedule配置的使用技巧和注意事项,需要的朋友参考一下 1. 定时任务实现方式 定时任务实现方式: Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文

  • 我在SpringBoot应用程序中实现了多语言,在完成以下配置后,我得到的属性文件无法加载 文件夹名称 src/main/resources/i18n/messages 属性文件名 messages_us.properties 在应用程序主类 内部控制器 标题 接受-语言:我们 我明白了 [36mo.s.c.s.ResourceBundleMessageSource[0;39m[2m:[0;39m