簡體   English   中英

spring LDAP不拋出具體錯誤碼

[英]spring LDAP does not throw specific error code

環境

  1. LDAP 服務器:TurnKey OpenLDAP
  2. Spring-ldap-core 版本:2.3.3.RELEASE

什么是活動

  1. 用戶被鎖定在 LDAP 服務器中
  2. 用戶嘗試通過我們的 webapp 登錄
  3. 登錄失敗
  4. 錯誤代碼 49 - 拋出無效憑據

預期什么

應拋出特定異常(例如:錯誤代碼 775 USER_ACCOUNT_LOCKED)

例外

異常中沒有找到注釋數據等一些信息

org.springframework.ldap.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]; nested exception is javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]
    at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:191)```

LDAP 協議 RFC沒有為拒絕的身份驗證請求提供所需的粒度級別,它只是錯誤代碼 49 invalidCredentials。 標准中沒有鎖定帳戶。

在另一個關於錯誤代碼的LDAP wiki 文檔中,它還指定錯誤代碼 49 對鎖定的帳戶有效。

如果您熱衷於使用此功能,您可以選擇控制您的安全層並為您的應用程序設置最大重試次數(而不是依賴第三方 LDAP 服務器中的默認設置),跟蹤是否已達到,並且拋出/返回您想要的適當響應。 我可以在這篇文章中看到一個如何做到這一點的示例,但如果你想以這種方式 go,我會花更多的時間來尋找最佳解決方案。

LDAP 規范是基礎。 它定義了錯誤代碼。 LDAP 的實現,例如 OPEN_LDAP、ACTIVE_DIRECTORY 等。可能會定義自己的子錯誤代碼和異常消息。 Active Directory 在錯誤消息中提供自己的子錯誤代碼。 ldap 相關 rfcs活動目錄錯誤代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM