diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java index 6a847b0..741ef70 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java @@ -1976,11 +1976,13 @@ public class OvsdbDao { minHwMode = "11x"; } - if (ssidSecurityMode.equals("wpaPSK") || ssidSecurityMode.equals("wpa2PSK")) { + if (ssidSecurityMode.equals("wpaPSK") || ssidSecurityMode.equals("wpa2PSK") + || ssidSecurityMode.equals("wpa2OnlyPSK")) { opensyncSecurityMode = "WPA-PSK"; } else if (ssidSecurityMode.equals("wep")) { opensyncSecurityMode = "WEP"; - } else if (ssidSecurityMode.equals("wpaEAP")) { + } else if (ssidSecurityMode.equals("wpaEAP") || ssidSecurityMode.equals("wpa2EAP") + || ssidSecurityMode.equals("wpa2OnlyEAP")) { opensyncSecurityMode = "WPA-EAP"; } @@ -1988,37 +1990,25 @@ public class OvsdbDao { security.put("encryption", opensyncSecurityMode); // key and mode is N/A for OPEN security if (!opensyncSecurityMode.equals("OPEN")) { - if (ssidSecurityMode.equals("wpa2PSK") || ssidSecurityMode.equals("wpa2OnlyPSK")) { + if (ssidSecurityMode.equals("wpa2PSK")) { + security.put("key", ssidConfig.getKeyStr()); + security.put("mode", "mixed"); + } else if (ssidSecurityMode.equals("wpa2OnlyPSK")) { security.put("key", ssidConfig.getKeyStr()); security.put("mode", "2"); - } else if (opensyncSecurityMode.equals("WPA-EAP")) { + } else if (ssidSecurityMode.equals("wpaPSK")) { + security.put("key", ssidConfig.getKeyStr()); + security.put("mode", "1"); + } else if (ssidSecurityMode.equals("wpa2OnlyEAP")) { security.put("mode", "2"); - // Has Radius ? - List radiusServiceList = new ArrayList(); - radiusServiceList = opensyncApConfig.getRadiusProfiles().stream() - .filter(p -> p.getName().equals((ssidConfig.getRadiusServiceName()))) - .collect(Collectors.toList()); - if (!radiusServiceList.isEmpty()) { - Profile profileRadius = radiusServiceList.get(0); - String region = opensyncApConfig.getEquipmentLocation().getName(); - List radiusServerList = new ArrayList(); - RadiusProfile radiusProfileDetails = ((RadiusProfile) profileRadius.getDetails()); - LOG.debug("Radius Profile Details {}", radiusProfileDetails.toPrettyString()); - RadiusServiceRegion radiusServiceRegion = radiusProfileDetails.findServiceRegion(region); - LOG.debug("Radius Service Region {}", radiusServiceRegion.toPrettyString()); - - radiusServerList = radiusServiceRegion - .findServerConfiguration(ssidConfig.getRadiusServiceName()); - if (!radiusServerList.isEmpty()) { - - RadiusServer rServer = radiusServerList.get(0); - security.put("radius_server_ip", rServer.getIpAddress().getHostAddress()); - security.put("radius_server_port", String.valueOf(rServer.getAuthPort())); - security.put("radius_server_secret", rServer.getSecret()); - - } - } - } else { + getRadiusConfiguration(opensyncApConfig, ssidConfig, security); + } else if (ssidSecurityMode.equals("wpa2EAP")) { + security.put("mode", "mixed"); + getRadiusConfiguration(opensyncApConfig, ssidConfig, security); + } else if (ssidSecurityMode.equals("wpaEAP")) { + security.put("mode", "1"); + getRadiusConfiguration(opensyncApConfig, ssidConfig, security); + } else if (ssidSecurityMode.equals("wep")) { security.put("key", ssidConfig.getKeyStr()); security.put("mode", "1"); } @@ -2058,6 +2048,27 @@ public class OvsdbDao { } + private void getRadiusConfiguration(OpensyncAPConfig opensyncApConfig, SsidConfiguration ssidConfig, + Map security) { + List radiusServiceList = new ArrayList(); + radiusServiceList = opensyncApConfig.getRadiusProfiles().stream() + .filter(p -> p.getName().equals((ssidConfig.getRadiusServiceName()))).collect(Collectors.toList()); + if (!radiusServiceList.isEmpty()) { + Profile profileRadius = radiusServiceList.get(0); + String region = opensyncApConfig.getEquipmentLocation().getName(); + List radiusServerList = new ArrayList(); + RadiusProfile radiusProfileDetails = ((RadiusProfile) profileRadius.getDetails()); + RadiusServiceRegion radiusServiceRegion = radiusProfileDetails.findServiceRegion(region); + radiusServerList = radiusServiceRegion.findServerConfiguration(ssidConfig.getRadiusServiceName()); + if (!radiusServerList.isEmpty()) { + RadiusServer rServer = radiusServerList.get(0); + security.put("radius_server_ip", rServer.getIpAddress().getHostAddress()); + security.put("radius_server_port", String.valueOf(rServer.getAuthPort())); + security.put("radius_server_secret", rServer.getSecret()); + } + } + } + private void updateWifiInetConfig(OvsdbClient ovsdbClient, int vlanId, String ifName, boolean enabled, boolean isNAT, String ifType, String gateway, String inet, Map dns, String ipAssignScheme, Uuid vifConfigUuid) {