Я получаю статус 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.