wasphin opened a new pull request, #3481: URL: https://github.com/apache/brpc/pull/3481
### What problem does this PR solve? Issue Number: resolve Problem Summary: Streaming RPC frames are consumed directly by the streaming parser and do not pass through `InputMessenger`'s authentication hook. A stream could also accept a frame carrying its ID from a socket other than the socket that created the stream. ### What is changed and the side effects? Changed: - Reject streaming frames on server sockets when configured authentication has not completed successfully. - Expose the socket authentication state needed by the streaming parser. - Keep server-accepted streams bound to the socket of their creating RPC and reject frames arriving from another socket. - Add separate unit tests for direct unauthenticated frame rejection and the complete client/server authentication and streaming service path. - Use an OS-assigned port in the service-path test to avoid test-environment port conflicts. Side effects: - Performance effects: One authentication-state check per server-side streaming frame when server authentication is configured, plus a socket identity check before dispatching a frame to a stream. - Breaking backward compatibility: No. Authenticated streaming RPC behavior and the wire format are unchanged. --- ### Check List: - Please make sure your changes are compilable. - When providing us with a new feature, it is best to add related tests. - Please follow [Contributor Covenant Code of Conduct](https://github.com/apache/brpc/blob/master/CODE_OF_CONDUCT.md). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
