2017-04-30 3 views
0

Derzeit versuchen, eine einfache Anmeldung mit Feder Security zu erstellen, aber ich bekomme einen Fehler, der vermutlich aufgrund etwas ist, das ich falsch mit Resolver-Ansicht oder Controller mache. Kann einfach nicht herausfinden, was. Ich erhalte den folgenden Fehler:Einrichten einer benutzerdefinierten Login-Seite mit Feder-Sicherheitsprobleme

"Es ist ein unerwarteter Fehler aufgetreten (Typ = Interner Serverfehler, Status = 500). Circular view path [home]: Versendet erneut an die aktuelle Handler-URL [/ home] Ihre ViewResolver Setup! (Hinweis: Dies kann das Ergebnis einer nicht näher Ansicht sein, aufgrund Ansicht Name Generation auf die Standard.)“

My Config:

@EnableWebSecurity 
public class SecurityConfig extends WebSecurityConfigurerAdapter{ 

    public void configure(AuthenticationManagerBuilder auth) throws Exception { 

     auth.inMemoryAuthentication() 
       .withUser("user") 
       .password("password") 
       .roles("USER"); 
    } 

    public void configureGlobal(HttpSecurity http) throws Exception { 


     http.authorizeRequests() 
       .antMatchers("/resources/**").permitAll() 
       .anyRequest().authenticated() 
       .and() 
       .formLogin() 
       .loginPage("/loginpage") 
       .permitAll().and() 
       .logout(); 
    } 

    @Bean 
    public ViewResolver viewResolver(){ 
     InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
     resolver.setViewClass(JstlView.class); 
     resolver.setPrefix("/resources/templates"); 
     resolver.setSuffix(".html"); 
     return resolver; 
    } 

    public void addViewController(ViewControllerRegistry registry){ 
     registry.addViewController("/home").setViewName("home"); 
     registry.addViewController("/loginpage").setViewName("loginpage"); 
    } 
} 

Controller:

@Controller 
public class loginController { 

    @RequestMapping("/home") 
    public String homePage(Model model){ 

     return "home"; 
    } 

    @GetMapping("/loginpage") 
    public String loginGetter(Model model){ 

     return "loginpage"; 
    } 
} 

Login page: 

<!DOCTYPE html> 
<html lang="en" xmlns:th="http://www.thymeleaf.org"> 
<head> 
    <title>Title</title> 
</head> 
<body> 
<div th:if="${param.error}"> 
Something is wrong 
</div> 
<div th:if="${param.logout}"> 
You have logged out 
</div> 
    <div> 
     <form action="@{loginpage}" method="post"> 
      <div><label>Username: <input type="text" name="username"/></in></label></div> 
      <div><label>Password: <input type="text" name="password"/></label></div> 
      <div><input type="submit" value="Sign in"/></in></div> 
     </form> 
    </div> 
</body> 
</html> 
Pom

My:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.ronone</groupId> 
    <artifactId>SecurityTutorial</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <dependencies> 
     <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web --> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
      <version>1.5.2.RELEASE</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-core --> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-core</artifactId> 
      <version>4.2.2.RELEASE</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-web --> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-web</artifactId> 
      <version>4.2.1.RELEASE</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-config --> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-config</artifactId> 
      <version>3.2.0.RELEASE</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf-spring3 --> 
     <dependency> 
      <groupId>org.thymeleaf</groupId> 
      <artifactId>thymeleaf-spring3</artifactId> 
      <version>3.0.3.RELEASE</version> 
     </dependency> 


    </dependencies> 


</project> 
+0

Die Pom-Datei hinzugefügt –

+1

können Sie die @Configuration-Annotation für Ihre SecurityConfig-Klasse deklarieren? –

+0

@georgesvan das war es, danke Alter –

Antwort

0

Try this:

@EnableWebSecurity 
@Configuration 
public class SecurityConfig extends WebSecurityConfigurerAdapter{ ...} 

eine Klasse mit dem @Configuration Anmerkungen versehen zeigt an, dass die Klasse durch die Feder IoC Behälter als Quelle der Bohne Definitionen verwendet werden.

Verwandte Themen