Как отключить HTTP POST REQUEST API oData?

Я настраиваю новое приложение Java, используя oData и ServletRegistrationBean. Я хотел бы отключить возможность получения запроса POST и разрешить только запросы GET.

Где я должен установить это? Могу ли я создать что-то вроде белого/черного списка?

ServletRegistrationBean odataServRegstration = new ServletRegistrationBean(new CXFNonSpringJaxrsServlet(), "/odata/*");
Map<String, String> initParameters = new HashMap<>();
initParameters.put("javax.ws.rs.Application", "org.apache.olingo.odata2.core.rest.app.ODataApplication");
initParameters.put("org.apache.olingo.odata2.service.factory", "com.sap.context.JPAServiceFactory");
odataServRegstration.setInitParameters(initParameters);
return odataServRegstration;
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
235
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В весенней безопасности вы можете легко настроить, что, например, только пользователи роли администратора могут делать не GetRequests. Я скоро приведу пример, если вы не найдете его в сети до этого. Другие unseres получат 403.

Минималистичный пример:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
          .csrf().disable()
          .authorizeRequests()
            .antMatchers(HttpMethod.POST, "/**").hasRole("ADMIN")
            .antMatchers("/**").hasAnyRole("ADMIN","USER")
          .and()
          .httpBasic()
        ;
    }

Обратите внимание на .antMatchers(HttpMethod.POST, "/**").hasRole("ADMIN").

Да, пожалуйста, я хотел бы увидеть ваш пример.

EpsilonTal 11.07.2019 09:45

Это мой способ отключить опцию POST.

@Override
@RequestMapping(method = {GET,  PATCH, DELETE})
public void service(final HttpServletRequest servletRequest, final HttpServletResponse servletResponse) throws ServletException {

    try {........................

Другие вопросы по теме