差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
java:ldap:spring:object-relation [2016/05/05 23:43] tony |
java:ldap:spring:object-relation [2023/06/25 09:48] (目前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
{{tag>ldap spring spring-ldap spring-security}} | {{tag>ldap spring spring-ldap spring-security}} | ||
- | ====== Spring-Security with LDAP物件關係 ====== | + | ====== Spring-Security with LDAP物件關係(整理中) ====== |
+ | ===== Introduction ===== | ||
+ | 本篇主要記載Spring-Security-LDAP中,我們有使用到的物件去做說明。我們目的是整合LDAP與AD驗證,其中為了滿足我們的需求,有對不少Spring所提供的物件做擴充。這部分有機會再另外分享。 | ||
===== Configuration With Code ===== | ===== Configuration With Code ===== | ||
以我的範例來說,首先會透過資料庫做登入認證,接著會是AD,最後是LDAP。而透過程式碼配置的方式,會去extend [[http://docs.spring.io/spring-security/site/docs/current/apidocs/org/springframework/security/config/annotation/web/configuration/WebSecurityConfigurerAdapter.html|WebSecurityConfigurerAdapter]];接著override configure的method,[[http://docs.spring.io/spring-security/site/docs/current/apidocs/org/springframework/security/config/annotation/authentication/builders/AuthenticationManagerBuilder.html|AuthenticationManagerBuilder]]可以讓你配置AuthenticationProvider: | 以我的範例來說,首先會透過資料庫做登入認證,接著會是AD,最後是LDAP。而透過程式碼配置的方式,會去extend [[http://docs.spring.io/spring-security/site/docs/current/apidocs/org/springframework/security/config/annotation/web/configuration/WebSecurityConfigurerAdapter.html|WebSecurityConfigurerAdapter]];接著override configure的method,[[http://docs.spring.io/spring-security/site/docs/current/apidocs/org/springframework/security/config/annotation/authentication/builders/AuthenticationManagerBuilder.html|AuthenticationManagerBuilder]]可以讓你配置AuthenticationProvider: | ||
行 37: | 行 39: | ||
</code> | </code> | ||
以上程式碼的三個主要部分為: | 以上程式碼的三個主要部分為: | ||
- | jdbcAuthentication(): 建立JdbcUserDetailsManager去透過資料庫做驗證。\\ | + | * jdbcAuthentication(): 建立JdbcUserDetailsManager去透過資料庫做驗證。 |
- | ldapAuthentication(): 建立LdapAuthenticationProvider去透過Ldap做驗證。\\ | + | * ldapAuthentication(): 建立LdapAuthenticationProvider去透過Ldap做驗證。 |
- | authenticationProvider(): 將ActiveDirectoryLdapAuthenticationProvider加到Provider列表中,去透過AD做驗證。\\ | + | * authenticationProvider(): 將ActiveDirectoryLdapAuthenticationProvider加到Provider列表中,去透過AD做驗證。 |
\\ | \\ | ||
假如你想做更多的變化,也可以自行實做AuthenticationProvider將這些東西串起來。 | 假如你想做更多的變化,也可以自行實做AuthenticationProvider將這些東西串起來。 | ||
行 50: | 行 52: | ||
* Object getCredentials(): 密碼。 | * Object getCredentials(): 密碼。 | ||
* Object getPrincipal(): 帳號。 | * Object getPrincipal(): 帳號。 | ||
- | * Collection<? extends GrantedAuthority> getAuthorities(): 權限。 | + | * Collection<? extends GrantedAuthority> getAuthorities(): 泛指權限。 |
+ | \\ | ||
+ | 接著對LDAP與AD的AuthenticationProvider做說明。 |