1. 程式人生 > >spring security多入口登入

spring security多入口登入

專案中集成了ldap的驗證,從其他應用跳轉過來希望不進行二次登入。

因為ldap的使用者名稱和密碼已經在登入中滅失,所以無法在應用中做再次提交驗證。

幸好其他應用和專案是可以共享資料庫,所以用資料庫共享使用者資訊進行免手工登入驗證。

具體是其他應用對資料庫表portal_admin插入一條使用者登入請求,使用者名稱不變,密碼用一串隨機字元。

專案配置多入口

<security:authentication-manager>
<security:authentication-provider>
<security:jdbc-user-service 
users-by-username-query="select portal_id as username, portal_admin as password, 1 as enabled from pmart.portal_admin where portal_id = ?" 
authorities-by-username-query="select user_id as username, role_id as authority from pmart.portal_user2role where user_id = ?"
data-source-ref="dataSource"/>
</security:authentication-provider>
<security:authentication-provider ref="ldapActiveDirectoryAuthProvider" />
</security:authentication-manager>

在這個配置下,會首先用jdbc-user-service進行驗證,如果沒通過則使用ldap進行驗證。

專案達到其他應用跳轉不需要手工登入的目的。

spring security的好處是,僅僅通過xml的配置就可以完成各種驗證的任務。

當然,特殊目的可以自己擴充套件程式設計。