Фильтр Spring Whitelabel Error Page
нужна помощь с фильтром Spring. Добавил springframework.security. Перестал работать фитр
Выдает ошибку
код поиска`

` обработчик`
@PostMapping ("filter") public String filter(@RequestParam String filter, Model model) < Listresult1 = postRepositor.findByDolzContaining(filter); List result2 = postRepositor.findByOptContaining(filter); List orResult = new ArrayList<>(); orResult.addAll(result1); orResult.addAll(result2); model.addAttribute("posts", orResult); return "blog-main"; >

` Форма с добавлением соискателя тоже перестала работать`Добавление соискателя

` Конфиг security «
package com.tkr.blog.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.provisioning.InMemoryUserDetailsManager; @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter < @Override protected void configure(HttpSecurity http) throws Exception < http .authorizeRequests() .antMatchers("/", "/blog").permitAll() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .permitAll() .and() .logout() .permitAll(); >@Bean @Override public UserDetailsService userDetailsService() < UserDetails user = User.withDefaultPasswordEncoder() .username("1") .password("1") .roles("USER") .build(); return new InMemoryUserDetailsManager(user); >>
Как разрешить проблему Whitelabel Error Page spring?
Решил попробовать изучить spring.
Зашел на страничку spring.io и сделал все по быстрому гайду.
Спринг запустился, но при переходе на локалхотст выдает ошибку Whitelabel Error Page.
Перерыл половину интернета, ответа я найти не смог.
ПС Использую эклипс последней ревизии.
- Вопрос задан более года назад
- 107 просмотров
2 комментария
Простой 2 комментария
Видимо, вы что-то сделали не правильно.
Попробуйте сделать правильно, возможно это поможет.

Орхан Гасанлы @azerphoenix Куратор тега Spring
Чтобы помочь вам нужно больше информации.
Предположительно, скорее всего у вас метод контроллера ведет на какой-нибудь localhost:8080/hello-world , а вы стучитесь на главную localhost:8080/
Скиньте код контроллера
Почему возникла ошибка Whitelabel?
Ситуация следующая:
Спринг начал выдавать Whitelabel Error Page.
Пробовал пересоздать контроллер и проект целиком, проблема не ушла.
Гугл подсказал, что это может быть связано с пакетами, но у меня с пакетами вроде все правильно.
В чем может быть причина?
4.0.0 org.springframework.boot spring-boot-starter-parent 2.5.6 com.example demo 0.0.1-SNAPSHOT demo demo 11 org.springframework.boot spring-boot-starter-web org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin org.projectlombok lombok
package com.example.demo.controller; import org.springframework.web.bind.annotation.GetMapping; @org.springframework.stereotype.Controller public class Controller < @GetMapping public String hello() < return "Hello"; >>
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication < public static void main(String[] args) < SpringApplication.run(DemoApplication.class, args); >>
- Вопрос задан более двух лет назад
- 6303 просмотра
3 комментария
Простой 3 комментария
Spring Boot: настройка страницы ошибок Whitelabel
В этой статье мы рассмотрим, как отключить и настроить страницу ошибок по умолчанию для приложения Spring Boot, поскольку правильная обработка ошибок свидетельствует о профессионализме и качественной работе.
2. Отключение страницы ошибок Whitelabel
Во-первых, давайте посмотрим, как мы можем полностью отключить страницу ошибки белой метки, установив для свойства server.error.whitelabel.enabled значение false:
server.error.whitelabel.enabled=false
Добавление этой записи в файл application.properties отключит страницу ошибки и покажет краткую страницу, которая исходит из базового контейнера приложения, например, Tomcat.
Мы можем добиться того же результата, исключив bean- компонент ErrorMvcAutoConfiguration . Мы можем сделать это, либо добавив эту запись в файл свойств:
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration #for Spring Boot 2.0 #spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration
Или добавив эту аннотацию в основной класс:
@EnableAutoConfiguration(exclude = ErrorMvcAutoConfiguration.class>)
Все упомянутые выше методы отключат страницу ошибки белой метки. Это оставляет нас с вопросом о том, кто же на самом деле обрабатывает ошибку?
Ну, как упоминалось выше, обычно это базовый контейнер приложения. Хорошо, что мы можем дополнительно настраивать вещи, показывая наши пользовательские страницы ошибок вместо всех значений по умолчанию — это тема следующего раздела.
3. Отображение пользовательских страниц ошибок
Сначала нам нужно создать пользовательскую страницу ошибок HTML.
Мы сохраним файл как error.html , так как мы используем механизм шаблонов Thymeleaf :
DOCTYPE html> html> body> h1>Something went wrong! h1> h2>Our Engineers are on ith2> a href="/">Go Homea> body> html>
Если мы сохраним этот файл в каталоге resources/templates , он будет автоматически выбран Spring Boot BasicErrorController по умолчанию .
Это все, что нам нужно для отображения нашей пользовательской страницы ошибок. С помощью некоторых стилей у нас теперь будет гораздо более красивая страница ошибок для наших пользователей:
Мы можем быть более конкретными, назвав файл с кодом состояния HTTP, который мы хотим, чтобы он использовал, например, сохранение файла как 404.html в resources/templates/error означает, что он будет явно использоваться для ошибок 404.
3.1. Пользовательский контроллер ошибок
Ограничение до сих пор заключается в том, что мы не можем запускать пользовательскую логику при возникновении ошибок. Для этого нам нужно создать bean-компонент контроллера ошибок, который заменит компонент по умолчанию.
Для этого нам нужно создать класс, реализующий интерфейс ErrorController . Кроме того, нам нужно установить свойство server.error.path , чтобы возвращать собственный путь для вызова при возникновении ошибки.
@Controller public class MyErrorController implements ErrorController @RequestMapping("/error") public String handleError() //do something like logging return "error"; > >
В приведенном выше фрагменте мы также аннотируем класс @Controller и создаем сопоставление для пути, указанного в свойстве server.error.path:
server.error.path=/error
Таким образом, контроллер может обрабатывать вызовы по пути /error .
В handleError() мы возвращаем пользовательскую страницу ошибки, которую мы создали ранее. Если мы вызовем ошибку 404 сейчас, будет отображаться наша пользовательская страница.
Давайте дополнительно усовершенствуем handleError() , чтобы отображать определенные страницы ошибок для разных типов ошибок.
Например, у нас могут быть красиво оформленные страницы специально для типов ошибок 404 и 500. Затем мы можем использовать код состояния HTTP ошибки, чтобы определить подходящую страницу ошибки для отображения:
@RequestMapping("/error") public String handleError(HttpServletRequest request) Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE); if (status != null) Integer statusCode = Integer.valueOf(status.toString()); if(statusCode == HttpStatus.NOT_FOUND.value()) return "error-404"; > else if(statusCode == HttpStatus.INTERNAL_SERVER_ERROR.value()) return "error-500"; > > return "error"; >
Тогда для ошибки 404, например, мы увидим страницу error-404.html :
4. Вывод
Имея эту информацию, мы можем более элегантно обрабатывать ошибки и показывать нашим пользователям эстетичную страницу.
Как всегда, полный исходный код доступен на Github .
- 1. Обзор
- 2. Отключение страницы ошибок Whitelabel
- 3. Отображение пользовательских страниц ошибок
- 3.1. Пользовательский контроллер ошибок