Deployment and lifecycle management for Nix
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix jwt bootstrap for client/server

+12 -17
+7
.envrc
··· 10 10 export RELEASE_COOKIE=$(cat $RELEASE_COOKIE_FILE) 11 11 12 12 export ERL_AFLAGS="-kernel shell_history enabled -kernel shell_history_file_bytes 1024000" 13 + 14 + export SOWER_BOOTSTRAP_TOKEN_FILE="$PWD/.bootstrap.token" 15 + if [ ! -f "$SOWER_BOOTSTRAP_TOKEN_FILE" ]; then 16 + echo "Creating development bootstrap token file" 17 + dd if=/dev/urandom bs=1 count=64 | hexdump -e '64/1 "%02x"' >"$SOWER_BOOTSTRAP_TOKEN_FILE" 18 + fi 19 + export SOWER_BOOTSTRAP_TOKEN=$(cat $SOWER_BOOTSTRAP_TOKEN_FILE)
+1 -1
client/src/sower/daemon.rs
··· 45 45 let socket = Socket::spawn(url, None).unwrap(); 46 46 match socket.connect(Duration::from_secs(10)).await { 47 47 Ok(_) => info!("Connected"), 48 - Err(_) => panic!("Failed to connect"), 48 + Err(e) => panic!("Failed to connect, {}", e), 49 49 } 50 50 51 51 let topic = Topic::from_string("client:all".to_string());
-9
lib/sower_web/client_channel.ex
··· 19 19 20 20 {:reply, {:ok, id}, socket} 21 21 end 22 - 23 - def handle_in("ping", %{"token" => token}, socket) do 24 - jwk = %{"kty" => "oct", "k" => :jose_base64url.encode("0123456789ABCDEF0123456789ABCDEF")} 25 - 26 - case JOSE.JWT.verify(jwk, token) do 27 - {true, jwt, _} -> {:reply, {:ok, "success"}, socket} 28 - _ -> {:reply, {:error, "unauthorized"}, socket} 29 - end 30 - end 31 22 end
+3 -6
lib/sower_web/client_socket.ex
··· 5 5 6 6 @impl true 7 7 def connect(%{"token" => token}, socket, _connect_info) do 8 - jwk = %{ 9 - "kty" => "oct", 10 - "k" => :jose_base64url.encode(Application.fetch_env!(:sower, :bootstrap_token)) 11 - } 8 + signer = Joken.Signer.create("HS256", Application.fetch_env!(:sower, :bootstrap_token)) 12 9 13 - case JOSE.JWT.verify(jwk, token) do 14 - {true, _jwt, _} -> {:ok, socket} 10 + case Joken.Signer.verify(token, signer) do 11 + {:ok, _} -> {:ok, socket} 15 12 _ -> {:error, "unauthorized"} 16 13 end 17 14 end
+1 -1
mix.exs
··· 28 28 {:gettext, "~> 0.20"}, 29 29 {:hackney, "~> 1.8"}, 30 30 {:jason, "~> 1.2"}, 31 - {:jose, "~> 1.11"}, 31 + {:joken, "~> 2.6.1"}, 32 32 {:makeup, "~> 1.1"}, 33 33 {:makeup_json, "~> 0.1.0"}, 34 34 {:open_api_spex, "~> 3.19"},