feat: config network
This commit is contained in:
parent
bbcfe33fe7
commit
b2c59409b8
|
|
@ -1,7 +1,7 @@
|
|||
application:
|
||||
port: 8000
|
||||
host: 0.0.0.0
|
||||
secret_key: "d8b242c8a47de60e1ebf4e6bb7d3315cdd4b4071919fe1065566f23a354753ae"
|
||||
server_key: ""
|
||||
database:
|
||||
host: "localhost"
|
||||
port: 5432
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
[package]
|
||||
name = "token"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
jsonwebtoken = "8.2.0"
|
||||
jwt = "0.16.0"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
pub fn add(left: usize, right: usize) -> usize {
|
||||
left + right
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn it_works() {
|
||||
let result = add(2, 2);
|
||||
assert_eq!(result, 4);
|
||||
}
|
||||
}
|
||||
|
|
@ -31,7 +31,9 @@ impl Application {
|
|||
let server = run(
|
||||
listener,
|
||||
state,
|
||||
config.application.secret_key.clone(),
|
||||
certificate,
|
||||
server_key,
|
||||
// config.application.server_key.clone(),
|
||||
config.redis_uri.clone(),
|
||||
)
|
||||
.await?;
|
||||
|
|
@ -51,10 +53,10 @@ impl Application {
|
|||
pub async fn run(
|
||||
listener: TcpListener,
|
||||
state: State,
|
||||
certificate: Secret<String>,
|
||||
secret_key: Secret<String>,
|
||||
redis_uri: Secret<String>,
|
||||
) -> Result<Server, anyhow::Error> {
|
||||
let (cert, _server_key) = create_certificate()?;
|
||||
let redis_store = RedisSessionStore::new(redis_uri.expose_secret()).await?;
|
||||
let server = HttpServer::new(move || {
|
||||
let secret_key = Key::from(secret_key.expose_secret().as_bytes());
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
use crate::self_signed::create_certificate;
|
||||
use config::{Config as InnerConfig, FileFormat};
|
||||
use secrecy::Secret;
|
||||
use serde_aux::field_attributes::deserialize_number_from_string;
|
||||
|
|
@ -24,7 +25,8 @@ pub struct ApplicationSettings {
|
|||
#[serde(deserialize_with = "deserialize_number_from_string")]
|
||||
pub port: u16,
|
||||
pub host: String,
|
||||
pub secret_key: Secret<String>,
|
||||
pub certificate: Secret<String>,
|
||||
pub server_key: Secret<String>,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize, Clone, Debug)]
|
||||
|
|
@ -61,6 +63,7 @@ impl DatabaseSetting {
|
|||
pub fn get_configuration() -> Result<Config, config::ConfigError> {
|
||||
let base_path = std::env::current_dir().expect("Failed to determine the current directory");
|
||||
let configuration_dir = base_path.join("configuration");
|
||||
let (certificate, server_key) = create_certificate()?;
|
||||
|
||||
let environment: Environment = std::env::var("APP_ENVIRONMENT")
|
||||
.unwrap_or_else(|_| "local".into())
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
use rcgen::{Certificate, CertificateParams, KeyPair, RcgenError, SanType};
|
||||
use secrecy::Secret;
|
||||
|
||||
pub const CA_CRT: &str = include_str!("../cert/cert.pem");
|
||||
pub const CA_KEY: &str = include_str!("../cert/key.pem");
|
||||
|
||||
pub fn create_certificate() -> Result<(String, String), RcgenError> {
|
||||
pub fn create_certificate() -> Result<(Secret<String>, Secret<String>), RcgenError> {
|
||||
let key = KeyPair::from_pem(CA_KEY)?;
|
||||
let params = CertificateParams::from_ca_cert_pem(CA_CRT, key)?;
|
||||
let ca_cert = Certificate::from_params(params)?;
|
||||
|
|
@ -23,7 +24,7 @@ pub fn create_certificate() -> Result<(String, String), RcgenError> {
|
|||
// 1. localhost
|
||||
// 2. 127.0.0.1
|
||||
let gen_cert = Certificate::from_params(params)?;
|
||||
let server_crt = gen_cert.serialize_pem_with_signer(&ca_cert)?;
|
||||
let server_key = gen_cert.serialize_private_key_pem();
|
||||
let server_crt = Secret::new(gen_cert.serialize_pem_with_signer(&ca_cert)?);
|
||||
let server_key = Secret::new(gen_cert.serialize_private_key_pem());
|
||||
Ok((server_crt, server_key))
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue