我正在尝试使用spring数据构建一个LdapTemplate对象。
public class LDAPTemplate {
public static void main(String[] args) {
LdapContextSource lcs = new LdapContextSource();
lcs.setUrl("ldap://localhost:389/");
lcs.setUserDn("cn=Manager, dc=example, dc=com");
lcs.setPassword("secret1");
lcs.setDirObjectFactory(DefaultDirObjectFactory.class);
LdapTemplate ldap = new LdapTemplate(lcs);
ldap.lookup("cn=aaa");
}
}
我想知道的是实例化ldap模板对象的正确方法。因为当我执行查找时,它会抛出NPE。
我试图在CDI上下文中使用LDAP Spring而根本不使用Spring。如果您有指针,那就太好了。Spring LDAP是否依赖于Spring?
解决方案:在CDI上下文中使用Spring LDAP,而不使用Spring IoC
>
为LDAP模板创建资源生成器。
public class Resources {
private LdapTemplate template;
@Produces
//It is a custom qualifier
@CustomeLDAPTemplate
public LdapTemplate getTemplate() {
LdapContextSource lcs = new LdapContextSource();
lcs.setUrl("ldap://localhost:389/");
lcs.setUserDn("cn=Manager, dc=example, dc=com");
lcs.setPassword("secret1");
lcs.setDirObjectFactory(DefaultDirObjectFactory.class);
lcs.afterPropertiesSet();
template = new LdapTemplate(lcs);
return template;
}
public void setTemplate(LdapTemplate template) {
this.template = template;
}
}
创建一个自定义限定符-表示我想要LdapTemplate和CustomeLDAPTemplate类型的tempate对象
@Qualifier
@Retention(RUNTIME)
@Target({TYPE,CONSTRUCTOR, METHOD, FIELD})
public @interface CustomeLDAPTemplate {}
上的实现—我使用JAX-WS类进行验证。
@Path("/users")
@RequestScoped
public class UserResource {
@Inject
@CustomeLDAPTemplate
private LdapTemplate template;
@POST
@Consumes(MediaType.APPLICATION_XML)
public Response createUser(InputStream is){
User user = readStream(is);
System.out.println("LDAP Look up " + template.lookup("cn=aaa,ou=Org1, dc=example, dc=com").toString());
uRepo.save(user);
return Response.created(URI.create("/users/" + user.getUser_id())).build();
}
}
正确的代码
public class LDAPTemplate {
public static void main(String[] args) {
LdapContextSource lcs = new LdapContextSource();
lcs.setUrl("ldap://localhost:389/");
lcs.setUserDn("cn=Manager, dc=example, dc=com");
lcs.setPassword("secret1");
lcs.setDirObjectFactory(DefaultDirObjectFactory.class);
lcs.afterPropertiesSet();
LdapTemplate ldap = new LdapTemplate(lcs);
ldap.lookup("cn=aaa");
}
}
LdapContextSource是初始化bean,因此需要调用afterPropertiesSet。。。
和JavaDoc:
当在Spring上下文之外使用此类的实现时,有必要在设置所有属性时调用AfterPropertieSet(),以便完成初始化。
我正在尝试使用spring连接到LDAP服务器 有关LDAP服务器的可用信息如下: 主机/ip 端口 域名 这是我的密码 然后在另一个类中是身份验证方法 我有以下错误: m. m. a. ExceptionHandlerExceptionResolver:已解决的[org.springframework.ldap.未分类的LdapExctive:在LDAP处理过程中发生了未分类的异常;嵌套的异常j
我有教育问题: 存在具有windows server 2003(AD)的虚拟机,其中包含用户及其密码。已建立与机器的连接(ip:192.168.56.101:389)。 Web应用程序的目的是使用户能够在AD中更改他的密码。 问题:无法配置到windws server 2003的连接。 我从这个教程开始https://spring.io/guides/gs/authenticating-ldap/
问题内容: 如何使用Maven创建桌面(独立/ Swing)应用程序? 我正在使用Eclipse 3.6。 问题答案: 创建一个Maven项目,如下所示: 将以下条目添加到您的pom文件中: 将项目作为Maven项目导入到Eclipse,然后作为Java应用程序运行。
我正在试图弄清楚如何构建一个Spring Boot独立应用程序。当然,要让东西自动连线需要一些初始的上下文起点。如果我只是尝试自动生成一个类来运行一个作业,那么即使我将它设置为静态,它也是空的。 有没有办法在一个独立的非Web应用程序中使用Spring@Services? 因此,首先将静态JobRunnerService连接到运行MyApplication的主程序,JobRunner(Servic