#html #spring #spring-boot #spring-security
#HTML #spring #spring-boot #spring-security
Вопрос:
я перешел по этой ссылке для всех конфигураций, чтобы настроить ссылку на мою пользовательскую страницу html для входа в систему. Однако, когда я получаю доступ к localhost / login, я сталкиваюсь со статусом ошибки 500.
Я не могу отобразить простую HTML-страницу при доступе к localhost: 8080 / login.
- Нужны ли дополнительные настройки?
- Должна ли html-страница находиться в папке templates? Как приложение узнает, что оно должно отображаться «login.html » ?
- Распознается ли мой контроллер?
конфигурация
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";
}
}