我有一个Spring Web应用程序,并尝试将LDAP与LDIF文件而不是LDAP服务器一起使用。我按照示例here进行了操作,以查看如何执行基本的LDIF项目,并在尝试将其集成到Web应用程序时出现错误。
我的应用程序代码段:
@RestController
@CrossOrigin
@RequestMapping("/Test/")
public class Home{
@RequestMapping(value = "/{userName}", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
@ResponseBody
public String getInfo(@PathVariable String userName) {
//code here
}
WebSecurityConfig.java文件(来自示例链接)
@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://localhost:8389/dc=springframework,dc=org")
.and()
.passwordCompare()
.passwordEncoder(new LdapShaPasswordEncoder())
.passwordAttribute("userPassword");
}
}
application.properties
spring.ldap.embedded.base-dn=dc=springframework,dc=org
spring.ldap.embedded.ldif=classpath:test-server.ldif
spring.ldap.embedded.port=8389
spring.ldap.embedded.url=ldap://localhost:8389/
现在这是我的问题-
WebSecurityConfig.java文件是否足以检查身份验证,或者我需要修改主应用程序?
spring.ldap的端口重要吗?我的应用程序使用端口XXXX-我应该将8389更改为XXXX吗?
以及ldap url-我应该将localhost更改为war文件的已部署文件夹的ip还是localhost固有地识别它? (我认为是这样)
我需要创建Web登录/密码页面并输入密码以登录并与LDIF文件进行匹配吗?我使用的示例有其自己的登录页面-如果工作正常或需要提供该页面,我不确定是否在那里?