Replace SSID String with WifiSsid
Bug: 215753949 Test: atest DevicePolicyManagerTest Change-Id: I74fcb6c3476a5e1b7ac38e7f7c5b3880e3895f30
This commit is contained in:
@@ -7930,11 +7930,11 @@ package android.app.admin {
|
||||
}
|
||||
|
||||
public final class WifiSsidPolicy implements android.os.Parcelable {
|
||||
method @NonNull public static android.app.admin.WifiSsidPolicy createAllowlistPolicy(@NonNull java.util.Set<java.lang.String>);
|
||||
method @NonNull public static android.app.admin.WifiSsidPolicy createDenylistPolicy(@NonNull java.util.Set<java.lang.String>);
|
||||
method @NonNull public static android.app.admin.WifiSsidPolicy createAllowlistPolicy(@NonNull java.util.Set<android.net.wifi.WifiSsid>);
|
||||
method @NonNull public static android.app.admin.WifiSsidPolicy createDenylistPolicy(@NonNull java.util.Set<android.net.wifi.WifiSsid>);
|
||||
method public int describeContents();
|
||||
method public int getPolicyType();
|
||||
method @NonNull public java.util.Set<java.lang.String> getSsids();
|
||||
method @NonNull public java.util.Set<android.net.wifi.WifiSsid> getSsids();
|
||||
method public void writeToParcel(@NonNull android.os.Parcel, int);
|
||||
field @NonNull public static final android.os.Parcelable.Creator<android.app.admin.WifiSsidPolicy> CREATOR;
|
||||
field public static final int WIFI_SSID_POLICY_TYPE_ALLOWLIST = 0; // 0x0
|
||||
|
||||
@@ -59,6 +59,7 @@ import android.graphics.drawable.Drawable;
|
||||
import android.net.PrivateDnsConnectivityChecker;
|
||||
import android.net.ProxyInfo;
|
||||
import android.net.Uri;
|
||||
import android.net.wifi.WifiSsid;
|
||||
import android.nfc.NfcAdapter;
|
||||
import android.os.Binder;
|
||||
import android.os.Build;
|
||||
@@ -111,6 +112,7 @@ import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Proxy;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.KeyFactory;
|
||||
import java.security.KeyPair;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
@@ -14896,10 +14898,14 @@ public class DevicePolicyManager {
|
||||
mService.setSsidAllowlist(new ArrayList<>());
|
||||
} else {
|
||||
int policyType = policy.getPolicyType();
|
||||
List<String> ssidList = new ArrayList<>();
|
||||
for (WifiSsid ssid : policy.getSsids()) {
|
||||
ssidList.add(new String(ssid.getBytes(), StandardCharsets.UTF_8));
|
||||
}
|
||||
if (policyType == WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_ALLOWLIST) {
|
||||
mService.setSsidAllowlist(new ArrayList<>(policy.getSsids()));
|
||||
mService.setSsidAllowlist(ssidList);
|
||||
} else {
|
||||
mService.setSsidDenylist(new ArrayList<>(policy.getSsids()));
|
||||
mService.setSsidDenylist(ssidList);
|
||||
}
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
@@ -14925,11 +14931,21 @@ public class DevicePolicyManager {
|
||||
try {
|
||||
List<String> allowlist = mService.getSsidAllowlist();
|
||||
if (!allowlist.isEmpty()) {
|
||||
return WifiSsidPolicy.createAllowlistPolicy(new ArraySet<>(allowlist));
|
||||
List<WifiSsid> wifiSsidAllowlist = new ArrayList<>();
|
||||
for (String ssid : allowlist) {
|
||||
wifiSsidAllowlist.add(
|
||||
WifiSsid.fromBytes(ssid.getBytes(StandardCharsets.UTF_8)));
|
||||
}
|
||||
return WifiSsidPolicy.createAllowlistPolicy(new ArraySet<>(wifiSsidAllowlist));
|
||||
}
|
||||
List<String> denylist = mService.getSsidDenylist();
|
||||
if (!denylist.isEmpty()) {
|
||||
return WifiSsidPolicy.createDenylistPolicy(new ArraySet<>(denylist));
|
||||
List<WifiSsid> wifiSsidDenylist = new ArrayList<>();
|
||||
for (String ssid : denylist) {
|
||||
wifiSsidDenylist.add(
|
||||
WifiSsid.fromBytes(ssid.getBytes(StandardCharsets.UTF_8)));
|
||||
}
|
||||
return WifiSsidPolicy.createDenylistPolicy(new ArraySet<>(wifiSsidDenylist));
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
|
||||
@@ -18,6 +18,7 @@ package android.app.admin;
|
||||
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.NonNull;
|
||||
import android.net.wifi.WifiSsid;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.util.ArraySet;
|
||||
@@ -70,25 +71,25 @@ public final class WifiSsidPolicy implements Parcelable {
|
||||
public @interface WifiSsidPolicyType {}
|
||||
|
||||
private @WifiSsidPolicyType int mPolicyType;
|
||||
private ArraySet<String> mSsids;
|
||||
private ArraySet<WifiSsid> mSsids;
|
||||
|
||||
private WifiSsidPolicy(@WifiSsidPolicyType int policyType, @NonNull Set<String> ssids) {
|
||||
private WifiSsidPolicy(@WifiSsidPolicyType int policyType, @NonNull Set<WifiSsid> ssids) {
|
||||
mPolicyType = policyType;
|
||||
mSsids = new ArraySet<>(ssids);
|
||||
}
|
||||
|
||||
private WifiSsidPolicy(Parcel in) {
|
||||
mPolicyType = in.readInt();
|
||||
mSsids = (ArraySet<String>) in.readArraySet(null);
|
||||
mSsids = (ArraySet<WifiSsid>) in.readArraySet(null);
|
||||
}
|
||||
/**
|
||||
* Create the allowlist Wi-Fi SSID Policy.
|
||||
*
|
||||
* @param ssids allowlist of SSIDs in UTF-8 without double quotes format
|
||||
* @param ssids allowlist of {@link WifiSsid}
|
||||
* @throws IllegalArgumentException if the input ssids list is empty
|
||||
*/
|
||||
@NonNull
|
||||
public static WifiSsidPolicy createAllowlistPolicy(@NonNull Set<String> ssids) {
|
||||
public static WifiSsidPolicy createAllowlistPolicy(@NonNull Set<WifiSsid> ssids) {
|
||||
if (ssids.isEmpty()) {
|
||||
throw new IllegalArgumentException("SSID list cannot be empty");
|
||||
}
|
||||
@@ -98,11 +99,11 @@ public final class WifiSsidPolicy implements Parcelable {
|
||||
/**
|
||||
* Create the denylist Wi-Fi SSID Policy.
|
||||
*
|
||||
* @param ssids denylist of SSIDs in UTF-8 without double quotes format
|
||||
* @param ssids denylist of {@link WifiSsid}
|
||||
* @throws IllegalArgumentException if the input ssids list is empty
|
||||
*/
|
||||
@NonNull
|
||||
public static WifiSsidPolicy createDenylistPolicy(@NonNull Set<String> ssids) {
|
||||
public static WifiSsidPolicy createDenylistPolicy(@NonNull Set<WifiSsid> ssids) {
|
||||
if (ssids.isEmpty()) {
|
||||
throw new IllegalArgumentException("SSID list cannot be empty");
|
||||
}
|
||||
@@ -110,10 +111,10 @@ public final class WifiSsidPolicy implements Parcelable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the set of SSIDs in UTF-8 without double quotes format.
|
||||
* Returns the set of {@link WifiSsid}
|
||||
*/
|
||||
@NonNull
|
||||
public Set<String> getSsids() {
|
||||
public Set<WifiSsid> getSsids() {
|
||||
return mSsids;
|
||||
}
|
||||
|
||||
|
||||
@@ -120,6 +120,7 @@ import android.graphics.Color;
|
||||
import android.hardware.usb.UsbManager;
|
||||
import android.net.ProfileNetworkPreference;
|
||||
import android.net.Uri;
|
||||
import android.net.wifi.WifiSsid;
|
||||
import android.os.Build;
|
||||
import android.os.Build.VERSION_CODES;
|
||||
import android.os.Bundle;
|
||||
@@ -164,6 +165,7 @@ import org.mockito.stubbing.Answer;
|
||||
import java.io.File;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Proxy;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
@@ -8334,7 +8336,8 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
|
||||
@Test
|
||||
public void testSetSsidAllowlist_noDeviceOwnerOrPoOfOrgOwnedDevice() {
|
||||
final Set<String> ssids = Collections.singleton("ssid1");
|
||||
final Set<WifiSsid> ssids = new ArraySet<>(
|
||||
Arrays.asList(WifiSsid.fromBytes("ssid1".getBytes(StandardCharsets.UTF_8))));
|
||||
WifiSsidPolicy policy = WifiSsidPolicy.createAllowlistPolicy(ssids);
|
||||
assertThrows(SecurityException.class, () -> dpm.setWifiSsidPolicy(policy));
|
||||
}
|
||||
@@ -8343,7 +8346,8 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
public void testSetSsidAllowlist_asDeviceOwner() throws Exception {
|
||||
setDeviceOwner();
|
||||
|
||||
final Set<String> ssids = Collections.singleton("ssid1");
|
||||
final Set<WifiSsid> ssids = new ArraySet<>(
|
||||
Arrays.asList(WifiSsid.fromBytes("ssid1".getBytes(StandardCharsets.UTF_8))));
|
||||
WifiSsidPolicy policy = WifiSsidPolicy.createAllowlistPolicy(ssids);
|
||||
dpm.setWifiSsidPolicy(policy);
|
||||
assertThat(dpm.getWifiSsidPolicy().getSsids()).isEqualTo(ssids);
|
||||
@@ -8359,7 +8363,10 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
configureProfileOwnerOfOrgOwnedDevice(admin1, managedProfileUserId);
|
||||
mContext.binder.callingUid = managedProfileAdminUid;
|
||||
|
||||
final Set<String> ssids = new ArraySet<>(Arrays.asList("ssid1", "ssid2", "ssid3"));
|
||||
final Set<WifiSsid> ssids = new ArraySet<>(
|
||||
Arrays.asList(WifiSsid.fromBytes("ssid1".getBytes(StandardCharsets.UTF_8)),
|
||||
WifiSsid.fromBytes("ssid2".getBytes(StandardCharsets.UTF_8)),
|
||||
WifiSsid.fromBytes("ssid3".getBytes(StandardCharsets.UTF_8))));
|
||||
WifiSsidPolicy policy = WifiSsidPolicy.createAllowlistPolicy(ssids);
|
||||
dpm.setWifiSsidPolicy(policy);
|
||||
assertThat(dpm.getWifiSsidPolicy().getSsids()).isEqualTo(ssids);
|
||||
@@ -8371,14 +8378,15 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
public void testSetSsidAllowlist_emptyList() throws Exception {
|
||||
setDeviceOwner();
|
||||
|
||||
final Set<String> ssids = new ArraySet<>();
|
||||
final Set<WifiSsid> ssids = new ArraySet<>();
|
||||
assertThrows(IllegalArgumentException.class,
|
||||
() -> WifiSsidPolicy.createAllowlistPolicy(ssids));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetSsidDenylist_noDeviceOwnerOrPoOfOrgOwnedDevice() {
|
||||
final Set<String> ssids = Collections.singleton("ssid1");
|
||||
final Set<WifiSsid> ssids = new ArraySet<>(
|
||||
Arrays.asList(WifiSsid.fromBytes("ssid1".getBytes(StandardCharsets.UTF_8))));
|
||||
WifiSsidPolicy policy = WifiSsidPolicy.createDenylistPolicy(ssids);
|
||||
assertThrows(SecurityException.class, () -> dpm.setWifiSsidPolicy(policy));
|
||||
}
|
||||
@@ -8387,7 +8395,8 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
public void testSetSsidDenylist_asDeviceOwner() throws Exception {
|
||||
setDeviceOwner();
|
||||
|
||||
final Set<String> ssids = Collections.singleton("ssid1");
|
||||
final Set<WifiSsid> ssids = new ArraySet<>(
|
||||
Arrays.asList(WifiSsid.fromBytes("ssid1".getBytes(StandardCharsets.UTF_8))));
|
||||
WifiSsidPolicy policy = WifiSsidPolicy.createDenylistPolicy(ssids);
|
||||
dpm.setWifiSsidPolicy(policy);
|
||||
assertThat(dpm.getWifiSsidPolicy().getSsids()).isEqualTo(ssids);
|
||||
@@ -8403,7 +8412,10 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
configureProfileOwnerOfOrgOwnedDevice(admin1, managedProfileUserId);
|
||||
mContext.binder.callingUid = managedProfileAdminUid;
|
||||
|
||||
final Set<String> ssids = new ArraySet<>(Arrays.asList("ssid1", "ssid2", "ssid3"));
|
||||
final Set<WifiSsid> ssids = new ArraySet<>(
|
||||
Arrays.asList(WifiSsid.fromBytes("ssid1".getBytes(StandardCharsets.UTF_8)),
|
||||
WifiSsid.fromBytes("ssid2".getBytes(StandardCharsets.UTF_8)),
|
||||
WifiSsid.fromBytes("ssid3".getBytes(StandardCharsets.UTF_8))));
|
||||
WifiSsidPolicy policy = WifiSsidPolicy.createDenylistPolicy(ssids);
|
||||
dpm.setWifiSsidPolicy(policy);
|
||||
assertThat(dpm.getWifiSsidPolicy().getSsids()).isEqualTo(ssids);
|
||||
@@ -8415,7 +8427,7 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
public void testSetSsidDenylist_emptyList() throws Exception {
|
||||
setDeviceOwner();
|
||||
|
||||
final Set<String> ssids = new ArraySet<>();
|
||||
final Set<WifiSsid> ssids = new ArraySet<>();
|
||||
assertThrows(IllegalArgumentException.class,
|
||||
() -> WifiSsidPolicy.createDenylistPolicy(ssids));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user