Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support CORS-preflight request in NegotiateSecurityFilter #627

Closed
pedroneil opened this issue Jun 14, 2018 · 2 comments
Closed

Support CORS-preflight request in NegotiateSecurityFilter #627

pedroneil opened this issue Jun 14, 2018 · 2 comments

Comments

@pedroneil
Copy link
Contributor

pedroneil commented Jun 14, 2018

The fetch API defines Cross Origin Resource Sharing (CORS) and How CORS can be tested to be supported by a Resource Server -

Section 3.2.2 of the CORS highlights a CORS-preflight which is a simple request and is not a request for protected data - It would be great if Negotiate Security Filter could support a CORS preflight request which does not include any Credentials. https://fetch.spec.whatwg.org/#methods

... extract for ease
3.2.2. HTTP requests
A CORS-preflight request is a CORS request that checks to see if the CORS protocol is understood. It uses OPTIONS as method and includes these headers:

Access-Control-Request-Method
Indicates which method a future CORS request to the same resource might use.

Access-Control-Request-Headers
Indicates which headers a future CORS request to the same resource might use.

It is possible to leave OPTIONS uncovered with Container Security Constraint by setting using the hptt-method-omission, howerver, this is more Coarse Grained and it would be good to test for all 3 requests to check that the OPTIONS request is infact a CORS-preflight; this is because WebDAV uses OPTIONS differently to CORS

Container Security Constraint.
OPTIONS

Suggestion for at least NegotiateSecurityFilter would be to include a supportCORSpreflightRequest
supportCORSpreflightRequest

@pedroneil pedroneil changed the title NegotiateSecurityFilter unable to exclude Methods for OPTIONS requests OPTIONS Requests for NegotiateSecurityFilter are return 401 WWW-Authentication for CORS OPTIONS Jun 15, 2018
@pedroneil pedroneil changed the title OPTIONS Requests for NegotiateSecurityFilter are return 401 WWW-Authentication for CORS OPTIONS Support CORS-preflight request in NegotiateSecurityFilter Jun 19, 2018
hazendaz pushed a commit that referenced this issue Jun 30, 2018
* Add a CorsPreflightAwareNegotiateSecurityFilter that extends the NegotiateSecurityFilter

* Update CorsPreFlightAwareNegotiateSecurityFilter.java

* move preflight check to CorsPreFlightHelper to support Testing

* create cors aware filter removing the need for the excludeCorsPreFlight and excludeBearerAuthorization configuration parameters

* create cors aware filter removing the need for the excludeCorsPreFlight and excludeBearerAuthorization configuration parameters

* Add the missing Tests for CORS Aware Security Filter

* Add the missing Tests for CORS Aware Security Filter

* Add a test for each header missing

* JDK1.8 u127 build

* JDK1.8 u127 build

* add some logs for NegotiateSecurityFilter

* changed init-param name to be consistent with code excludeBearerAuthorization

* changed init-param name to be consistent with code excludeBearerAuthorization

* rename tests and document 2 new parameters for NegotiateSecurityFilter

* Completed documenting parameters excludeCorsPreflight and excludeBearerAuthorization

* Use init-param for excludeCorsPreflight before checking for preflight headers

* Correct log statements in the waffle.util.CorsPreflightCheck

* updated CHANGELOG for PR 631 and added link to issue #627

* updated CHANGELOG for PR 631 and added link to issue #627

* added FAQ for using Tomcat SingleSignOnValve and NegotiateSecurityFilter

* added FAQ for using Tomcat SingleSignOnValve and NegotiateSecurityFilter

* added a link under troubleshooting stories

* added net affect summary

* use mockito-core.version properties @ version 2.19.0
@hazendaz
Copy link
Member

hazendaz commented Jul 1, 2018

@pedroneil If we are all good here, can you close this issue?

@pedroneil
Copy link
Contributor Author

issue closed as this will be addressed in the release of Waffle 1.9.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants