Как реализовать регистрацию пользователя в Spring Security (thymeleaf)?
Вот таким образом в моем проекте я добавил 2-ух пользователей вручную:
@Bean
@Override
protected UserDetailsService userDetailsService() {
return new InMemoryUserDetailsManager (
org.springframework.security.core.userdetails.User.withDefaultPasswordEncoder()
.username("user")
.password("password")
.roles(User.UserRole.USER.name())
.build(),
org.springframework.security.core.userdetails.User.withDefaultPasswordEncoder()
.username("admin")
.password("password")
.roles(User.UserRole.ADMIN.name())
.build()
);
}
Вот моя форма для входа:
<aside class="col-4">
<div th:if="${param.error}" class="text-danger">
Invalid username and password.
<br><br>
</div>
<div th:if="${param.logout}" class="text-danger">
You have been logged out.
<br><br>
</div>
<div class="card">
<article class="card-body">
<a href="/signup" class="float-right btn btn-outline-primary">Sign up</a>
<h4 class="card-title mb-4 mt-1">Sign in</h4>
<form th:action="@{/login}" method="post">
<div class="form-group">
<label>Your name</label>
<input name="username" class="form-control" placeholder="Username" type="text">
</div>
<div class="form-group">
<a class="float-right" href="#">Forgot?</a> <!---->
<label>Your password</label>
<input name="password" class="form-control" placeholder="******" type="password">
</div>
<div class="form-group"> <!---->
<div class="checkbox">
<label> <input type="checkbox"> Save password </label>
</div>
</div>
<div class="form-group">
<button type="submit" value="Sign In" class="btn btn-primary btn-block"> Login </button>
</div>
<div class="form-group text-center">
<a href="/">Return to main page</a>
</div>
</form>
</article>
</div>
</aside>
Здесь в форме используется th:action="@{/login}" от thymeleaf и, если я ввел правильные данные, я могу залогиниться. Есть ли у thymeleaf такое же, но для регистрации? Например, у меня будет похожая форма и я укажу th:action="@{/signup}". Если такого нет, то как мне реализовать регистрацию? Например после нажатия на кнопку "Sign up" меня бы перебрасывало на какой-то Java класс и я там создал бы нового пользователя таким же образом, как тех 2-ух:
new InMemoryUserDetailsManager (
org.springframework.security.core.userdetails.User.withDefaultPasswordEncoder()
.username("user")
.password("password")
.roles(User.UserRole.USER.name())
.build();
Только ведь нужно еще параметры из формы передать... Подскажие как это сделать правильно. Пока что без записи в базы данных. Я так понимаю, если создавать пользователя таким образом, то он будет храниться в памяти до выхода из приложения, а при повторном входе информации о нем уже не будет (меня такое устраивает). Не кидайте ссылки на туториалы.