2015-01-22 15 views
6

Ho cercato di aggiungere il login personalizzato Spring Security (Java Config) nella mia applicazione, ma uno strano errore continua a spuntare.Errore di accesso personalizzato di sicurezza Spring

Ho passato il Creating a Custom Login Form tutorial e funziona perfettamente. Non sono sicuro di quale sia il problema con la mia applicazione.

errore

Causato da: java.lang.IllegalArgumentException: '? Login errore' non è un URL di reindirizzamento valida

Security Config

@Configuration 
@EnableWebSecurity 
public class SecurityConfig extends WebSecurityConfigurerAdapter { 
    @Autowired 
    public void configure(AuthenticationManagerBuilder auth) 
      throws Exception { 
     auth 
     .inMemoryAuthentication() 
      .withUser("user").password("password").roles("USER"); 
    } 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http.authorizeRequests().antMatchers("/", "/about").permitAll(); 
     http 
     .authorizeRequests() 
     .antMatchers("/admin","/admin/**").hasRole("ADMIN") 
     .anyRequest().authenticated() 
     .and() 
     .formLogin() 
     .loginPage("login") 
     .permitAll(); 
    } 
} 

Logi nController

@Controller 
public class LoginController { 

    @RequestMapping(value = "login", method = RequestMethod.GET) 
    public String loginView() { 
     return "login"; 
    } 

    @RequestMapping(value = "login", method = RequestMethod.POST) 
    public String login(@ModelAttribute Login login) { 
     return "home"; 
    } 
} 

Proprio commentando il metodo configure(HttpSecurity http) rimuove l'eccezione. Ho provato ad aggiungere RequestMapping con il valore login?error, ma non è stato d'aiuto. Cosa mi manca qui?

Link to complete stack trace

risposta

11

tuo manca una barra.

questo:

 .loginPage("login") 

dovrebbe essere:

 .loginPage("/login") 
+0

Beh, la barra viene lasciato fuori perché il mio controller è dotato di un 'RequestMapping' di "login" al posto di "/ login" – ItachiUchiha

+0

@ItachiUchiha I valori di '@ RequestMapping' dovrebbero iniziare anche con'/'. – holmis83

+0

È obbligatorio? Prima di aggiungere la sicurezza di primavera, tutto funzionava perfettamente senza '/' – ItachiUchiha

Problemi correlati