Здравствуйте я начинающий программист, так что просьба не кидаться тапками, возникла следующая проблема со Spring Security, используя Spring boot parent 2.0.1RELEASE, я сначала настроил security так чтобы он брал пользователей из бд, все отработало без ошибок, в логах видны запросы к бд, меня редиректнуло в корень, в общем все как надо отработало, но как только я добавил свою форму, при нажатии сабмита, меня просто так же редиректит на саму страницу логина, запросов к бд нет, но эта форма ловит все поползновения к корню, и соответственно я не могу попасть внутрь, я уже просто в тупике ребят, вот конфигурация security
import com.grabduck.demo.springsecurity.services.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
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.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserService userService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/readme.txt", "/css/*").permitAll()
.anyRequest().authenticated()
.and()
.formLogin().loginPage("/login").permitAll()
.and()
.logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")).permitAll();
}
@Bean
public PasswordEncoder bcryptPasswordEncoder() {
return new BCryptPasswordEncoder();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.userDetailsService(userService)
.passwordEncoder(bcryptPasswordEncoder());
}
}
И контроллер
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class UserController {
@RequestMapping("/")
public String start(){
return "index";
}
@RequestMapping("/login")
public String getLogin(@RequestParam(value = "error", required = false) String error,
@RequestParam(value = "login", required = false) String login,
Model model){
model.addAttribute("error", error!=null);
model.addAttribute("login", login!=null);
return "login";
}
}
И мой шаблон на thymekeaf
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link href="../static/css/style.css" th:href="@{/css/style.css}" rel="stylesheet"/>
<title>HobNob.Authorization</title>
</head>
<body>
<div class="containerHB">
<h >HobNob</h>
</div>
<div class="container">
<form th:action="@{/login.html}" method="post">
<label for="username">Username</label>:
<input type="text" id="username" name="username" autofocus="autofocus" placeholder="Username"/> <br />
<label for="password">Password</label>:
<input type="password" id="password" name="password" placeholder="Password"/> <br />
<button type="submit">sub</button>
</form>
</div>
</body>
</html>
Я не знаю что еще можно скинуть, ибо все остальное без кастомной формы работает
spring security, thymeleaf