2013-09-04 90 views
6

Tôi cố gắng để lấy LDAP tài thuộc tính nội bộ, nhưng không thể tìm cách lấy chúngBắt Thuộc tính nội bộ của LDAP Object

DirContext ctx = this.getDirContext(); 
List<Employee> list = new ArrayList<Employee>(); 
NamingEnumeration<SearchResult> results = null; 
try { 
    SearchControls controls = new SearchControls(); 
    controls.setSearchScope(SearchControls.SUBTREE_SCOPE); 
    results = ctx.search("", "(objectclass=person)", controls); 
    while (results.hasMore()) { 
    SearchResult searchResult = results.next(); 
    Attributes attributes = searchResult.getAttributes(); 
    String fullName = this.getValue(attributes.get("cn")); 
    //so on... 
} 
// so on 

từ LDAP, tôi muốn lấy mỗi nhân viên/người thuộc tính nội bộ quá. Bởi mặc định, nó không trả lại thuộc tính nội bộ [ví dụ: createTimestamp]

enter image description here

Trả lời

12

Bạn sẽ không nhận được bất kỳ thuộc tính hoạt động trừ khi bạn yêu cầu cho họ. Hiện tại, bạn không yêu cầu bất kỳ thuộc tính nào, tương đương với việc xây dựng SearchControls hoặc gọi SearchControls.setReturningAttributes(String[]) sau đó, sử dụng đối số new String[]{"*"}: điều này sẽ cung cấp cho bạn tất cả các thuộc tính không hoạt động.

Để nhận các thuộc tính hoạt động, hãy sử dụng đối số new String[]{"*","+"}.

+0

Cảm ơn, đã giải quyết được sự cố của tôi – Reddy

Các vấn đề liên quan