2016-09-16 76 views
-1

我需要在主頁之前顯示登錄頁面。如果用戶名和密碼對用戶是正確的,那麼我需要移動到主頁。但是在這個程序中主頁是首先顯示的,當我輸入'/ login'時只顯示登錄頁面。 我該如何首先顯示登錄頁面,並且在用戶認證之後,首頁需要顯示?如何使用spring security在首頁之前顯示登錄頁面?

這是我在安全配置類中的代碼。我已經跳過其他部分,因爲只有從這裏程序處理。

protected void configure(HttpSecurity http) throws Exception { 
     http.authorizeRequests() 
     .antMatchers("/home").access("hasRole('User')") 
     .and() 
     .formLogin().loginPage("/login").defaultSuccessUrl("/home") 
     .usernameParameter("username").passwordParameter("password") 
     .and() 
     .csrf() 
     .and() 
     .exceptionHandling().accessDeniedPage("/accessDenied"); 
    } 

這是我的控制器類

@Controller 
public class LoginController { 

    @RequestMapping(value = "/login", method = RequestMethod.GET) 
    public String loginPage(ModelMap model, 
      @RequestParam(value = "logout", required = false) String logout, 
      @RequestParam(value = "error", required = false) String error) { 

     return "login"; 
    } 

    @RequestMapping(value = {"/","/home"}, method = RequestMethod.GET) 
    public String homePage(ModelMap model) { 
     model.addAttribute("greeting", "Hi, Welcome to mysite"); 
     return "welcome"; 
    } 

    @RequestMapping(value = "/accessDenied", method = RequestMethod.GET) 
    public String loginPage() { 
     return "accessDenied"; 
    } 
} 

回答

2

我懷疑你的URL /下訪問主頁。在僅適用於/home要記錄的要求:

.antMatchers("/home").access("hasRole('User')") 
+0

你能告訴我如何將URL從http更改://本地主機:8080/SpringProject1 /到http://本地主機:8080/SpringProject1 /登錄在春季應用程序開始使用安全性?我得到http:// localhost:8080/SpringProject1 /始終在應用程序的開始。 – bthapa

相關問題