我正在尝试构建一个基于ldap“ OU”的springboot应用程序,我可以在其中获取 在运行时通过标头使用OU名称,但是spring security不允许我这样做吗?
默认LdapTemplate Bean是通过spring.boot通过application.properties配置创建的。
spring.ldap.base=ou=changeable,dc=abc,dc=com
spring.ldap.username=uid=admin,dc=abc,dc=com
spring.ldap.userDnPatterns=uid={0},ou=users
spring.ldap.groupSearchBase=ou=groups
我想要的是通过覆盖现有的LdapTemplate通过API请求更改Ldap.base的值
@Primary
public LdapContextSource contextSourceTarget(LdapProperties ldapProperties) {
LdapContextSource contextSource = new LdapContextSource();
contextSource.setUrl(env.getProperty("spring.ldap.url"));
contextSource.setBase("ou=newValue,dc=dbr,dc=com");
contextSource.setUserDn(env.getProperty("spring.ldap.userDnPatterns"));
return contextSource ;
}
@Bean(name = "updateContext")
@Primary
public LdapTemplate ldapTemplate(LdapContextSource contextSource) {
return new LdapTemplate(contextSource);
}
我的userDn模式应该从ou = changeable更改为ou = newValue我该怎么做?
我可以在Spring安全身份验证之前动态更改LdapTemplate配置