Chromium Code Reviews| Index: chrome/browser/chromeos/cros/onc_network_parser.cc |
| diff --git a/chrome/browser/chromeos/cros/onc_network_parser.cc b/chrome/browser/chromeos/cros/onc_network_parser.cc |
| index 8814d0cb3d1dddf57500882a572486c78d74a33e..0453cbbd0bb8badf13ae041cbec3b1106ada2201 100644 |
| --- a/chrome/browser/chromeos/cros/onc_network_parser.cc |
| +++ b/chrome/browser/chromeos/cros/onc_network_parser.cc |
| @@ -1374,10 +1374,15 @@ bool OncNetworkParser::ParseClientCertPattern(OncNetworkParser* parser, |
| return false; |
| } |
| + // Below, we fail when parsing certificate patterns for device policy ONC so |
| + // that an unmanaged user can't get to the place where a cert is presented for |
| + // them involuntarily. |
| + |
| switch (index) { |
| case PROPERTY_INDEX_ONC_CERTIFICATE_PATTERN_ENROLLMENT_URI: { |
| std::vector<std::string> resulting_list; |
| - if (!GetAsListOfStrings(value, &resulting_list)) |
| + if (!GetAsListOfStrings(value, &resulting_list) || |
| + parser->onc_source() == NetworkUIData::ONC_SOURCE_DEVICE_POLICY) |
|
Mattias Nissler (ping if slow)
2012/08/28 11:38:09
nit: Other code in this file seems to add curly br
Greg Spencer (Chromium)
2012/09/17 18:25:44
Done.
|
| return false; |
| CertificatePattern pattern = network->client_cert_pattern(); |
| pattern.set_enrollment_uri_list(resulting_list); |
| @@ -1386,7 +1391,8 @@ bool OncNetworkParser::ParseClientCertPattern(OncNetworkParser* parser, |
| } |
| case PROPERTY_INDEX_ONC_CERTIFICATE_PATTERN_ISSUER_CA_REF: { |
| std::vector<std::string> resulting_list; |
| - if (!GetAsListOfStrings(value, &resulting_list)) |
| + if (!GetAsListOfStrings(value, &resulting_list) || |
| + parser->onc_source() == NetworkUIData::ONC_SOURCE_DEVICE_POLICY) |
| return false; |
| CertificatePattern pattern = network->client_cert_pattern(); |
| pattern.set_issuer_ca_ref_list(resulting_list); |
| @@ -1417,7 +1423,8 @@ bool OncNetworkParser::ParseIssuerPattern(OncNetworkParser* parser, |
| const base::Value& value, |
| Network* network) { |
| IssuerSubjectPattern pattern; |
| - if (ParseIssuerSubjectPattern(&pattern, parser, index, value, network)) { |
| + if (ParseIssuerSubjectPattern(&pattern, parser, index, value, network) && |
| + parser->onc_source() != NetworkUIData::ONC_SOURCE_DEVICE_POLICY) { |
| CertificatePattern cert_pattern = network->client_cert_pattern(); |
| cert_pattern.set_issuer(pattern); |
| network->set_client_cert_pattern(cert_pattern); |
| @@ -1432,7 +1439,8 @@ bool OncNetworkParser::ParseSubjectPattern(OncNetworkParser* parser, |
| const base::Value& value, |
| Network* network) { |
| IssuerSubjectPattern pattern; |
| - if (ParseIssuerSubjectPattern(&pattern, parser, index, value, network)) { |
| + if (ParseIssuerSubjectPattern(&pattern, parser, index, value, network) && |
| + parser->onc_source() != NetworkUIData::ONC_SOURCE_DEVICE_POLICY) { |
| CertificatePattern cert_pattern = network->client_cert_pattern(); |
| cert_pattern.set_subject(pattern); |
| network->set_client_cert_pattern(cert_pattern); |