Мне интересно, как я должен создавать пользовательскую страницу входа. Нужно ли явно создавать для нее контроллер? если так, как бы я это сделал?
вот мой текущий файл конфигурации безопасности
@Override
protected void configure(HttpSecurity http) throws Exception {
//requests for /stats page has ADMIN privileges only
http.authorizeRequests().antMatchers("/stats").hasRole("ADMIN")
.and().formLogin().loginPage("/login");
//everything else ADMIN and USERS can see
http.authorizeRequests().antMatchers("/").hasAnyRole("ADMIN","USER")
.and().formLogin().loginPage("/login");
http.authorizeRequests().antMatchers("/register").permitAll();
}
@Autowired
DataSource dataSource;
@Autowired
public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication().dataSource(dataSource)
.passwordEncoder(passwordEncoder());
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
и моя временная страница входа (просто тестирую, чтобы увидеть, что мы можем туда попасть)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 5 Transitional//EN" "http://www.w3.org/TR/html5/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login</title>
</head>
<body>
<form name="login" action="login" method="POST">
<label>
Username:
<input type="text" placeholder="username" required>
</label>
</form>
</body>
</html>
проблема сейчас заключается в том, что всякий раз, когда я пытаюсь получить доступ к любой странице, я получаю следующую ошибку
There was an unexpected error (type=Not Found, status=404).
No message available
Редактировать: Попытка зарегистрировать представление с использованием руководств в комментариях приводит к той же ошибке
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry r) {
r.addViewController("/login.html").setViewName("login");
r.setOrder(Ordered.HIGHEST_PRECEDENCE);
}