2010-08-06 45 views
5

有沒有更好的方法檢查javax.naming.AuthenticationException(或彈簧)的主要失敗原因? LDAP Wiki (Binding Errors)中定義了不同的錯誤。是否有一個更好的方法來分析錯誤代碼的AuthenticationException?

AuthenticationException沒有提供足夠的API來輕鬆確定錯誤代碼。唯一的內容是異常消息。

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

的identifing塊是 「數據773」 - 靜置錯誤ERROR_PASSWORD_MUST_CHANGE。但我覺得很奇怪檢查message.contains("data 773")!有沒有更好的方法來檢查錯誤代碼?


其拋出AuthenticationException的片段被寫入與org.springframework.security.ldap.DefaultSpringSecurityContextSource

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

回答

5

不幸的是,這是我看到它處理的唯一方式,因爲我有Active Directory經驗的LDAP服務產生的失敗代碼始終編碼消息中的失敗代碼。即使這不是一個很好的做事方式,也不要覺得太糟糕。

1

據我所知,沒有更好的實施。您可以嘗試爲外部文件中的ldap錯誤代碼提供整個翻譯並使用它們進行翻譯。

相關問題