Воспроизвести настройки фильтра Java CORS - PullRequest
0 голосов
/ 30 октября 2018

Я получаю статус 403 (запрещено), когда я включил модуль CORS и установил фильтры CORS (в application.conf) в своих API-интерфейсах Backend (реализовано с использованием Play Java).

У меня есть набор API, я аутентифицирую пользователя (API) с использованием pac4j, saml и IDP (внутренняя часть моей компании). Когда IDP отправляет (POST) ответ saml на «обратный вызов» URL (предоставляется pac4j). Бэкэнд возвращает статус 403.

  • SBT Версия: 0.13.11
  • Версия Scala: 2.11.7
  • Версия игры: 2.5.5
  • play-pac4j Версия: 3.0.1
  • pac4j-saml Версия: 2.0.0

Фильтры CORS, применяемые в application.conf

play {
  modules {
    enabled += modules.SecurityModule
    enabled += "play.filters.cors.CORSModule"
  }
}

play.http.session.sameSite = null
play.http.session.domain = null

play.filters.cors {
  # allow all paths
  pathPrefixes = ["/"]
  # allow all origins (You can specify if you want)
  allowedOrigins = null
  allowedHttpMethods = ["GET", "POST", "PUT", "DELETE"]
  # allow all headers
  allowedHttpHeaders = null
}

play.filters.cors.serveForbiddenOrigins = true

Класс фильтра

public class Filters implements HttpFilters {

    private final SecurityFilter securityFilter;

    private final CORSFilter corsFilter;

    @Inject
    public Filters(SecurityFilter securityFilter, CORSFilter corsFilter) {
        this.securityFilter = securityFilter;
        this.corsFilter =corsFilter;
    }

    @Override
    public EssentialFilter[] filters() {
        return new EssentialFilter[]{securityFilter.asJava(), corsFilter.asJava()};
    }
}

Примечание: те же фильтры отлично работают в pac4j-play-java-demo. Версия Java для воспроизведения, используемая в демоверсии: 2.6.15 Версия Pac4J, используемая в демоверсии: 6.1.0-SNAPSHOT

Подскажите, пожалуйста, как правильно установить фильтры CORS.

...