| #ifndef THIRD_PARTY_MILOTIC_EXTERNAL_CC_AUTHZ_PEER_IDENTITY_GRPC_H_ |
| #define THIRD_PARTY_MILOTIC_EXTERNAL_CC_AUTHZ_PEER_IDENTITY_GRPC_H_ |
| |
| #include "peer_identity.h" |
| #include "g3/grpc_headers.h" |
| |
| namespace milotic::authz { |
| |
| // Extracts the peer's SPIFFE identity (and FQDN, when present) from a gRPC |
| // auth context's X.509 SAN properties. Returns UNAUTHENTICATED if the peer is |
| // not authenticated and PERMISSION_DENIED if its identity is not an X.509 SAN. |
| // |
| // Kept separate from peer_identity.h so that the identity type itself carries |
| // no gRPC dependency. Named "Extract..." (not "Get...FromAuthContext") to stay |
| // distinct from BmcWebAuthorizerSingleton's same-purpose static, which |
| // delegates here. |
| grpc::Status ExtractPeerIdentityFromAuthContext( |
| const grpc::AuthContext& context, PeerSpiffeIdentity& peer_identity); |
| |
| } // namespace milotic::authz |
| |
| #endif // THIRD_PARTY_MILOTIC_EXTERNAL_CC_AUTHZ_PEER_IDENTITY_GRPC_H_ |