簡體   English   中英

Java Tomcat LDAP身份驗證

[英]Java Tomcat LDAP authentication

由於我使用Tomcat6作為servlet容器運行Java,因此我發現使用Tomcat JNDIRealm功能是合適的,這樣LDAP用戶就可以登錄我的站點而無需任何額外的工作。 我正在使用的LDAP服務器是Ubuntu上的OpenLDAP

除此之外,我還通過https連接使用基於表單的身份驗證登錄頁面。

我通過LDAP找到了兩個非常好的身份驗證用戶示例,無論是在這里還是在這里 ,都能實現我幾乎實現的目標。 為何幾乎實現?

當我嘗試使用錯誤的憑據登錄時,我已適當地發送到<form-error-page>login-failed.html

當我的憑據良好並且我成功進行身份驗證后,我開始網站中的所有網址獲取403 我不能刪除403錯誤(甚至不是登錄頁面!),除非我重新啟動Tomcat。

我懷疑原因是因為我沒有在領域中設置roles或正確設置其他配置文件。 為了簡潔起見,我將相關的配置文件摘錄放在pastebin上

請注意,基於Tomcat的auth工作正常,因為角色很容易附加到tomcat-users.xml的用戶。 因此,我認為在成功通過身份驗證后,從LDAP獲取經過身份驗證的用戶角色是一個問題。

TL / DR

我在將Tomcat連接到LDAP身份驗證時遇到配置問題。 用戶數據正確獲取,但不是用戶的角色。 可根據要求提供LDAP日志消息;)

更新 :我在這里粘貼了LDAP數據。

那是對的。 JNDIRealm找不到您的LDAP角色。 您需要在Tomcat之外測試您的角色搜索字符串,以確保它產生您認為應該產生的內容。 由於您未提供任何LDAP詳細信息,因此無法進一步發表評論。

使用/ *在整個站點上設置安全權限是錯誤的。 您需要從需要角色中排除登錄頁面,可能還包括首頁和忘記密碼頁面,可能更多。

暫無
暫無

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

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