@galliard

Чем заменить deprecated метод http.exceptionHandling() в spring security?

Был у меня такой вод код:
@Bean
    fun filterChain(http: HttpSecurity): SecurityFilterChain {
        // Всякие другие настройки

        http.exceptionHandling().accessDeniedHandler(accessDeniedHandler())

        return http.build()
    }

    @Bean
    fun accessDeniedHandler(): AccessDeniedHandler {
        return AccessDeniedHandler { request: HttpServletRequest?, response: HttpServletResponse, ex: AccessDeniedException? ->
            response.status = HttpServletResponse.SC_FORBIDDEN
            response.contentType = MediaType.APPLICATION_JSON_VALUE

            val out = response.outputStream

            ObjectMapper().writeValue(out, object : Any() {
                val message = "Forbidden"
            })

            out.flush()
        }
    }


И он в принципе прекрасно работает. проблема в том, что http.exceptionHandling() мне idea подсвечивает как deprecated. При этом я совсем не понимаю, на что его нужно заменить для получения такого же результата? Перешерстил гугл до китайских сайтов и нигде внятного ответа не нашел. Как теперь нужно пользоваться данной функцией?
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
azerphoenix
@azerphoenix Куратор тега Spring
Java Software Engineer
Какую версию Spring Boot используете - 3.0 или 3.1?
Начиная с версии Spring Boot 3.0 были внесены правки в Spring Security. Теперь, он принимает labda-expression
Такие же правки произошли в версии 3.1

Вот, одно из решений - https://stackoverflow.com/questions/76823906/http-...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы