Как реализовать регистрацию пользователя в 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();

Только ведь нужно еще параметры из формы передать... Подскажие как это сделать правильно. Пока что без записи в базы данных. Я так понимаю, если создавать пользователя таким образом, то он будет храниться в памяти до выхода из приложения, а при повторном входе информации о нем уже не будет (меня такое устраивает). Не кидайте ссылки на туториалы.


Ответы (0 шт):