2016-08-03 39 views
0

我試圖在Spring中學習@EnableGlobalMethodSecurity註釋。這是一個似乎不適合我的例子。@PreAuthorize(「isAuthenticated()」)重定向服務器太多次

這個工程:比方說,我有一個全局控制器,顯示已登錄的用戶名在每一頁上,像這樣:

@ControllerAdvice 
public class GlobalController { 

    @ModelAttribute("username") 
    public String getCurrUser(Principal principal) { 
     if (principal != null) { 
      return principal.getName(); 
     } 
     return null; 
    } 
} 

這並不工作:相同的控制器,但是我這種時間與preAuthorize註釋。這會返回以下錯誤消息:localhost重定向您太​​多次了。

@ControllerAdvice 
public class GlobalController { 

    @PreAuthorize("isAuthenticated()") 
    @ModelAttribute("username") 
    public String getCurrUser(Principal principal) { 

     return principal.getName(); 
    } 
} 

SecurityConfig類被註解如下:

@Configuration 
@EnableWebSecurity 
@EnableGlobalMethodSecurity(prePostEnabled=true) 
public class SecurityConfig extends WebSecurityConfigurerAdapter { 

... 

所以,我怎麼能解決預授權註釋此錯誤消息?

+0

反向「@Preauthorize和@ModelAttribute .... @ModelAttribute( 「用戶名」)@PreAuthorize( 「isAuthenticated()」) 公共字符串getCurrUser(主主要){ –

+0

試過,但它仍然返回相同的錯誤消息:( –

+0

boolean check = SecurityContextHolder.getContext()。getAuthentication()。isAuthenticated();在第一種方法中試試這個並告訴我結果?? –

回答

0

我最近一直在學習Spring和Spring的安全性。 你的基地網址模式是否有限制? 我試圖將所有登錄重定向到根據我的配置需要身份驗證的同一個點。

查看配置是否正確,並在代碼上正確設置訪問安全性。