2016-08-02 73 views
0

是否有可能通過PUMA的REST服務上的createTimestamp屬性來查找用戶?搜索其他屬性效果很好,但如果type屬性是dateTime,我會得到不同的錯誤,如http://www-01.ibm.com/support/docview.wss?uid=swg1PM54864通過createTimestamp爲PUMA搜索用戶提供的REST服務

我需要找到早些時候創建的用戶。

我嘗試這樣做:

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' 

,甚至平等是不工作

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

回答

0

我通過LDAP解決了這個問題。

@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; 
    }