У меня есть приложение, которое отображает множество конечных точек, которых я не ожидал.Например, localhost: 8080 / app / возвращает список URL, который, помимо прочего, предоставляет информацию, относящуюся к спящим объектам.
Я НЕ хочу, чтобы базовая аутентификация была включена, поскольку у меня настроена собственная аутентификация.Но если URL не тот, который представлен RestController, который я написал, то я хочу, чтобы он был на моей существующей запрещенной странице.
Вот моя текущая конфигурация, но она не предотвращает нежелательные конечные точки:
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/api/**").antMatchers("/v2/**").antMatchers("/webjars/**").antMatchers("/swagger-resources/**")
.antMatchers("/swagger-ui.html");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
super.configure(http);
http.httpBasic().disable();
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.csrf().disable();
http.authenticationProvider(new CustomAuthenticationProvider()).authorizeRequests().anyRequest().authenticated()
.antMatchers("/v2/**").permitAll().antMatchers("/webjars/**").permitAll().antMatchers("/swagger-resources/**").permitAll()
.antMatchers("/swagger-ui.html").permitAll()
.antMatchers("/health").permitAll();
http.rememberMe().rememberMeServices(rememberMeService).useSecureCookie(useSecureCookie);
//Show 403 on denied access
http.exceptionHandling().authenticationEntryPoint(new Forbidden());
}
Таким образом, в этом случае localhost: 8080 / app / api / SearchControler / {var} должен работать, а localhost: 8080 / app / должен перейти в мою запрещенную точку входа.Вместо этого localhost: 8080 / app / переходит на весеннюю страницу имени пользователя и пароля.
Во-первых, я не знаю, почему эти конечные точки даже отображаются, когда для них нет RestController, и, во-вторых, почему происходит перенаправление настраница 403 настолько сложна.
Я не уверен, какой конфигурации мне не хватает.
* РЕДАКТИРОВАТЬ *
Я также пытался:
http.formLogin().and().httpBasic().disabled();
, а также:
@EnableAutoConfiguration(exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class})
, и ничто не мешает пружине захватить власть и сделать то, что ей хочется.