Пользовательская страница входа в систему Spring Security в формате html не отображается

#html #spring #spring-boot #spring-security

#HTML #spring #spring-boot #spring-security

Вопрос:

я перешел по этой ссылке для всех конфигураций, чтобы настроить ссылку на мою пользовательскую страницу html для входа в систему. Однако, когда я получаю доступ к localhost / login, я сталкиваюсь со статусом ошибки 500.

Я не могу отобразить простую HTML-страницу при доступе к localhost: 8080 / login.

  1. Нужны ли дополнительные настройки?
  2. Должна ли html-страница находиться в папке templates? Как приложение узнает, что оно должно отображаться «login.html » ?
  3. Распознается ли мой контроллер?

конфигурация

 import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@EnableWebSecurity
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {


    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                    .anyRequest().fullyAuthenticated()
                    .and()
                .formLogin()
                    .loginPage("/login")
                    .permitAll();

    }

}
  

контроллер.

 import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class LoginController {

    @GetMapping("/login")
    public String login() {
        return "login";
    }
}
  

замена «login» выше на «below» также показывает ошибку.

 <h1> Login page <h1>  

зависимости в pom.xml

 <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.ldap</groupId>
        <artifactId>spring-ldap-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-ldap</artifactId>
    </dependency>
    <dependency>
        <groupId>com.unboundid</groupId>
        <artifactId>unboundid-ldapsdk</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
        <version>1.4.193</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>
  

login.html находится в шаблонах.
сообщение об ошибке:

 javax.servlet.ServletException: Circular view path [login]: would dispatch back to the current handler URL [/login] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)
  

Комментарии:

1. Не могли бы вы поделиться своим кодом? Хотя я ценю ссылку на видео, ее обработка отнимает у читателей много времени.

2. Я добавил код, который использовался.

3. Пока код выглядит нормально. Сможете ли вы поделиться своим примером кода через GitHub?

4. Мне удалось самостоятельно решить эту проблему и оставить ее в качестве ответа ниже.

Ответ №1:

Мне удалось решить эту проблему. Основная проблема заключалась в том, что мой artefactID также был назван login . Это привело ко всему другому контексту «login», включая «login.html » подлежит аннулированию. Я изменил свой контроллер на приведенный ниже и изменил свой html-файл на login2.html это сработало.

 import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class LoginController {

    @GetMapping("/login")
    public String login2() {
        return "login2";
    }
}