blob: f2f599341308f87392fb55aff9f73fc0bf45d4ba [file] [log] [blame]
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
package system_proxy.worker;
// The protection space determines the domain over which credentials can
// be automatically applied (defined in RFC7235 , section 2.2).
message ProtectionSpace {
// The origin of the URL of the web proxy server issuing
// the challenge, formatted as scheme://url:port.
optional string origin = 1;
// The case-sensitive realm string of the challenge.
optional string realm = 2;
// The authentication scheme that can be basic, digest or NTLM.
optional string scheme = 3;
}
message Credentials {
optional string username = 1;
optional string password = 2;
optional ProtectionSpace protection_space = 3;
// Authentication schemes for which policy set credentials can be
// automatically applied. Valid values are 'basic', 'digest' and 'ntlm'.
repeated string policy_credentials_auth_schemes = 4;
}
message SocketAddress {
// A listening ipv4 address for the local proxy server, serialized in
// network-byte-order.
optional uint32 addr = 1;
// This value should fit in a uint16_t.
optional uint32 port = 2;
}
message LogRequest {
optional string message = 1;
}
message ProxyResolutionRequest {
optional string target_url = 1;
}
message ProxyResolutionReply {
optional string target_url = 1;
// An ordered list of proxy servers, at least one in size, with the last
// element always being the direct option. The format of the strings is
// scheme://host:port with the last element being "direct://". The only
// schemes supported at the moment are "http" and "direct".
repeated string proxy_servers = 2;
}
message AuthRequiredRequest {
optional ProtectionSpace protection_space = 1;
// If true, it means that the credentials previously acquired for proxy
// authentication are incorrect. This should force the user to re-enter the
// credentials in the system authentication dialogue.
optional bool bad_cached_credentials = 2;
}
message WorkerRequest {
oneof params {
LogRequest log_request = 1;
ProxyResolutionRequest proxy_resolution_request = 2;
AuthRequiredRequest auth_required_request = 3;
}
}
message KerberosConfig {
optional bool enabled = 1;
// Path to the Kerberos credential cache.
optional bytes krb5cc_path = 2;
// Path to the Kerberos configuration data.
optional bytes krb5conf_path = 3;
}
message ClearUserCredentials {}
message WorkerConfigs {
oneof params {
Credentials credentials = 1;
// The local proxy listening address.
SocketAddress listening_address = 2;
ProxyResolutionReply proxy_resolution_reply = 3;
KerberosConfig kerberos_config = 4;
ClearUserCredentials clear_user_credentials = 5;
}
}