2014-11-18 3 views
2

У меня есть API REST на основе RestEasy в контейнере JBOSS, прошедший проверку подлинности с помощью ограничения auth. при выполнении любого вызова заголовок авторизации передается с запросом. url для ограничения является/*Обработка запросов PreFlight к ресурсу RestEasy с ограничением безопасности, поддерживаемому RestEasy 2.x

Теперь одному из клиентов этого Rest API требуется запрос CORS. Я разработал веб-фильтр, который добавит необходимые заголовки для запроса перед полетом (т. Е. Варианты) и обычного запроса.

Это прекрасно работает, заголовки добавляются. Но поскольку RestEasy защищен url-образцом/*, он ожидает, что запрос перед полетом также будет аутентифицирован.

Теперь, согласно https://dvcs.w3.org/hg/cors/raw-file/tip/Overview.html#preflight-request, предполетные запросы должны быть неаутентифицированы.

Кроме того, я прошел через https://gist.github.com/tganzarolli/8520728 и создал аналогичную не прошедшую проверку службу для обработки запроса OPTIONS с помощью аннотаций @Path ("/ {var:. *}") И @PermitAll, поскольку я хотел бы обрабатывать все запросы OPTIONS в одном месте.

Это все еще не работает как ограничение auth, связанное с Restrease url-pattern/* kicks in, и моя не прошедшая проверку подлинность служба не работает, 401 все еще возвращается.

Есть ли лучший способ сделать это? Можно ли настроить ограничение безопасности для выше не прошедшей проверку подлинности службы для решения этой проблемы в данном сценарии?

ответ

2

После дальнейших исследований, я обнаружил, что это действительно было ограничено с помощью Rest-Up, которое покрывало весь шаблон url/*, вызывающий эту проблему. Я сделал переопределение ограничений безопасности для параметров с помощью http-метода (ref https://docs.oracle.com/cd/E19798-01/821-1841/bncbk/index.html) с url-pattern/*. Это решило проблему. Надеюсь, это будет полезно для других.

 Смежные вопросы

  • Нет связанных вопросов^_^