Как создать страницу безопасности весеннего входа в vaadin только с Java? - PullRequest
0 голосов
/ 13 ноября 2018

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

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

Ответы [ 3 ]

0 голосов
/ 28 ноября 2018

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

0 голосов
/ 30 марта 2019

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. В данный момент выполняется раздел, посвященный бесплатному решению для перезагрузки страницы.

0 голосов
/ 14 ноября 2018

Если вы настроили 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();
}
...