2014-05-18 83 views
1

我正在使用彈簧引導。我想發佈一個用戶名和密碼參數登錄,如果登錄成功,然後返回一個令牌。之後,我將使用令牌來判斷登錄狀態。這是我的安全配置代碼。但我不知道在哪裏寫登錄認證邏輯代碼。如何使用spring boot安全性實現身份驗證?

SecurityConfig.java

@Configuration 
@EnableWebSecurity 
public class SecurityConfig extends WebSecurityConfigurerAdapter { 



    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http.authorizeRequests() 
       .anyRequest() 
       .fullyAuthenticated() 
       .and() 
       .formLogin() 
       .loginPage("/user/unlogin") 
       .permitAll(); 
    } 

    @Override 
    public void configure(WebSecurity web) throws Exception { 
     web.ignoring().antMatchers("/user/login") 
       .antMatchers("/user/logout") 
       .antMatchers("/user/register"); 
    } 
} 

==========================

謝謝!

回答

3

總有不止一種方法可以與Spring做些什麼。 Spring Boot有一條快樂的道路(可能),你似乎已經開始了。但請注意,如果您希望Boot提供某些默認行爲,則請勿使用@EnableWebSecurity(如用戶指南中的建議)。 web-secure sample有一個示例,您可以按照。

如果您使用formLogin(),則默認登錄URL是/login(而不是/user/login),因此您應該能夠將該用戶名和密碼發佈到該端點進行身份驗證。不要使用web.ignoring()/login添加到不安全的路徑,否則Spring Security將永遠不會處理它。當您發佈到/login時,您會收到一張JSESSIONID Cookie。這是您的身份驗證令牌,當會話在服務器中過期時(默認情況下爲30分鐘,但易於配置),會過期。將它包含在未來對安全資源的請求中 - 一些HTTP客戶端甚至會爲你做這些(就像瀏覽器一樣)。

相關問題