2014-10-30 65 views
3

。我的問題是,我不知道如何將登錄查詢與我的用戶數據庫連接起來。我已經檢查了密碼(有散列),但我只能查詢在春天登錄使用<strong>春天</strong>與<strong>MongoDB的</strong>和<strong>thymeleaf</strong>我的MongoDB

@Override 
public void init (AuthenticationManagerBuilder auth) throws Exception { 
    auth.inMemoryAuthentication() 
     .withUser("user").password("password").roles("USER"); 
} 

方法中初始化的用戶。有人能幫我嗎?

回答

1

終於有了!這guide和@ helmy的帖子是一個很好的幫助。額外的點是寫

@Override 
public void init(AuthenticationManagerBuilder auth) throws Exception { 
    auth.userDetailsService(mongoSecurityService); 
} 

,如果你不使用.xml配置並添加CustomMongoService。謝謝!

編輯:

你應該在你的項目文件夾中的類WebSecurityConfiguration extends WebSecurityConfigurerAdapter。在這個類中寫下:

@Configuration 
protected static class AuthenticationConfiguration extends GlobalAuthenticationConfigurerAdapter { 

    @Autowired 
    public CustomMongoSecurityService mongoSecurityService; 

    @Override 
    public void init(AuthenticationManagerBuilder auth) throws Exception { 
     auth.userDetailsService(mongoSecurityService).and() 
       .inMemoryAuthentication() 
       .withUser("user").password("password").roles("USER").and() 
       .withUser("admin").password("1234").roles("ADMIN"); 
    } 

} 

希望有所幫助。

+0

我應該把這個init放在哪裏? – smotru 2015-04-19 12:07:02

+1

@smotru看到更新的答案。 – Chryb 2015-04-20 15:13:42

1

也許最簡單和最常見的方法是實現您自己的UserDetailsService,它將有一個loadUserByUsername()方法,該方法將從MongoDB獲取UserDetails對象。

Here是一個很好的教程,基於XML配置。您可能還想查看關於AuthenticationProviders如何工作的Spring Security docs

+0

好吧,我會試試看。謝謝! – Chryb 2014-10-30 13:58:05

+0

但不幸的是,我仍然不知道應該在哪裏放置.xml文件。我沒有任何.jsp文件 – Chryb 2014-10-30 14:50:01

+0

有沒有關於thymeleaf + spring + mongodb的教程? – Chryb 2014-10-30 15:23:21

相關問題