Tôi đã cấu hình Spring Security để xác thực đối với máy chủ LDAP.Xác nhận mùa xuân LdapAuthentication và tải từ cơ sở dữ liệu cục bộ
<security:authentication-manager >
<security:ldap-authentication-provider user-dn-pattern="uid={0}" />
</security:authentication-manager>
Sau khi xác thực Tôi muốn tải vai trò từ cơ sở dữ liệu cục bộ cho cùng một người dùng. Làm cách nào để tải vai trò cơ sở dữ liệu cục bộ bằng "ldap-authentication-provider"?
Nếu tôi thêm nhà cung cấp chứng thực thứ hai như sau:
<security:authentication-manager >
<security:ldap-authentication-provider user-dn-pattern="uid={0}" />
<security:authentication-provider ref="daoAuthenticationProvider" />
</security:authentication-manager>
daoAuthenticationProvider
thêm vào, nhưng mùa xuân không sử dụng các nhà cung cấp thứ hai khi nhà cung cấp auth đầu tiên xác thực người dùng. Chỉ khi nhà cung cấp auth đầu tiên không xác thực nó đi tiếp theo trong danh sách.
Vì vậy, về cơ bản trông giống như chúng ta phải tùy chỉnh
<security:ldap-authentication-provider user-dn-pattern="uid={0}" />
để tải vai trò từ cơ sở dữ liệu địa phương.
Mọi đề xuất? Điều này nên được thực hiện như thế nào?
Đây hoàn toàn là những gì tôi đang tìm kiếm. – user2072797
Có cách nào để thêm userId vào Người dùng không. map empId từ ldap đến thuộc tính userId trong đối tượng User. – user2072797
Câu hỏi này dường như không liên quan đến câu hỏi gốc. Nó có thể tốt hơn nếu bạn cải cách nó và đăng lên như một câu hỏi mới, bởi vì hiện tại chỉ có tôi mới có thể nhìn thấy nó (thực tế), trong khi những người dùng khác có thể cung cấp cho bạn câu trả lời tốt hơn. Dù sao, việc ánh xạ các thuộc tính người dùng từ ldap sang DB là hoàn toàn có thể, nhưng nó không phải là thứ bạn có thể làm với Spring Security. – zagyi