У меня есть бэкэнд с REST API, который вызывается моим веб-интерфейсом. Мой WebSecurityConfig
имеет следующие методы:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/resources/**", "/registration").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder());
}
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/");
viewResolver.setSuffix(".html");
return viewResolver;
}
И /login
метод моего контроллера:
@RequestMapping("/login")
public String handleRequest(HttpServletRequest request, Model model) {
Authentication auth = SecurityContextHolder.getContext()
.getAuthentication();
model.addAttribute("uri", request.getRequestURI())
.addAttribute("user", auth.getName())
.addAttribute("roles", auth.getAuthorities());
return "login";
}
Все учебники, которые я читаю, всегда используют страницы входа, которые находятся внутри одного и того же проекта.
Поскольку страница входа является компонентом внешнего интерфейса, я хотел поместить форму входа в проект внешнего интерфейса. Имеет ли этот подход смысл? И если да, как мне настроить мой ViewResolver
, чтобы он указывал на мою страницу входа в систему?