Как создать страницу входа в систему безопасности Spring в vaadin только с Java?

В настоящее время я создаю веб-приложение с помощью spring и vaadin. Я искал несколько дней, чтобы найти решение для создания настраиваемой страницы входа с vaadin для весенней безопасности. У меня есть макет, но я не знаю, как отправить логин и пароль в spring .... Кто-нибудь может мне помочь или показать хороший пример?

Кстати использую ваадин 10.

Это должно быть возможно с помощью вызова AuthenticationProvider#authenticate. Я не уверен, но Spring Boot уже должен автоматически настраивать его. Я думаю, что для обычного весеннего приложения вам нужно настроить его вручную.

Steffen Harbich 14.11.2018 12:26
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
744
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Если вы настроили Spring для использования formLogin(), вы можете просто отправить данные в обычной форме.

<form method = "POST" action = "login">
    <input name = "username" />
    <input name = "password" />
    <input type = "submit" value = "Log in" />
</form>

Если вы хотите использовать компоненты Vaadin внутри, вам нужно обернуть все в iron-form

<iron-form id = "ironForm" allow-redirect = "true">
    <form method = "POST" action = "login">
        <vaadin-text-field name = "username"></vaadin-text-field>
        <vaadin-password-field name = "password"></vaadin-password-field>

        <vaadin-button theme = "primary" on-click = "_submit">
            Log in
        </vaadin-button>
    </form>
</iron-form>

и вручную отправить форму при нажатии кнопки Vaadin

_submit() {
    this.$.ironForm.submit();
}
Ответ принят как подходящий

Я справился с этим, создав маршрут для страницы входа с помощью Vaadin и создал настраиваемую службу AuthenticationService, которая помещает объект аутентификации в SecurityContextHolder.

Vaadin 13 представляет специальные компоненты входа в систему, которые вы можете использовать. Они отправят данные формы на настроенную конечную точку, которую прослушивает Spring Security:

@Tag("sa-login-view")
@Route(value = LoginView.ROUTE)
@PageTitle("Login")
public class LoginView extends VerticalLayout {
        public static final String ROUTE = "login";

        private LoginOverlay login = new LoginOverlay(); // (1)

        public LoginView(){
            login.setAction("login"); // (2)
            login.setOpened(true); // (3)
            login.setTitle("Spring Secured Vaadin");
            login.setDescription("Login Overlay Example");
            getElement().appendChild(login.getElement()); // (4)
        }
}

Этот фрагмент кода является частью учебника по Vaadin и Spring Security в целом. Отметьте https://vaadin.com/tutorials/securing-your-app-with-spring-security. Прямо сейчас идет работа над разделом о бесплатном решении для перезагрузки страницы.

Другие вопросы по теме