Comments (2)
@hugebubu I like this idea and would definitely be open to accepting a PR that accomplishes this. Happy to mentor/advise/assist in any way desired, as well :)
from rocket_cors.
Just an FYI for anyone wandering here from Google: This is already possible! (at least with Rocket 0.5.0-rc1) It also works with "Fairing" mode, which was a bit surprising to me, because I thought you can't get the config before attaching the fairing, but you totally can!
The idea is to get the config from a partially built rocket instance, instantiate cors, then attach it to finish building. Here's how to do it:
let partial_rocket = rocket::build()
.mount(........);
let cors_config: CorsOptions = partial_rocket.figment().focus("cors").extract().expect("missing CORS config");
let cors_fairing = cors_config.to_cors().expect("CORS init failed");
let final_rocket = partial_rocket.attach(cors_fairing);
// do the launch and the rest
The TOML deserialization of the CorsOptions struct was a bit tricky, especially because all the externally tagged enums and newtypes, but I've got it working, here's an example:
[default.cors]
allowed_methods = ["Get", "Post", "Put", "Patch"]
allow_credentials = true
[default.cors.allowed_origins.Some]
exact = ["http://localhost:4200", "http://localhost:8080"]
[default.cors.allowed_headers]
Some = [
["Authorization"],
["Accept"],
["content-type"]
]
I'm not sure this is still relevant to you @hugebubu , but I hope this helps someone.
from rocket_cors.
Related Issues (20)
- Building on `stable` results in error HOT 5
- Rocket Cors & Headers HOT 1
- Fairing CORS fails preflight check HOT 1
- Build error with latest async-trait HOT 3
- No CORS headers (even running example) HOT 1
- Build error on Rust 1.33.0-nightly. HOT 2
- Upload Documentation to Github Pages using Github Actions HOT 6
- Add a builder pattern to CorsOptions HOT 2
- Hide Error: No matching routes for OPTIONS HOT 3
- `log` is ambiguous HOT 7
- Fairing working in local but not in remote server HOT 1
- Support for Rocket async branch HOT 4
- Cors Partially working HOT 4
- Define MSRV when Rocket 0.5 is released HOT 1
- Switch back Rocket dependency to crates.io when 0.5 is released HOT 5
- CORS gives an error when booting with the default settings and accessing with axios. HOT 2
- Compile on stable rust HOT 1
- Fixed Manuel Issue HOT 1
- the trait `Fairing` is not implemented for `Cors` HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rocket_cors.