Printemps de Démarrage de Sécurité avec Vaadin de Connexion

J'essaie de construire une application basée sur Spring Boot (1.2.7.De presse) et Vaadin (7.6.3). Mon problème est que je ne suis pas en mesure d'intégrer la Sécurité Printemps avec Vaadin. Je veux une coutume Vaadin construit LoginScreen et le Printemps de contrôle de la Sécurité. Mon projet d'installation est la suivante:

@Configuration
@EnableWebSecurity
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable().
                exceptionHandling().authenticationEntryPoint(new LoginUrlAuthenticationEntryPoint("/login")).accessDeniedPage("/accessDenied")
                .and().authorizeRequests()
                .antMatchers("/VAADIN/**", "/PUSH/**", "/UIDL/**", "/login", "/login/**", "/error/**", "/accessDenied/**", "/vaadinServlet/**").permitAll()
                .antMatchers("/authorized", "/**").fullyAuthenticated();
    }
}

Et voici mon Vaadin INTERFACE utilisateur de connexion

 @SpringUI(path = "/login")
    @Title("LoginPage")
    @Theme("valo")
    public class LoginUI extends UI {

        TextField user;
        PasswordField password;
        Button loginButton = new Button("Login", this::loginButtonClick);
        private static final String username = "username";
        private static final String passwordValue = "test123";

        @Override
        protected void init(VaadinRequest request) {
            setSizeFull();

            user = new TextField("User:");
            user.setWidth("300px");
            user.setRequired(true);
            user.setInputPrompt("Your username");

            password = new PasswordField("Password:");
            password.setWidth("300px");
            password.setRequired(true);
            password.setValue("");
            password.setNullRepresentation("");

            VerticalLayout fields = new VerticalLayout(user, password, loginButton);
            fields.setCaption("Please login to access the application");
            fields.setSpacing(true);
            fields.setMargin(new MarginInfo(true, true, true, false));
            fields.setSizeUndefined();

            VerticalLayout uiLayout = new VerticalLayout(fields);
            uiLayout.setSizeFull();
            uiLayout.setComponentAlignment(fields, Alignment.MIDDLE_CENTER);
            setStyleName(Reindeer.LAYOUT_BLUE);
            setFocusedComponent(user);

            setContent(uiLayout);
        }

        public void loginButtonClick(Button.ClickEvent e) {
           //authorize/authenticate user
           //tell spring that my user is authenticated and dispatch to my mainUI
        }

    }

Quand je commence ma demande de printemps me redirige vers ma connexion de l'INTERFACE utilisateur, ce qui est bien.

Mais je ne sais pas comment authentifier l'utilisateur à l'égard de au printemps, le mécanisme de sécurité et de l'expédition de mon mainUI.

Je suis également confronté à un problème avec les jetons csrf, si je ne désactive pas csrf je vais chercher le fec jeton est nulle exception. J'ai trouvé beaucoup d'exemples de la manipulation de ces problèmes, mais il n'y a pas de solution fournie avec Vaadin.

Merci pour l'aide.

J'ai un exemple d'une application à l'aide de Vaadin + Ressort de Démarrage + Ressort de Sécurité, mais, malheureusement, cet exemple va sans aucun documents encore. Mais peut-être que vous pouvez obtenir un peu d'inspiration dans le code de votre tâche: github.com/rolandkrueger/vaadin-by-example/tree/master/en/...
Hey Roland, j'ai pris un coup d'oeil à votre projet et il a beaucoup aidé. Merci pour le partage.
Content d'avoir pu aider sans vraiment répondre à votre question 😉

OriginalL'auteur J. S. | 2016-03-10