Интеграция Spring Security 4 и JSF 2
Есть ли способ интеграции Spring Security 4 (в основном для управления уровнями доступа пользователей и к каким представлениям они могут получить доступ) и JSF 2?
я нашелэта аккуратная вещь который позволяет вам смешивать Spring Boot и JSF 2 с PrimeFaces 5. Отличный материал. Я хочу посмотреть, сможешь ли ты поднять это на другой уровень.
Обычно вы настраиваете Spring Security для Spring MVC следующим образом:
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");
}
}
И затем те, насколько я знаю, исправят меня, если я ошибаюсь, загляните в ваш MvcConfig, чтобы увидеть, что на самом деле означает «/ home» и тому подобное:
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");
}
}
Однако я несколько часов гуглю и не могу найти окончательного ответа о том, как настроить Spring Security для JSF. Можете ли вы реализовать свой интерфейс с помощью JSF, а затем сделать его управляемым Spring Security, например, ссылки, т.е. localhost: 8080 / home вместо localhost: 8080 / home.xhtml, правильно управляются и обслуживаются? И так, что пользовательские уровни определены вWebSecurityConfig.java
может только получить доступ к страницам, относящимся к себе.
Из того, что я (кратко) исследовал, это может быть невозможно из-за того, что Faces и Mvc - это разные технологии, которые не особенно хорошо сочетаются друг с другом. Однако, если возможно, я бы хотел убедиться, возможно ли это или нет.
И если это возможно, можете ли вы предоставить или рабочий пример, или ссылку на что-то более глубокое? Я немного погуглил, но вполне возможно, что я что-то упустил.
Любые ответы приветствуются.