Integração com Spring Security 4 e JSF 2

Existe uma maneira de integrar o Spring Security 4 (principalmente para gerenciar os níveis de acesso do usuário e quais visualizações eles podem acessar) e o JSF 2?

eu encontreiessa coisa legal que permite misturar o Spring Boot e o JSF 2 com o PrimeFaces 5. Ótimas coisas. Quero ver se você consegue subir outro nível.

Normalmente você configuraria o Spring Security for Spring MVC da seguinte maneira:

WebSecurityConfig.java

@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .antMatchers("/", "/home").permitAll()
                .anyRequest().authenticated()

                .and()

                .formLogin()
                .loginPage("/login")
                .permitAll()

                .and()

                .logout()
                .permitAll();
    }

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
                .inMemoryAuthentication()
                .withUser("Zyst").password("password").roles("USER");
    }
}

E então, até onde eu sei, elas me corrigem se eu estiver enganado, procure no seu MvcConfig para ver o que realmente significa por "/ home" e coisas do tipo:

MvcConfig.java

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/home").setViewName("home");
        registry.addViewController("/").setViewName("home");
        registry.addViewController("/hello").setViewName("hello");
        registry.addViewController("/login").setViewName("login");
    }
}

No entanto, estou pesquisando há algumas horas e não consigo encontrar uma resposta conclusiva sobre como configurar o Spring Security for JSF. Você pode implementar seu front end usando JSF e, em seguida, fazer com que ele seja gerenciado pelo Spring Security, por exemplo, os Links, por exemplo, localhost: 8080 / home em vez de localhost: 8080 / home.xhtml, são gerenciados e veiculados adequadamente? E para que os níveis de usuário definidos emWebSecurityConfig.java só podem acessar páginas relevantes para si.

Pelo que investiguei (brevemente), talvez não seja possível devido ao fato de o Faces e o Mvc serem tecnologias diferentes que não tocam particularmente bem juntas. No entanto, se possível, eu gostaria de ter certeza se é possível ou não.

E se for possível, você pode fornecer um exemplo de trabalho ou um link para algum lugar que seja mais aprofundado? Eu pesquisei bastante no google, mas é 100% possível, acabei perdendo alguma coisa.

Todas e quaisquer respostas são muito apreciadas.

questionAnswers(1)

yourAnswerToTheQuestion