2010-08-06 3 views
5

Có cách nào khác để kiểm tra số javax.naming.AuthenticationException (hoặc mùa xuân) vì lý do lỗi chính không? Các lỗi khác nhau được giải mã trong LDAP Wiki (Binding Errors).Có cách nào khác để phân tích AuthenticationException cho mã lỗi không?

AuthenticationException không cung cấp API đầy đủ để xác định dễ dàng mã lỗi. Nội dung duy nhất là thông báo ngoại lệ.

[LDAP: error code 49 - 80090308: 
LdapErr: DSID-0C090334, 
comment: AcceptSecurityContext error, data 773, vece] 

Khối nhận dạng là "dữ liệu 773" - đứng cho lỗi ERROR_PASSWORD_MUST_CHANGE. Nhưng nó cảm thấy rất lạ với tôi để kiểm tra message.contains("data 773")! Có cách nào tốt hơn để kiểm tra mã lỗi không?


Đoạn mã ném AuthenticationException được viết bằng org.springframework.security.ldap.DefaultSpringSecurityContextSource.

InitialLdapContext context = (InitialLdapContext) contextFactory 
        .getReadWriteContext(principal, password); 

Trả lời

5

Thật không may, đây là cách duy nhất tôi thấy nó được xử lý vì mã lỗi do dịch vụ LDAP mà tôi có trải nghiệm (Active Directory) luôn mã hóa mã lỗi trong thông báo. Đừng cảm thấy quá tệ mặc dù đây không phải là cách hay để làm việc.

1

Theo tôi biết, không có triển khai nào tốt hơn cho việc này. Bạn có thể thử cung cấp toàn bộ bản dịch cho các mã lỗi ldap trong một tệp bên ngoài và sử dụng chúng để dịch.