Integración de Spring Security 4 y JSF 2

¿Hay alguna manera de integrar Spring Security 4 (principalmente para administrar los niveles de acceso de los usuarios y a qué vistas pueden acceder) y JSF 2?

encontréesta linda cosa lo que le permite mezclar Spring Boot y JSF 2 con PrimeFaces 5. Excelente material. Quiero ver si puedes subirlo a otro nivel.

Normalmente configuraría Spring Security para Spring MVC así:

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");
    }
}

Y luego, hasta donde yo sé, corríjame si me equivoco, mire en su MvcConfig para ver qué significa realmente "/ home" y similares:

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");
    }
}

Sin embargo, he estado buscando en Google durante unas horas y realmente no puedo encontrar una respuesta concluyente sobre cómo configurar Spring Security para JSF. ¿Puede implementar su front-end usando JSF y luego hacer que sea administrado por Spring Security, por lo que, por ejemplo, los enlaces, es decir: localhost: 8080 / home en lugar de localhost: 8080 / home.xhtml, se administran y sirven correctamente? Y para que los niveles de usuario definidos enWebSecurityConfig.java solo pueden acceder a páginas relevantes para ellos mismos.

Por lo que he investigado (brevemente), podría no ser posible debido a que Faces y Mvc son tecnologías diferentes que no funcionan especialmente bien juntas. Sin embargo, si es posible, me gustaría asegurarme de si es posible o no.

Y si ES posible, ¿puede proporcionar un ejemplo de trabajo o un enlace a algún lugar que profundice más? Hice google bastante pero es 100% posible que termine perdiendo algo.

Todas y cada una de las respuestas son muy apreciadas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta