Raf*_*onn 5 java spring spring-security spring-ldap maven
我正在尝试使用 Spring Security 来连接 LDAP,但它总是显示错误的凭据问题。
我想我的代码可能有问题:
@Configuration\n@EnableWebSecurity\n@EnableGlobalMethodSecurity(prePostEnabled = true)\npublic class SecurityConfig extends WebSecurityConfigurerAdapter {\n @Override\n public void configure(WebSecurity web) throws Exception {\n web.debug(true);\n }\n @Autowired\n public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {\n\n auth.ldapAuthentication().userDnPatterns("sAMAccountName={0},OU=SupportUsers,OU=Users,OU=company,DC=ad,DC=company,DC=com,DC=pl")\n .contextSource(contextSource()).passwordCompare().passwordAttribute("userPassword");\n }\n protected void configure(HttpSecurity http) throws Exception {\n http\n .authorizeRequests()\n .anyRequest().fullyAuthenticated()\n .and()\n .formLogin();\n http.csrf().disable(); //Vaadin already have built in csrf\n }\n @Bean\n public LdapContextSource contextSource () {\n LdapContextSource contextSource= new LdapContextSource();\n contextSource.setUrl("ldap://192.168.2.2:389");\n contextSource.setBase("dc=ad,dc=company,dc=com,dc=pl");\n contextSource.setUserDn("CN=lister,OU=SupportUsers,OU=Users,OU=company,DC=ad,DC=company,DC=com,DC=pl");\n contextSource.setPassword("examplePassword");\n contextSource.setAnonymousReadOnly(false);\n contextSource.setPooled(true);\n contextSource.afterPropertiesSet();\n return contextSource;\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我在代码中找不到错误,也许我做错了事情。这是我的 pom.xml:
\n\n<?xml version="1.0" encoding="UTF-8"?>\n<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">\n <modelVersion>4.0.0</modelVersion>\n\n <groupId>pl.com.company</groupId>\n <artifactId>LDAPSpringInitializr</artifactId>\n <version>0.0.1-SNAPSHOT</version>\n <packaging>jar</packaging>\n\n <name>LDAPSpringInitializr</name>\n <description>Demo project for Spring Boot</description>\n\n <parent>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-parent</artifactId>\n <version>1.5.3.RELEASE</version>\n <relativePath/> <!-- lookup parent from repository -->\n </parent>\n\n <properties>\n <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>\n <java.version>1.8</java.version>\n <vaadin.version>8.0.5</vaadin.version>\n </properties>\n\n <dependencies>\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-data-jpa</artifactId>\n </dependency>\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-data-ldap</artifactId>\n </dependency>\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-security</artifactId>\n </dependency>\n <dependency>\n <groupId>com.vaadin</groupId>\n <artifactId>vaadin-spring-boot-starter</artifactId>\n </dependency>\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-web</artifactId>\n </dependency>\n\n <dependency>\n <groupId>org.postgresql</groupId>\n <artifactId>postgresql</artifactId>\n <scope>runtime</scope>\n </dependency>\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-test</artifactId>\n <scope>test</scope>\n </dependency>\n <dependency>\n <groupId>org.springframework.security</groupId>\n <artifactId>spring-security-ldap</artifactId>\n </dependency>\n </dependencies>\n\n <dependencyManagement>\n <dependencies>\n <dependency>\n <groupId>com.vaadin</groupId>\n <artifactId>vaadin-bom</artifactId>\n <version>${vaadin.version}</version>\n <type>pom</type>\n <scope>import</scope>\n </dependency>\n </dependencies>\n </dependencyManagement>\n\n <build>\n <plugins>\n <plugin>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-maven-plugin</artifactId>\n </plugin>\n </plugins>\n </build>\n</project>\nRun Code Online (Sandbox Code Playgroud)\n\n我做错了什么吗?也许密码编码有问题?你好,拉法\xc5\x82
\npublic void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.ldapAuthentication().userSearchFilter("(sAMAccountName={0})")
.contextSource(contextSource());
}
Run Code Online (Sandbox Code Playgroud)
它有效,我刚刚改变了这个方法。
| 归档时间: |
|
| 查看次数: |
5443 次 |
| 最近记录: |