Spring Boot LDAP模板查询

问题描述 投票:0回答:1

如何为以下AD查询在LDAP模板中编写查询:

(&(objectcategory=person)(objectclass=user)(userAccountControl:1.2.840.113556.1.4.803:=2)(|(extensionAttribute2=fte)(extensionAttribute2=intern)(extensionAttribute2=awf))(whenchanged>=20200512064756.0Z))

这是我形成的似乎不起作用的东西:

query().where("whenchanged").is(20200512064756.0Z),
      .and(query().where("extensionAttribute2").is("fte").or("extensionAttribute2").is("intern").or("extensionAttribute2").is("awf")),
      .and(query().where("objectcategory").is("person").and("objectclass").is("user").and("userAccountControl:1.2.840.113556.1.4.803:").is(2))
spring-boot spring-ldap
1个回答
0
投票
ZonedDateTime zdt = ZonedDateTime.now(ZoneId.of("UTC")).minusHours(inactiveHours);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss[.S]'Z'");
        AndFilter af = new AndFilter();
        af.and(new EqualsFilter("objectcategory", "person")).and(new EqualsFilter("objectclass", "user"))
                .and(new EqualsFilter("userAccountControl:1.2.840.113556.1.4.803:", 2));
        OrFilter of = new OrFilter();
        of.or(new EqualsFilter(AD_EXTENSIONATTRIBUTE2, "fte")).or(new EqualsFilter(AD_EXTENSIONATTRIBUTE2, "awf"))
                .or(new EqualsFilter(AD_EXTENSIONATTRIBUTE2, "intern"));
        af.append(of).append(new GreaterThanOrEqualsFilter("whenchanged", zdt.format(formatter)));
© www.soinside.com 2019 - 2024. All rights reserved.