MCPcopy Create free account
hub / github.com/NVIDIA/OpenShell / callback_server_rejects_missing_origin

Function callback_server_rejects_missing_origin

crates/openshell-cli/src/auth.rs:636–678  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

634
635 #[tokio::test]
636 async fn callback_server_rejects_missing_origin() {
637 let listener = TcpListener::bind("127.0.0.1:0").await.unwrap();
638 let addr = listener.local_addr().unwrap();
639 let (tx, rx) = oneshot::channel();
640
641 tokio::spawn(run_callback_server(
642 listener,
643 tx,
644 "ABC-1234".to_string(),
645 TEST_GATEWAY.to_string(),
646 ));
647
648 // POST without Origin header.
649 let mut stream = tokio::net::TcpStream::connect(addr).await.unwrap();
650 let body = r#"{"token":"jwt","code":"ABC-1234"}"#;
651 let request = format!(
652 "POST /callback HTTP/1.1\r\n\
653 Host: 127.0.0.1\r\n\
654 Content-Type: application/json\r\n\
655 Content-Length: {}\r\n\r\n\
656 {}",
657 body.len(),
658 body,
659 );
660 stream.write_all(request.as_bytes()).await.unwrap();
661
662 let mut buf = vec![0u8; 4096];
663 let n = stream.read(&mut buf).await.unwrap();
664 let response = String::from_utf8_lossy(&buf[..n]);
665 assert!(
666 response.contains("403 Forbidden"),
667 "missing origin should return 403:\n{response}"
668 );
669 assert!(
670 response.contains("origin not allowed"),
671 "should explain the error:\n{response}"
672 );
673
674 assert!(
675 rx.await.is_err(),
676 "token channel should not receive a value without origin"
677 );
678 }
679
680 #[tokio::test]
681 async fn callback_server_rejects_wrong_code() {

Callers

nothing calls this directly

Calls 4

run_callback_serverFunction · 0.85
connectFunction · 0.85
spawnFunction · 0.50
readMethod · 0.45

Tested by

no test coverage detected