mirror of
https://github.com/actix/examples
synced 2024-11-27 16:02:57 +01:00
fix: remaining upgrade issues
This commit is contained in:
parent
09dad8f836
commit
72d0d1eb4b
9
Cargo.lock
generated
9
Cargo.lock
generated
@ -13,11 +13,12 @@ dependencies = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "acme-lib"
|
name = "acme-micro"
|
||||||
version = "0.8.2"
|
version = "0.12.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "292ac9d513052341a7f5bdae61f31c4dc93c1dce2598508f52709df08cecc8b0"
|
checksum = "a18fb402a32ddc56ef7015df8d575c326ea911887ba9b7661ce18786282e89a3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"anyhow",
|
||||||
"base64 0.13.1",
|
"base64 0.13.1",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"log",
|
"log",
|
||||||
@ -5091,7 +5092,7 @@ dependencies = [
|
|||||||
name = "openssl-auto-le"
|
name = "openssl-auto-le"
|
||||||
version = "1.0.0"
|
version = "1.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"acme-lib",
|
"acme-micro",
|
||||||
"actix-files",
|
"actix-files",
|
||||||
"actix-web",
|
"actix-web",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
|
@ -49,7 +49,7 @@ async fn main() -> std::io::Result<()> {
|
|||||||
// Wikipedia requires a User-Agent header to make requests
|
// Wikipedia requires a User-Agent header to make requests
|
||||||
.add_default_header((header::USER_AGENT, "awc-example/1.0"))
|
.add_default_header((header::USER_AGENT, "awc-example/1.0"))
|
||||||
// a "connector" wraps the stream into an encrypted connection
|
// a "connector" wraps the stream into an encrypted connection
|
||||||
.connector(Connector::new().rustls(Arc::clone(&client_tls_config)))
|
.connector(Connector::new().rustls_021(Arc::clone(&client_tls_config)))
|
||||||
.finish();
|
.finish();
|
||||||
|
|
||||||
App::new()
|
App::new()
|
||||||
@ -66,7 +66,7 @@ async fn main() -> std::io::Result<()> {
|
|||||||
/// Create simple rustls client config from root certificates.
|
/// Create simple rustls client config from root certificates.
|
||||||
fn rustls_config() -> ClientConfig {
|
fn rustls_config() -> ClientConfig {
|
||||||
let mut root_store = RootCertStore::empty();
|
let mut root_store = RootCertStore::empty();
|
||||||
root_store.add_server_trust_anchors(webpki_roots::TLS_SERVER_ROOTS.0.iter().map(|ta| {
|
root_store.add_trust_anchors(webpki_roots::TLS_SERVER_ROOTS.iter().map(|ta| {
|
||||||
OwnedTrustAnchor::from_subject_spki_name_constraints(
|
OwnedTrustAnchor::from_subject_spki_name_constraints(
|
||||||
ta.subject,
|
ta.subject,
|
||||||
ta.spki,
|
ta.spki,
|
||||||
|
@ -7,7 +7,7 @@ edition = "2021"
|
|||||||
actix-web = { workspace = true, features = ["openssl"] }
|
actix-web = { workspace = true, features = ["openssl"] }
|
||||||
actix-files.workspace = true
|
actix-files.workspace = true
|
||||||
|
|
||||||
acme-lib = "0.8"
|
acme-micro = "0.12"
|
||||||
anyhow = "1"
|
anyhow = "1"
|
||||||
env_logger.workspace = true
|
env_logger.workspace = true
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use std::{fs, time::Duration};
|
use std::{fs, time::Duration};
|
||||||
|
|
||||||
use acme_lib::{create_p384_key, Certificate, Directory, DirectoryUrl};
|
use acme_micro::{create_p384_key, Certificate, Directory, DirectoryUrl};
|
||||||
use actix_files::Files;
|
use actix_files::Files;
|
||||||
use actix_web::{rt, web, App, HttpRequest, HttpServer, Responder};
|
use actix_web::{rt, web, App, HttpRequest, HttpServer, Responder};
|
||||||
use anyhow::anyhow;
|
use anyhow::anyhow;
|
||||||
|
@ -4,7 +4,7 @@ version = "1.0.0"
|
|||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
actix-tls.workspace = true
|
actix-tls = { workspace = true, features = ["rustls-0_21"] }
|
||||||
actix-web = { workspace = true, features = ["rustls-0_21"] }
|
actix-web = { workspace = true, features = ["rustls-0_21"] }
|
||||||
env_logger.workspace = true
|
env_logger.workspace = true
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
//! This example shows how to use `actix_web::HttpServer::on_connect` to access client certificates
|
//! This example shows how to use `actix_web::HttpServer::on_connect` to access client certificates
|
||||||
//! pass them to a handler through connection-local data.
|
//! pass them to a handler through connection-local data.
|
||||||
|
|
||||||
use std::{any::Any, fs::File, io::BufReader, net::SocketAddr};
|
use std::{any::Any, sync::Arc, fs::File, io::BufReader, net::SocketAddr};
|
||||||
|
|
||||||
use actix_tls::accept::rustls::{reexports::ServerConfig, TlsStream};
|
use actix_tls::accept::rustls_0_21::{reexports::ServerConfig, TlsStream};
|
||||||
use actix_web::{
|
use actix_web::{
|
||||||
dev::Extensions, rt::net::TcpStream, web, App, HttpRequest, HttpResponse, HttpServer, Responder,
|
dev::Extensions, rt::net::TcpStream, web, App, HttpRequest, HttpResponse, HttpServer, Responder,
|
||||||
};
|
};
|
||||||
@ -85,7 +85,7 @@ async fn main() -> std::io::Result<()> {
|
|||||||
let client_auth = AllowAnyAnonymousOrAuthenticatedClient::new(cert_store);
|
let client_auth = AllowAnyAnonymousOrAuthenticatedClient::new(cert_store);
|
||||||
let config = ServerConfig::builder()
|
let config = ServerConfig::builder()
|
||||||
.with_safe_defaults()
|
.with_safe_defaults()
|
||||||
.with_client_cert_verifier(client_auth);
|
.with_client_cert_verifier(Arc::new(client_auth));
|
||||||
|
|
||||||
// import server cert and key
|
// import server cert and key
|
||||||
let cert_file = &mut BufReader::new(File::open(SERVER_CERT)?);
|
let cert_file = &mut BufReader::new(File::open(SERVER_CERT)?);
|
||||||
|
@ -130,7 +130,7 @@ impl ChatServer {
|
|||||||
// auto join session to main room
|
// auto join session to main room
|
||||||
self.rooms
|
self.rooms
|
||||||
.entry("main".to_owned())
|
.entry("main".to_owned())
|
||||||
.or_insert_with(HashSet::new)
|
.or_default()
|
||||||
.insert(id);
|
.insert(id);
|
||||||
|
|
||||||
let count = self.visitor_count.fetch_add(1, Ordering::SeqCst);
|
let count = self.visitor_count.fetch_add(1, Ordering::SeqCst);
|
||||||
@ -187,7 +187,7 @@ impl ChatServer {
|
|||||||
|
|
||||||
self.rooms
|
self.rooms
|
||||||
.entry(room.clone())
|
.entry(room.clone())
|
||||||
.or_insert_with(HashSet::new)
|
.or_default()
|
||||||
.insert(conn_id);
|
.insert(conn_id);
|
||||||
|
|
||||||
self.send_system_message(&room, conn_id, "Someone connected")
|
self.send_system_message(&room, conn_id, "Someone connected")
|
||||||
|
@ -131,7 +131,7 @@ impl Handler<Connect> for ChatServer {
|
|||||||
// auto join session to main room
|
// auto join session to main room
|
||||||
self.rooms
|
self.rooms
|
||||||
.entry("main".to_owned())
|
.entry("main".to_owned())
|
||||||
.or_insert_with(HashSet::new)
|
.or_default()
|
||||||
.insert(id);
|
.insert(id);
|
||||||
|
|
||||||
let count = self.visitor_count.fetch_add(1, Ordering::SeqCst);
|
let count = self.visitor_count.fetch_add(1, Ordering::SeqCst);
|
||||||
@ -213,7 +213,7 @@ impl Handler<Join> for ChatServer {
|
|||||||
|
|
||||||
self.rooms
|
self.rooms
|
||||||
.entry(name.clone())
|
.entry(name.clone())
|
||||||
.or_insert_with(HashSet::new)
|
.or_default()
|
||||||
.insert(id);
|
.insert(id);
|
||||||
|
|
||||||
self.send_message(&name, "Someone connected", id);
|
self.send_message(&name, "Someone connected", id);
|
||||||
|
Loading…
Reference in New Issue
Block a user