2016-08-02 41 views
0

Kann man nach dem createTimestamp-Attribut im REST-Service für PUMA nach Benutzern suchen? Die Suche nach anderen Attributen funktioniert gut, aber wenn das type-Attribut dateTime ist, erhalte ich andere Fehler, z. B. http://www-01.ibm.com/support/docview.wss?uid=swg1PM54864.REST-Service für PUMA-Benutzer nach createTimestamp suchen

Ich muss Benutzer finden, die früher ein Datum erstellt wurden.

habe ich versucht, dies:

host/wps/um/secure/users/profiles?searchAttributes=createTimestamp>=yyyyMMddHHmmssZ 

host/wps/um/secure/users/profiles?searchAttributes=createTimestamp>=yyyy-MM-dd'T'HH:mm:ss 

host/wps/um/secure/users/profiles?searchAttributes=createTimestamp>=yyyy-MM-dd'T'HH:mm:ss'Z' 

und sogar arbeitet Gleichheit nicht

host/wps/um/secure/users/profiles?searchAttributes=createTimestamp=yyyy-MM-dd'T'HH:mm:ss'Z' 

Antwort

0

ich dieses Problem durch ldap gelöst.

@Service 
public class LdapService { 

    @Autowired 
    private LdapTemplate ldapTemplate; 

    private SearchControls searchControls; 

    @PostConstruct 
     private void init() { 
     searchControls = new SearchControls(); 
     searchControls.setCountLimit(10000); 
     searchControls.setSearchScope(SUBTREE_SCOPE); 
    } 

    private class MemberMapper implements ContextMapper { 

     public Member mapFromContext(Object ctx) { 
      Member member = new Member(); 
      DirContextAdapter adapter = (DirContextAdapter) ctx; 
      Attribute valueMail = adapter.getAttributes().get("mail"); 
      try { 
       member.setEmail(valueMail == null ? null : valueMail.get().toString().trim()); 
      } catch (Exception ignore) { 
      } 

      Attribute valueCN = adapter.getAttributes().get("cn"); 
      try { 
       member.setLogin(valueCN == null ? null : valueCN.get().toString().trim()); 
      } catch (Exception ignore) { 
      } 
      return member; 
     } 
    } 

    public List<Member> getUsersByCreateTimestamp() { 
     AndFilter andFilter = new AndFilter(); 
     andFilter.and(new GreaterThanOrEqualsFilter("createTimestamp" "20160803000000")); 
     andFilter.and(new LessThanOrEqualsFilter("createTimestamp", "20160804000000")); 

     List<Member> allMembers = new ArrayList<Member>(); 
     List<Member> members = ldapTemplate.search("", andFilter.encode(), searchControls, new MemberMapper()); 
     allMembers.addAll(members); 
     return allMembers; 
    }