SpringSecurity(六):配置多個數據源


在我們進行登錄時,如果用戶數據來自不同的表,在一個表中查不到就去另一個表查,我們就需要配置多個數據源

經過(五)的分析,我們知道了認證需要經過ProviderManager,ProviderManager對應多個AuthenticationProvider,而每個AuthenticationProvider都對應一個UserDetailsService,每個UserDetailsService對應一個數據源

我們只需要編寫多個UserDetailsService即可,我們以賬號/密碼登錄方式為例

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter{
@Autowired
MyUserDetailsService1 userDetailsService1;
@Autowired
MyUserDetailsService2 userDetailsService2;

@Override
@Bean
public AuthenticationManager authenticationManagerBean() throws Exception{
    //創建多個AuthenticationProvider,並為他們注入UserDetailsService
    DaoAuthenticationProvider dao1=new DaoAuthenticationProvider();
    dao1.setUserDetailsService(userDetailsService1);


    DaoAuthenticationProvider dao2=new DaoAuthenticationProvider();
    dao2.setUserDetailsService(userDetailsService2);


    //創建ProviderManager,並注入AuthenticationProvider
    ProviderManager manager=new ProviderManager(dao1,dao2);
    return manager;

}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM