У меня есть приложение Spring Boot с функцией Spring Security. На базовом уровне он в значительной степени совпадает с учебником Spring. Мой вопрос: когда я попал на главную страницу, он вызывает контроллер входа (дважды). Зачем? Не легко понять, что он делает это с базовой настройкой, так как он просто показывает домашнюю страницу. Но если я добавлю класс LoginController, он будет вызван (дважды) при загрузке домашней страницы. Другой способ увидеть это - добавить недопустимый тег thymeleaf для login.html templage, он выдает ошибку, даже если домашняя страница не должна быть аутентифицирована. Любое объяснение поможет.Весенняя загрузка с приложением Spring Security при загрузке учетной записи при загрузке на домашней странице
Мой код:
Применение:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
WebSecurityConfig:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
HomeController:
@Controller
public class HomeController {
@RequestMapping(value="/", method=RequestMethod.GET)
public String getHomePage(Model model) {
return "home";
}
}
Дополнительный LoginController, будет вызвана при ударе й е главная страница:
@Controller
public class LoginController {
@RequestMapping(value="/login", method=RequestMethod.GET)
public String getLoginPage(Model model) {
return "login";
}
}
Как вы подтвердили, что контроллер входа в систему дважды вызывался при загрузке домашней страницы? Из журналов? (если да, можете ли вы поделиться журналами). – rhinds
поставил точку останова или просто заявление на печать ... на самом деле он вызывает один раз, должно быть что-то в моем html, что вызвало его вызов дважды, но теперь его вызывают один раз. – ikcodez