2017-09-13 15 views
1

我正在開發一個簡單的項目,以瞭解有關spring的一些信息。如何允許來自某個url的請求與彈簧安全

我已經創建了登錄頁面和所有身份驗證管理,現在我正在嘗試構建註冊頁面,我已經完成了後端和前端,但是我遇到了問題。

「保存」送與路徑用戶/註冊 POST請求的按鈕,但失敗了,網絡控制檯說:,我認爲這是一個安全問題,因爲如果我身份驗證,然後我嘗試註冊用戶的請求是成功的。 所以,也許我需要說,春季安全,註冊請求必須可供所有用戶,也爲未經認證的。 我把路徑用戶/註冊春季啓動,但它不工作,我也只用/註冊

@Override 
    public void configure(WebSecurity web) throws Exception { 
     web.ignoring().antMatchers("/script/**", "/css/**", "/getRegisterPage","user/signup"); 
    } 

這是項目嘗試:https://github.com/StefanoPisano/expenses(分支0.2)

回答

1
@Override 
protected void configure(HttpSecurity http) throws Exception { 
    http.authorizeRequests() 
      .antMatchers("/script/**", "/css/**", "/getRegisterPage","/user/signup").permitAll() 
      .anyRequest().authenticated() 
      .and() 
     .formLogin() 
      .loginPage("/getLoginPage") 
      .loginProcessingUrl("/login") 
      .usernameParameter("username") 
      .passwordParameter("password") 
      .defaultSuccessUrl("/home", true) 
    .permitAll(); 
} 
+0

使用那一個它說403 – untruste

+0

403是什麼請求? –

+0

http:// localhost:8080/user/signup – untruste

1

web.ignoring().antMatchers("/script/**", "/css/**", "/getRegisterPage","/user/signup"); 

會忽略與這些模式的所有請求。

你需要的是:

@Override 
protected void configure(HttpSecurity http) throws Exception { 
    http 
     .authorizeRequests() 
      .antMatchers("/resources/**", "/user/signup").permitAll() 
      .anyRequest().fullyAuthenticated() 
      .and() 
     .formLogin() 
      .loginPage("/getLoginPage") 
      .loginProcessingUrl("/login") 
      .usernameParameter("username") 
      .passwordParameter("password") 
      .defaultSuccessUrl("/home", true) 
      .permitAll(); 

    http 
     .csrf().disable(); 
} 

permitAll() - 允許任何人(包括未經身份驗證的用戶)訪問的URL。 查看更多的信息https://docs.spring.io/spring-security/site/docs/current/reference/html/jc.html

+0

它返回'403':( – untruste

+0

不能正常工作,它會再次返回302 – untruste

+0

哪個請求? –