mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Merge branch 'release-3.0.x' of https://github.com/wso2/carbon-device-mgt-plugins into release-3.0.x
This commit is contained in:
commit
d918e32d59
@ -54,6 +54,7 @@ public class RegisterActivity extends Activity {
|
||||
private EditText mHostView;
|
||||
private View mProgressView;
|
||||
private View mLoginFormView;
|
||||
private Button deviceRegisterButton;
|
||||
private Handler mUiHandler = new Handler();
|
||||
|
||||
@Override
|
||||
@ -73,7 +74,7 @@ public class RegisterActivity extends Activity {
|
||||
AvailableSensorsInDevice availableSensorsInDevice = new AvailableSensorsInDevice(getApplicationContext());
|
||||
availableSensorsInDevice.setContent();
|
||||
|
||||
Button deviceRegisterButton = (Button) findViewById(R.id.device_register_button);
|
||||
deviceRegisterButton = (Button) findViewById(R.id.device_register_button);
|
||||
|
||||
|
||||
deviceRegisterButton.setOnClickListener(new OnClickListener() {
|
||||
@ -204,6 +205,7 @@ public class RegisterActivity extends Activity {
|
||||
// and hide the relevant UI components.
|
||||
mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
|
||||
deviceRegisterButton.setVisibility(show? View.VISIBLE : View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -52,11 +52,8 @@ import java.util.List;
|
||||
* This is an android service which publishes the data to the server.
|
||||
*/
|
||||
public class DataPublisherService extends Service {
|
||||
private static final String TAG = DataPublisherService.class.getName();
|
||||
private static String KEY_TAG = "key";
|
||||
private static String TIME_TAG = "time";
|
||||
private static String VALUE_TAG = "value";
|
||||
public static Context context;
|
||||
private final String TAG = DataPublisherService.class.getName();
|
||||
private Context context;
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
@ -68,9 +65,9 @@ public class DataPublisherService extends Service {
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
context = this;
|
||||
Log.d(TAG, "service started");
|
||||
Runnable runnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
// Runnable runnable = new Runnable() {
|
||||
// @Override
|
||||
// public void run() {
|
||||
try {
|
||||
List<Event> events = new ArrayList<>();
|
||||
//retrieve sensor data.
|
||||
@ -315,10 +312,10 @@ public class DataPublisherService extends Service {
|
||||
} catch (TransportHandlerException e) {
|
||||
Log.e(TAG, "Data Publish Failed", e);
|
||||
}
|
||||
}
|
||||
};
|
||||
Thread dataUploaderThread = new Thread(runnable);
|
||||
dataUploaderThread.start();
|
||||
// }
|
||||
// };
|
||||
// Thread dataUploaderThread = new Thread(runnable);
|
||||
// dataUploaderThread.start();
|
||||
return Service.START_NOT_STICKY;
|
||||
}
|
||||
}
|
||||
@ -183,8 +183,8 @@ public class LocationDataReader extends DataReader implements LocationListener {
|
||||
double distance =CalculationByDistance(latitude, longitude, lat_old, lon_old)/1000;
|
||||
|
||||
speed = (float)distance/(float)time;
|
||||
Toast.makeText(mContext, longitude+"\n"+latitude+"\nDistance is: "
|
||||
+distance+"\nSpeed is: "+speed , Toast.LENGTH_SHORT).show();
|
||||
// Toast.makeText(mContext, longitude+"\n"+latitude+"\nDistance is: "
|
||||
// +distance+"\nSpeed is: "+speed , Toast.LENGTH_SHORT).show();
|
||||
|
||||
|
||||
Intent intent = new Intent("speedUpdate");
|
||||
|
||||
@ -73,7 +73,7 @@ public class ActivitySelectSensor extends AppCompatActivity
|
||||
private ListView listView;
|
||||
private SensorManager sensorManager;
|
||||
private ArrayList<Sensor> sensors = new ArrayList<>();
|
||||
private EditText sessionIdText;
|
||||
// private EditText sessionIdText;
|
||||
private RealTimeSensorReader sensorReader = null;
|
||||
private RealTimeSensorChangeReceiver realTimeSensorChangeReceiver = new RealTimeSensorChangeReceiver();
|
||||
private SupportedSensors supportedSensors = SupportedSensors.getInstance();
|
||||
@ -87,21 +87,21 @@ public class ActivitySelectSensor extends AppCompatActivity
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
|
||||
sessionIdText = (EditText) findViewById(R.id.sessionId);
|
||||
sessionIdText.setCursorVisible(false);
|
||||
//sessionIdText = (EditText) findViewById(R.id.sessionId);
|
||||
// sessionIdText.setCursorVisible(false);
|
||||
|
||||
listView = (ListView) findViewById(R.id.senseListContainer);
|
||||
verifyBluetooth();
|
||||
//verifyBluetooth();
|
||||
|
||||
registerReceiver(realTimeSensorChangeReceiver, new IntentFilter("sensorDataMap"));
|
||||
|
||||
sessionIdText.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
sessionIdText.setCursorVisible(true);
|
||||
|
||||
}
|
||||
});
|
||||
// sessionIdText.setOnClickListener(new View.OnClickListener() {
|
||||
// @Override
|
||||
// public void onClick(View v) {
|
||||
// sessionIdText.setCursorVisible(true);
|
||||
//
|
||||
// }
|
||||
// });
|
||||
|
||||
//Publish data
|
||||
FloatingActionButton fbtnPublishData = (FloatingActionButton) findViewById(R.id.publish);
|
||||
@ -126,33 +126,33 @@ public class ActivitySelectSensor extends AppCompatActivity
|
||||
}
|
||||
});
|
||||
|
||||
FloatingActionButton fbtnSpeechRecongnizer = (FloatingActionButton) findViewById(R.id.speech);
|
||||
fbtnSpeechRecongnizer.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
String sessionId = sessionIdText.getText().toString();
|
||||
if (!sessionId.isEmpty()) {
|
||||
Intent intent = new Intent(getApplicationContext(), WordRecognitionActivity.class);
|
||||
intent.putExtra("sessionId", sessionId);
|
||||
startActivity(intent);
|
||||
} else {
|
||||
Toast.makeText(ActivitySelectSensor.this, "Please type a session id value", Toast.LENGTH_SHORT)
|
||||
.show();
|
||||
}
|
||||
//FloatingActionButton fbtnSpeechRecongnizer = (FloatingActionButton) findViewById(R.id.speech);
|
||||
// fbtnSpeechRecongnizer.setOnClickListener(new View.OnClickListener() {
|
||||
// @Override
|
||||
// public void onClick(View v) {
|
||||
// String sessionId = sessionIdText.getText().toString();
|
||||
// if (!sessionId.isEmpty()) {
|
||||
// Intent intent = new Intent(getApplicationContext(), WordRecognitionActivity.class);
|
||||
// intent.putExtra("sessionId", sessionId);
|
||||
// startActivity(intent);
|
||||
// } else {
|
||||
// Toast.makeText(ActivitySelectSensor.this, "Please type a session id value", Toast.LENGTH_SHORT)
|
||||
// .show();
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// });
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
FloatingActionButton fbtnBeaconMonitor = (FloatingActionButton) findViewById(R.id.beacon);
|
||||
fbtnBeaconMonitor.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent(getApplicationContext(), BeaconMonitoringActivity.class);
|
||||
startActivity(intent);
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
// FloatingActionButton fbtnBeaconMonitor = (FloatingActionButton) findViewById(R.id.beacon);
|
||||
// fbtnBeaconMonitor.setOnClickListener(new View.OnClickListener() {
|
||||
// @Override
|
||||
// public void onClick(View v) {
|
||||
// Intent intent = new Intent(getApplicationContext(), BeaconMonitoringActivity.class);
|
||||
// startActivity(intent);
|
||||
//
|
||||
//
|
||||
// }
|
||||
// });
|
||||
|
||||
|
||||
sharedPreferences = getSharedPreferences(SupportedSensors.SELECTED_SENSORS, 0);
|
||||
@ -313,43 +313,43 @@ public class ActivitySelectSensor extends AppCompatActivity
|
||||
unregisterReceiver(realTimeSensorChangeReceiver);
|
||||
}
|
||||
|
||||
private void verifyBluetooth() {
|
||||
|
||||
try {
|
||||
if (!BeaconManager.getInstanceForApplication(this).checkAvailability()) {
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setTitle("Bluetooth not enabled");
|
||||
builder.setMessage("Please enable bluetooth in settings and restart this application.");
|
||||
builder.setPositiveButton(android.R.string.ok, null);
|
||||
builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||
|
||||
@Override
|
||||
public void onDismiss(DialogInterface dialog) {
|
||||
finish();
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
});
|
||||
builder.show();
|
||||
|
||||
}
|
||||
} catch (RuntimeException e) {
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setTitle("Bluetooth LE not available");
|
||||
builder.setMessage("Sorry, this device does not support Bluetooth LE.");
|
||||
builder.setPositiveButton(android.R.string.ok, null);
|
||||
builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||
|
||||
@Override
|
||||
public void onDismiss(DialogInterface dialog) {
|
||||
finish();
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
});
|
||||
builder.show();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
// private void verifyBluetooth() {
|
||||
//
|
||||
// try {
|
||||
// if (!BeaconManager.getInstanceForApplication(this).checkAvailability()) {
|
||||
// final AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
// builder.setTitle("Bluetooth not enabled");
|
||||
// builder.setMessage("Please enable bluetooth in settings and restart this application.");
|
||||
// builder.setPositiveButton(android.R.string.ok, null);
|
||||
// builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||
//
|
||||
// @Override
|
||||
// public void onDismiss(DialogInterface dialog) {
|
||||
// finish();
|
||||
// System.exit(0);
|
||||
// }
|
||||
//
|
||||
// });
|
||||
// builder.show();
|
||||
//
|
||||
// }
|
||||
// } catch (RuntimeException e) {
|
||||
// final AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
// builder.setTitle("Bluetooth LE not available");
|
||||
// builder.setMessage("Sorry, this device does not support Bluetooth LE.");
|
||||
// builder.setPositiveButton(android.R.string.ok, null);
|
||||
// builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||
//
|
||||
// @Override
|
||||
// public void onDismiss(DialogInterface dialog) {
|
||||
// finish();
|
||||
// System.exit(0);
|
||||
// }
|
||||
//
|
||||
// });
|
||||
// builder.show();
|
||||
//
|
||||
// }
|
||||
//
|
||||
// }
|
||||
}
|
||||
|
||||
@ -57,6 +57,7 @@ public class SenseClientAsyncExecutor extends AsyncTask<String, Void, Map<String
|
||||
private final static String TAG = "SenseService Client";
|
||||
private static final String STATUS = "status";
|
||||
private final String PASSWORD_GRANT_TYPE = "password";
|
||||
private final String SCOPE = "perm:android-sense:enroll";
|
||||
private final static String DEVICE_NAME = Build.MANUFACTURER + " " + Build.MODEL;
|
||||
private Context context;
|
||||
|
||||
@ -117,7 +118,7 @@ public class SenseClientAsyncExecutor extends AsyncTask<String, Void, Map<String
|
||||
new BasicAuthRequestInterceptor(apiApplicationKey.getConsumerKey(), apiApplicationKey.getConsumerSecret()))
|
||||
.contract(new JAXRSContract()).encoder(new JacksonEncoder()).decoder(new JacksonDecoder())
|
||||
.target(TokenIssuerService.class, endpoint);
|
||||
accessTokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password, "device_" + deviceId);
|
||||
accessTokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password, "device_" + deviceId, SCOPE);
|
||||
|
||||
//DeviceRegister
|
||||
AndroidSenseManagerService androidSenseManagerService = Feign.builder().client(disableHostnameVerification)
|
||||
|
||||
@ -29,7 +29,7 @@ public interface TokenIssuerService {
|
||||
@POST
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
AccessTokenInfo getToken(@QueryParam("grant_type") String grant, @QueryParam("username") String username,
|
||||
@QueryParam("password") String password, @QueryParam("deviceId") String deviceId);
|
||||
@QueryParam("password") String password, @QueryParam("deviceId") String deviceId, @QueryParam("scope") String scope);
|
||||
|
||||
@POST
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
|
||||
@ -26,41 +26,65 @@
|
||||
<include layout="@layout/content_activity_select_sensor"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_gravity="bottom|center"
|
||||
android:layout_height="wrap_content" >
|
||||
android:layout_height="100dp"
|
||||
android:layout_margin="20dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
android:id="@+id/beacon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/fab_margin"
|
||||
android:src="@drawable/beacon"/>
|
||||
<!--<RelativeLayout-->
|
||||
<!--android:layout_width="0dp"-->
|
||||
<!--android:layout_height="match_parent"-->
|
||||
<!--android:layout_weight="0.25"-->
|
||||
<!-->-->
|
||||
<!--<android.support.design.widget.FloatingActionButton-->
|
||||
<!--android:id="@+id/beacon"-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="match_parent"-->
|
||||
<!--android:layout_margin="15dp"-->
|
||||
<!--android:src="@drawable/beacon"/>-->
|
||||
<!--</RelativeLayout>-->
|
||||
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
android:id="@+id/addSensors"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/fab_margin"
|
||||
android:src="@android:drawable/ic_input_add"/>
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="0.5"
|
||||
>
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
android:id="@+id/addSensors"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="15dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:src="@android:drawable/ic_input_add"/>
|
||||
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
android:id="@+id/speech"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/fab_margin"
|
||||
android:src="@drawable/mic"/>
|
||||
</RelativeLayout>
|
||||
|
||||
<!--<RelativeLayout-->
|
||||
<!--android:layout_width="0dp"-->
|
||||
<!--android:layout_height="match_parent"-->
|
||||
<!--android:layout_weight="0.25"-->
|
||||
<!-->-->
|
||||
<!--<android.support.design.widget.FloatingActionButton-->
|
||||
<!--android:id="@+id/speech"-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="match_parent"-->
|
||||
<!--android:layout_margin="15dp"-->
|
||||
<!--android:src="@drawable/mic"/>-->
|
||||
<!--</RelativeLayout>-->
|
||||
|
||||
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
android:id="@+id/publish"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/fab_margin"
|
||||
android:adjustViewBounds="false"
|
||||
android:src="@drawable/pushtoserver"/>
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="0.5"
|
||||
>
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
android:id="@+id/publish"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="15dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:src="@drawable/pushtoserver"/>
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
|
||||
@ -11,18 +11,18 @@
|
||||
tools:context="org.wso2.carbon.iot.android.sense.realtimeviewer.ActivitySelectSensor"
|
||||
android:id="@+id/parentContainer">
|
||||
|
||||
<EditText
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" android:hint="@string/sessionId"
|
||||
android:id="@+id/sessionId"
|
||||
android:inputType="text"
|
||||
android:maxLines="1" android:singleLine="true"/>
|
||||
<!--<EditText-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="wrap_content" android:hint="@string/sessionId"-->
|
||||
<!--android:id="@+id/sessionId"-->
|
||||
<!--android:inputType="text"-->
|
||||
<!--android:maxLines="1" android:singleLine="true"/>-->
|
||||
|
||||
<ListView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/senseListContainer"
|
||||
android:layout_below="@+id/sessionId">
|
||||
>
|
||||
</ListView>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
@ -3,8 +3,8 @@
|
||||
|
||||
<item android:id="@+id/select" android:icon="@android:drawable/ic_menu_agenda"
|
||||
android:title="Sensors" />
|
||||
<item android:id="@+id/speech_recognizer" android:icon="@android:drawable/ic_menu_agenda"
|
||||
android:title="Speech Recognizer" />
|
||||
<!--<item android:id="@+id/speech_recognizer" android:icon="@android:drawable/ic_menu_agenda"-->
|
||||
<!--android:title="Speech Recognizer" />-->
|
||||
<!--<group android:checkableBehavior="single">-->
|
||||
<!-- -->
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ buildscript {
|
||||
maven { url 'https://repo.eclipse.org/content/repositories/paho-releases/' }
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:2.1.0'
|
||||
classpath 'com.android.tools.build:gradle:2.2.0'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#Wed May 11 14:40:10 IST 2016
|
||||
#Mon Jan 09 12:13:26 IST 2017
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
|
||||
|
||||
@ -48,7 +48,6 @@ import java.util.Properties;
|
||||
public class AndroidSenseServiceImpl implements AndroidSenseService {
|
||||
|
||||
private static Log log = LogFactory.getLog(AndroidSenseServiceImpl.class);
|
||||
private static String DEFAULT_MQTT_ENDPOINT = "tcp://localhost:1886";
|
||||
|
||||
@Path("device/{deviceId}/words")
|
||||
@POST
|
||||
|
||||
@ -40,7 +40,7 @@ public class AndroidSenseConstants {
|
||||
public static final String HOST_NAME = "HostName";
|
||||
public static final String LOCALHOST = "localhost";
|
||||
public static final String CONFIG_TYPE = "general";
|
||||
public static final String DEFAULT_ENDPOINT = "tcp://localhost:1886";
|
||||
public static final String DEFAULT_ENDPOINT = "tcp://${mqtt.broker.host}:${mqtt.broker.port}";
|
||||
|
||||
public static final String SCOPE = "scope";
|
||||
|
||||
|
||||
@ -13,6 +13,7 @@ import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService
|
||||
import org.wso2.carbon.base.ServerConfiguration;
|
||||
import org.wso2.carbon.context.CarbonContext;
|
||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||
import org.wso2.carbon.core.util.Utils;
|
||||
import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationService;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
|
||||
@ -205,7 +206,7 @@ public class APIUtil {
|
||||
}
|
||||
|
||||
public static String getMqttEndpoint() throws ConfigurationManagementException {
|
||||
String iotServerIP = AndroidSenseConstants.DEFAULT_ENDPOINT;
|
||||
String iotServerIP = Utils.replaceSystemProperty(AndroidSenseConstants.DEFAULT_ENDPOINT);
|
||||
iotServerIP = iotServerIP.replace(AndroidSenseConstants.LOCALHOST, getServerUrl());;
|
||||
PlatformConfiguration configuration = APIUtil.getTenantConfigurationManagementService().getConfiguration(
|
||||
AndroidSenseConstants.CONFIG_TYPE);
|
||||
@ -224,15 +225,11 @@ public class APIUtil {
|
||||
}
|
||||
|
||||
public static String getServerUrl() {
|
||||
String hostName = ServerConfiguration.getInstance().getFirstProperty(AndroidSenseConstants.HOST_NAME);
|
||||
try {
|
||||
if (hostName == null) {
|
||||
hostName = NetworkUtils.getLocalHostname();
|
||||
}
|
||||
return org.apache.axis2.util.Utils.getIpAddress();
|
||||
} catch (SocketException e) {
|
||||
hostName = "localhost";
|
||||
log.warn("Failed retrieving the hostname, therefore set to localhost", e);
|
||||
return "localhost";
|
||||
}
|
||||
return hostName;
|
||||
}
|
||||
}
|
||||
|
||||
@ -16,10 +16,6 @@
|
||||
<servlet-name>CXFServlet</servlet-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
<context-param>
|
||||
<param-name>isAdminService</param-name>
|
||||
<param-value>false</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>doAuthentication</param-name>
|
||||
<param-value>true</param-value>
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
{
|
||||
"deviceType": {
|
||||
"label": "Android Sense",
|
||||
"category": "iot"
|
||||
"category": "iot",
|
||||
"scopes" : [
|
||||
"perm:android-sense:enroll"
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -42,7 +42,7 @@
|
||||
<a href="{{hostName}}{{@unit.publicUri}}/asset/androidsense.apk" class="btn-operations"><i class="fw fw-download fw-inverse fw-lg add-margin-1x"></i> Download APK</a>
|
||||
<a href="javascript:toggleEmailInvite()" class="btn-operations"><i class="fw fw-mail fw-inverse fw-lg add-margin-1x"></i> Invite by Email</a>
|
||||
|
||||
<p class="doc-link">Click <a href="https://docs.wso2.com/display/IoTS100/Android+Sense"
|
||||
<p class="doc-link">Click <a href="https://docs.wso2.com/display/IoTS300/Android+Sense"
|
||||
target="_blank">[ here ]</a> for latest instructions and
|
||||
troubleshooting.</p>
|
||||
|
||||
|
||||
@ -24,6 +24,7 @@ import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.base.MultitenantConstants;
|
||||
import org.wso2.carbon.base.ServerConfiguration;
|
||||
import org.wso2.carbon.core.util.Utils;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
|
||||
@ -59,7 +60,9 @@ public class ZipUtil {
|
||||
private static final String HTTP_PORT_PROPERTY = "httpPort";
|
||||
private static final String CONFIG_TYPE = "general";
|
||||
private static final Log log = LogFactory.getLog(ZipUtil.class);
|
||||
public static final String HOST_NAME = "HostName";
|
||||
private static final String LOCALHOST = "localhost";
|
||||
private static final String HTTP_PROTOCOL_HOST = "${iot.gateway.host}";
|
||||
private static final String HTTP_PROTOCOL_PORT = "${iot.gateway.http.port}";
|
||||
|
||||
public ZipArchive createZipFile(String owner, String tenantDomain, String deviceType,
|
||||
String deviceId, String deviceName, String token,
|
||||
@ -72,8 +75,10 @@ public class ZipUtil {
|
||||
String iotServerIP;
|
||||
|
||||
try {
|
||||
iotServerIP = getServerUrl();
|
||||
String httpServerPort = System.getProperty(HTTP_PORT_PROPERTY);
|
||||
iotServerIP = Utils.replaceSystemProperty(HTTP_PROTOCOL_HOST);
|
||||
String serverIpAddress = getServerUrl();
|
||||
iotServerIP = iotServerIP.replace(LOCALHOST, serverIpAddress);
|
||||
String httpServerPort = Utils.replaceSystemProperty(HTTP_PROTOCOL_PORT);
|
||||
|
||||
Map<String, String> contextParams = new HashMap<>();
|
||||
|
||||
@ -117,17 +122,13 @@ public class ZipUtil {
|
||||
}
|
||||
}
|
||||
|
||||
private static String getServerUrl() {
|
||||
String hostName = ServerConfiguration.getInstance().getFirstProperty(HOST_NAME);
|
||||
public static String getServerUrl() {
|
||||
try {
|
||||
if (hostName == null) {
|
||||
hostName = NetworkUtils.getLocalHostname();
|
||||
}
|
||||
return org.apache.axis2.util.Utils.getIpAddress();
|
||||
} catch (SocketException e) {
|
||||
hostName = "localhost";
|
||||
log.warn("Failed retrieving the hostname, therefore set to localhost", e);
|
||||
return "localhost";
|
||||
}
|
||||
return hostName;
|
||||
}
|
||||
|
||||
private static ZipArchive getSketchArchive(String archivesPath, String templateSketchPath, Map contextParams
|
||||
|
||||
@ -16,10 +16,6 @@
|
||||
<servlet-name>CXFServlet</servlet-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
<context-param>
|
||||
<param-name>isAdminService</param-name>
|
||||
<param-value>false</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>doAuthentication</param-name>
|
||||
<param-value>true</param-value>
|
||||
|
||||
@ -2,6 +2,10 @@
|
||||
"deviceType": {
|
||||
"label": "Arduino",
|
||||
"category": "iot",
|
||||
"downloadAgentUri": "arduino/device/download"
|
||||
"downloadAgentUri": "arduino/device/download",
|
||||
"category": "iot",
|
||||
"scopes" : [
|
||||
"perm:arduino:enroll"
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -66,7 +66,7 @@
|
||||
<a href="#" class="download-link btn-operations">
|
||||
<i class="fw fw-download add-margin-1x"></i>Download Sketch
|
||||
</a>
|
||||
<p class="doc-link">Click <a href="https://docs.wso2.com/display/IoTS100/Arduino"
|
||||
<p class="doc-link">Click <a href="https://docs.wso2.com/display/IoTS300/Arduino"
|
||||
target="_blank">here</a> for latest instructions and
|
||||
troubleshooting.</p>
|
||||
<div id="download-device-modal-content" class="hide">
|
||||
|
||||
@ -23,6 +23,7 @@ import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.base.ServerConfiguration;
|
||||
import org.wso2.carbon.core.util.Utils;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
|
||||
@ -56,15 +57,12 @@ import java.util.zip.ZipOutputStream;
|
||||
public class ZipUtil {
|
||||
|
||||
private static final Log log = LogFactory.getLog(ZipUtil.class);
|
||||
public static final String HOST_NAME = "HostName";
|
||||
private static final String HTTPS_PORT_PROPERTY = "httpsPort";
|
||||
private static final String HTTP_PORT_PROPERTY = "httpPort";
|
||||
|
||||
private static final String LOCALHOST = "localhost";
|
||||
private static final String HTTPS_PROTOCOL_APPENDER = "https://";
|
||||
private static final String HTTP_PROTOCOL_APPENDER = "http://";
|
||||
private static final String HTTPS_PROTOCOL_URL = "https://${iot.gateway.host}:${iot.gateway.https.port}";
|
||||
private static final String HTTP_PROTOCOL_URL = "http://${iot.gateway.host}:${iot.gateway.http.port}";
|
||||
private static final String CONFIG_TYPE = "general";
|
||||
private static final String DEFAULT_MQTT_ENDPOINT = "tcp://localhost:1886";
|
||||
private static final String DEFAULT_MQTT_ENDPOINT = "tcp://${mqtt.broker.host}:${mqtt.broker.port}";
|
||||
|
||||
public ZipArchive createZipFile(String owner, String tenantDomain, String deviceType,
|
||||
String deviceId, String deviceName, String token,
|
||||
@ -78,16 +76,14 @@ public class ZipUtil {
|
||||
|
||||
try {
|
||||
iotServerIP = getServerUrl();
|
||||
String httpsServerPort = System.getProperty(HTTPS_PORT_PROPERTY);
|
||||
String httpServerPort = System.getProperty(HTTP_PORT_PROPERTY);
|
||||
String httpsServerEP = HTTPS_PROTOCOL_APPENDER + iotServerIP + ":" + httpsServerPort;
|
||||
String httpServerEP = HTTP_PROTOCOL_APPENDER + iotServerIP + ":" + httpServerPort;
|
||||
String apimEndpoint = httpsServerEP;
|
||||
String mqttEndpoint = DEFAULT_MQTT_ENDPOINT;
|
||||
String httpsServerEP = Utils.replaceSystemProperty(HTTPS_PROTOCOL_URL);
|
||||
String httpServerEP = Utils.replaceSystemProperty(HTTP_PROTOCOL_URL);
|
||||
String mqttEndpoint = Utils.replaceSystemProperty(DEFAULT_MQTT_ENDPOINT);
|
||||
if (mqttEndpoint.contains(LOCALHOST)) {
|
||||
mqttEndpoint = mqttEndpoint.replace(LOCALHOST, iotServerIP);
|
||||
httpsServerEP = httpsServerEP.replace(LOCALHOST, iotServerIP);
|
||||
httpServerEP = httpServerEP.replace(LOCALHOST, iotServerIP);
|
||||
}
|
||||
|
||||
PlatformConfiguration configuration = APIUtil.getTenantConfigurationManagementService().getConfiguration(
|
||||
CONFIG_TYPE);
|
||||
if (configuration != null && configuration.getConfiguration() != null && configuration
|
||||
@ -115,7 +111,7 @@ public class ZipUtil {
|
||||
contextParams.put("DEVICE_NAME", deviceName);
|
||||
contextParams.put("HTTPS_EP", httpsServerEP);
|
||||
contextParams.put("HTTP_EP", httpServerEP);
|
||||
contextParams.put("APIM_EP", apimEndpoint);
|
||||
contextParams.put("APIM_EP", httpsServerEP);
|
||||
contextParams.put("MQTT_EP", mqttEndpoint);
|
||||
contextParams.put("DEVICE_TOKEN", token);
|
||||
contextParams.put("DEVICE_REFRESH_TOKEN", refreshToken);
|
||||
@ -130,17 +126,13 @@ public class ZipUtil {
|
||||
}
|
||||
}
|
||||
|
||||
private static String getServerUrl() {
|
||||
String hostName = ServerConfiguration.getInstance().getFirstProperty(HOST_NAME);
|
||||
public static String getServerUrl() {
|
||||
try {
|
||||
if (hostName == null) {
|
||||
hostName = NetworkUtils.getLocalHostname();
|
||||
}
|
||||
return org.apache.axis2.util.Utils.getIpAddress();
|
||||
} catch (SocketException e) {
|
||||
hostName = "localhost";
|
||||
log.warn("Failed retrieving the hostname, therefore set to localhost", e);
|
||||
return "localhost";
|
||||
}
|
||||
return hostName;
|
||||
}
|
||||
|
||||
private static ZipArchive getSketchArchive(String archivesPath, String templateSketchPath, Map contextParams
|
||||
|
||||
@ -16,10 +16,6 @@
|
||||
<servlet-name>CXFServlet</servlet-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
<context-param>
|
||||
<param-name>isAdminService</param-name>
|
||||
<param-value>false</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>doAuthentication</param-name>
|
||||
<param-value>true</param-value>
|
||||
|
||||
@ -2,6 +2,9 @@
|
||||
"deviceType": {
|
||||
"label": "Raspberry Pi",
|
||||
"category": "iot",
|
||||
"downloadAgentUri": "raspberrypi/device/download"
|
||||
"downloadAgentUri": "raspberrypi/device/download",
|
||||
"scopes" : [
|
||||
"perm:raspberrypi:enroll"
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -61,7 +61,7 @@
|
||||
<a href="#" class="download-link btn-operations">
|
||||
<i class="fw fw-download add-margin-1x"></i>Download Agent
|
||||
</a>
|
||||
<p class="doc-link">Click <a href="https://docs.wso2.com/display/IoTS100/Raspberry+Pi"
|
||||
<p class="doc-link">Click <a href="https://docs.wso2.com/display/IoTS300/Raspberry+Pi"
|
||||
target="_blank">here</a> for latest instructions and
|
||||
troubleshooting.</p>
|
||||
<div id="download-device-modal-content" class="hide">
|
||||
|
||||
@ -437,7 +437,7 @@ public class AgentUtilOperations {
|
||||
}
|
||||
|
||||
private class APIManagerTokenUtils {
|
||||
public static final String TOKEN_ENDPOINT = "/oauth2/token";
|
||||
public static final String TOKEN_ENDPOINT = "/token";
|
||||
public static final String GRANT_TYPE = "grant_type";
|
||||
public static final String ACCESS_TOKEN = "access_token";
|
||||
public static final String REFRESH_TOKEN = "refresh_token";
|
||||
|
||||
@ -25,14 +25,13 @@ import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.json.JSONObject;
|
||||
import org.wso2.carbon.apimgt.application.extension.constants.ApiApplicationConstants;
|
||||
import org.wso2.carbon.base.ServerConfiguration;
|
||||
import org.wso2.carbon.core.util.Utils;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
|
||||
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.xmpp.XmppConfig;
|
||||
import org.wso2.carbon.utils.CarbonUtils;
|
||||
import org.wso2.carbon.utils.NetworkUtils;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedOutputStream;
|
||||
@ -64,10 +63,10 @@ public class ZipUtil {
|
||||
private static final String HTTP_PORT_PROPERTY = "httpPort";
|
||||
|
||||
private static final String LOCALHOST = "localhost";
|
||||
private static final String HTTPS_PROTOCOL_APPENDER = "https://";
|
||||
private static final String HTTP_PROTOCOL_APPENDER = "http://";
|
||||
private static final String HTTPS_PROTOCOL_URL = "https://${iot.gateway.host}:${iot.gateway.https.port}";
|
||||
private static final String HTTP_PROTOCOL_URL = "http://${iot.gateway.host}:${iot.gateway.http.port}";
|
||||
private static final String CONFIG_TYPE = "general";
|
||||
private static final String DEFAULT_MQTT_ENDPOINT = "tcp://localhost:1886";
|
||||
private static final String DEFAULT_MQTT_ENDPOINT = "tcp://${mqtt.broker.host}:${mqtt.broker.port}";
|
||||
public static final String HOST_NAME = "HostName";
|
||||
|
||||
public ZipArchive createZipFile(String owner, String deviceType, String deviceId, String deviceName,
|
||||
@ -83,13 +82,13 @@ public class ZipUtil {
|
||||
|
||||
try {
|
||||
iotServerIP = getServerUrl();
|
||||
String httpsServerPort = System.getProperty(HTTPS_PORT_PROPERTY);
|
||||
String httpServerPort = System.getProperty(HTTP_PORT_PROPERTY);
|
||||
String httpsServerEP = HTTPS_PROTOCOL_APPENDER + iotServerIP + ":" + httpsServerPort;
|
||||
String httpServerEP = HTTP_PROTOCOL_APPENDER + iotServerIP + ":" + httpServerPort;
|
||||
String mqttEndpoint = DEFAULT_MQTT_ENDPOINT;
|
||||
String httpsServerEP = Utils.replaceSystemProperty(HTTPS_PROTOCOL_URL);
|
||||
String httpServerEP = Utils.replaceSystemProperty(HTTP_PROTOCOL_URL);
|
||||
String mqttEndpoint = Utils.replaceSystemProperty(DEFAULT_MQTT_ENDPOINT);
|
||||
if (mqttEndpoint.contains(LOCALHOST)) {
|
||||
mqttEndpoint = mqttEndpoint.replace(LOCALHOST, iotServerIP);
|
||||
httpsServerEP = httpsServerEP.replace(LOCALHOST, iotServerIP);
|
||||
httpServerEP = httpServerEP.replace(LOCALHOST, iotServerIP);
|
||||
}
|
||||
|
||||
String xmppEndpoint = "";
|
||||
@ -161,16 +160,12 @@ public class ZipUtil {
|
||||
}
|
||||
|
||||
public static String getServerUrl() {
|
||||
String hostName = ServerConfiguration.getInstance().getFirstProperty(HOST_NAME);
|
||||
try {
|
||||
if (hostName == null) {
|
||||
hostName = NetworkUtils.getLocalHostname();
|
||||
}
|
||||
return org.apache.axis2.util.Utils.getIpAddress();
|
||||
} catch (SocketException e) {
|
||||
hostName = "localhost";
|
||||
log.warn("Failed retrieving the hostname, therefore set to localhost", e);
|
||||
return "localhost";
|
||||
}
|
||||
return hostName;
|
||||
}
|
||||
|
||||
public static ZipArchive getSketchArchive(String archivesPath, String templateSketchPath, Map contextParams
|
||||
|
||||
@ -16,18 +16,10 @@
|
||||
<servlet-name>CXFServlet</servlet-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
<context-param>
|
||||
<param-name>isAdminService</param-name>
|
||||
<param-value>false</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>doAuthentication</param-name>
|
||||
<param-value>true</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>providerTenantDomain</param-name>
|
||||
<param-value>carbon.super</param-value>
|
||||
</context-param>
|
||||
|
||||
<!--publish to apim-->
|
||||
<context-param>
|
||||
|
||||
@ -3,6 +3,9 @@
|
||||
"label": "Virtual Firealarm",
|
||||
"category": "virtual",
|
||||
"downloadAgentUri": "virtual_firealarm/device/download",
|
||||
"scopes" : [
|
||||
"perm:firealarm:enroll"
|
||||
],
|
||||
"features": {
|
||||
"buzz": {
|
||||
"icon" : "fw-dial-up"
|
||||
|
||||
@ -54,7 +54,7 @@
|
||||
</a>
|
||||
<a href="#" class="download-link btn-operations">
|
||||
<i class="fw fw-download"></i>Download Agent</a>
|
||||
<p class="doc-link">Click <a href="https://docs.wso2.com/display/IoTS100/Virtual+Firealarm"
|
||||
<p class="doc-link">Click <a href="https://docs.wso2.com/display/IoTS300/Virtual+Firealarm"
|
||||
target="_blank">[ here ]</a> for latest instructions and
|
||||
troubleshooting.</p>
|
||||
<div id="download-device-modal-content" class="hide">
|
||||
|
||||
@ -31,7 +31,7 @@ dcrUrl=dcrUrl
|
||||
dcrUrl.hint=dynamic client registration endpoint URL to create application (if required) eg: https://localhost:9443/dynamic-client-web/register
|
||||
contentValidator=contentValidation
|
||||
contentValidator.hint=Class Name of the content Validation or 'default' to set default class, required to implement (if required)
|
||||
url.hint=MQTT broker url tcp://localhost:1886
|
||||
url.hint=MQTT broker url tcp://localhost:1883
|
||||
cleanSession=Clean Session
|
||||
cleanSession.hint=Persist topic subscriptions and ack positions across client sessions
|
||||
keepAlive=Keep Alive (In seconds)
|
||||
|
||||
@ -61,6 +61,11 @@ public class DeviceAuthorizer implements Authorizer {
|
||||
@Override
|
||||
public void init(Map<String, String> globalProperties) {
|
||||
statPermissions = getPermissions(globalProperties);
|
||||
if (statPermissions != null && !statPermissions.isEmpty()) {
|
||||
for (String permission : statPermissions) {
|
||||
PermissionUtil.putPermission(permission);
|
||||
}
|
||||
}
|
||||
try {
|
||||
deviceAccessAuthorizationAdminService = Feign.builder()
|
||||
.requestInterceptor(new OAuthRequestInterceptor(globalProperties))
|
||||
|
||||
@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* you may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package org.wso2.carbon.device.mgt.output.adapter.websocket.authorization;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.base.MultitenantConstants;
|
||||
import org.wso2.carbon.device.mgt.output.adapter.websocket.internal.WebsocketEventAdaptorServiceDataHolder;
|
||||
import org.wso2.carbon.registry.api.Resource;
|
||||
import org.wso2.carbon.registry.core.Registry;
|
||||
import org.wso2.carbon.registry.core.exceptions.RegistryException;
|
||||
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
/**
|
||||
* Utility class which holds necessary utility methods required for persisting permissions in
|
||||
* registry.
|
||||
*/
|
||||
public class PermissionUtil {
|
||||
|
||||
public static final String PERMISSION_PROPERTY_NAME = "name";
|
||||
private static Log log = LogFactory.getLog(DeviceAuthorizer.class);
|
||||
|
||||
public static void putPermission(String permission) {
|
||||
try {
|
||||
StringTokenizer tokenizer = new StringTokenizer(permission, "/");
|
||||
String lastToken = "", currentToken, tempPath;
|
||||
while (tokenizer.hasMoreTokens()) {
|
||||
currentToken = tokenizer.nextToken();
|
||||
tempPath = lastToken + "/" + currentToken;
|
||||
if (!checkResourceExists(tempPath)) {
|
||||
createRegistryCollection(tempPath, currentToken);
|
||||
|
||||
}
|
||||
lastToken = tempPath;
|
||||
}
|
||||
} catch (org.wso2.carbon.registry.api.RegistryException e) {
|
||||
log.error("Failed to creation permission in registry" + permission, e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void createRegistryCollection(String path, String resourceName)
|
||||
throws org.wso2.carbon.registry.api.RegistryException {
|
||||
Resource resource = getGovernanceRegistry().newCollection();
|
||||
resource.addProperty(PERMISSION_PROPERTY_NAME, resourceName);
|
||||
getGovernanceRegistry().beginTransaction();
|
||||
getGovernanceRegistry().put(path, resource);
|
||||
getGovernanceRegistry().commitTransaction();
|
||||
}
|
||||
|
||||
public static boolean checkResourceExists(String path)
|
||||
throws RegistryException {
|
||||
return getGovernanceRegistry().resourceExists(path);
|
||||
}
|
||||
|
||||
public static Registry getGovernanceRegistry() throws RegistryException {
|
||||
return WebsocketEventAdaptorServiceDataHolder.getRegistryService()
|
||||
.getGovernanceSystemRegistry(MultitenantConstants.SUPER_TENANT_ID);
|
||||
}
|
||||
|
||||
}
|
||||
@ -45,6 +45,7 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
|
||||
private static final String APPLICATION_NAME = "websocket-app";
|
||||
private static final String PASSWORD_GRANT_TYPE = "password";
|
||||
private static final String REFRESH_GRANT_TYPE = "refresh_token";
|
||||
private static final String REQUIRED_SCOPE = "perm:authorization:verify";
|
||||
private ApiApplicationRegistrationService apiApplicationRegistrationService;
|
||||
private TokenIssuerService tokenIssuerService;
|
||||
|
||||
@ -76,7 +77,6 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
|
||||
username = getUsername(globalProperties);
|
||||
password = getPassword(globalProperties);
|
||||
tokenEndpoint = getTokenEndpoint(globalProperties);
|
||||
scopes = getScopes(globalProperties);
|
||||
apiApplicationRegistrationService = Feign.builder().requestInterceptor(
|
||||
new BasicAuthRequestInterceptor(username, password))
|
||||
.contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder())
|
||||
@ -104,11 +104,7 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
|
||||
new BasicAuthRequestInterceptor(consumerKey, consumerSecret))
|
||||
.contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder())
|
||||
.target(TokenIssuerService.class, tokenEndpoint);
|
||||
if (scopes == null || scopes.isEmpty()) {
|
||||
tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password);
|
||||
} else {
|
||||
tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password, scopes);
|
||||
}
|
||||
tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password, REQUIRED_SCOPE);
|
||||
tokenInfo.setExpires_in(System.currentTimeMillis() + tokenInfo.getExpires_in());
|
||||
}
|
||||
synchronized(this) {
|
||||
@ -163,9 +159,4 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
|
||||
return refreshTimeOffset;
|
||||
}
|
||||
|
||||
private String getScopes(Map<String, String> globalProperties) {
|
||||
return globalProperties.get(TOKEN_SCOPES);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -27,6 +27,7 @@
|
||||
package org.wso2.carbon.device.mgt.output.adapter.websocket.authorization.client.dto;
|
||||
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.FormParam;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
@ -48,7 +49,7 @@ public interface TokenIssuerService {
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
|
||||
AccessTokenInfo getToken(@QueryParam("grant_type") String grant, @QueryParam("username") String username,
|
||||
@QueryParam("password") String password, @QueryParam("scopes") String scopes);
|
||||
@QueryParam("password") String password, @QueryParam("scope") String scopes);
|
||||
|
||||
@POST
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
|
||||
@ -20,6 +20,7 @@ package org.wso2.carbon.device.mgt.output.adapter.websocket.internal;
|
||||
|
||||
import org.wso2.carbon.device.mgt.output.adapter.websocket.WebsocketOutputCallbackControllerServiceImpl;
|
||||
import org.wso2.carbon.event.stream.core.EventStreamService;
|
||||
import org.wso2.carbon.registry.core.service.RegistryService;
|
||||
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.LinkedBlockingDeque;
|
||||
@ -35,6 +36,7 @@ public final class WebsocketEventAdaptorServiceDataHolder {
|
||||
private static ConcurrentHashMap<Integer, ConcurrentHashMap<String, LinkedBlockingDeque<Object>>>
|
||||
tenantSpecificStreamEventMap = new ConcurrentHashMap<>();
|
||||
private static EventStreamService eventStreamService;
|
||||
private static RegistryService registryService;
|
||||
|
||||
public static void registerEventStreamService(EventStreamService eventBuilderService) {
|
||||
WebsocketEventAdaptorServiceDataHolder.eventStreamService = eventBuilderService;
|
||||
@ -63,4 +65,15 @@ public final class WebsocketEventAdaptorServiceDataHolder {
|
||||
getTenantSpecificStreamEventMap() {
|
||||
return tenantSpecificStreamEventMap;
|
||||
}
|
||||
|
||||
public static RegistryService getRegistryService() {
|
||||
if (registryService == null) {
|
||||
throw new IllegalStateException("Registry service is not initialized properly");
|
||||
}
|
||||
return registryService;
|
||||
}
|
||||
|
||||
public static void setRegistryService(RegistryService registryService) {
|
||||
WebsocketEventAdaptorServiceDataHolder.registryService = registryService;
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,12 +26,19 @@ import org.wso2.carbon.device.mgt.output.adapter.websocket.WebsocketOutputCallba
|
||||
import org.wso2.carbon.event.output.adapter.core.OutputEventAdapterFactory;
|
||||
import org.wso2.carbon.device.mgt.output.adapter.websocket.WebsocketOutputCallbackControllerService;
|
||||
import org.wso2.carbon.event.stream.core.EventStreamService;
|
||||
import org.wso2.carbon.registry.core.service.RegistryService;
|
||||
|
||||
/**
|
||||
* @scr.component component.name="output.extensions.secured.websocket.AdapterService.component" immediate="true"
|
||||
* @scr.reference name="eventStreamService.service"
|
||||
* interface="org.wso2.carbon.event.stream.core.EventStreamService" cardinality="1..1"
|
||||
* policy="dynamic" bind="setEventStreamService" unbind="unsetEventStreamService"
|
||||
* @scr.reference name="registry.service"
|
||||
* interface="org.wso2.carbon.registry.core.service.RegistryService"
|
||||
* cardinality="1..1"
|
||||
* policy="dynamic"
|
||||
* bind="setRegistryService"
|
||||
* unbind="unsetRegistryService"
|
||||
*/
|
||||
public class WebsocketLocalEventAdapterServiceComponent {
|
||||
|
||||
@ -80,4 +87,28 @@ public class WebsocketLocalEventAdapterServiceComponent {
|
||||
}
|
||||
WebsocketEventAdaptorServiceDataHolder.registerEventStreamService(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets Registry Service.
|
||||
*
|
||||
* @param registryService An instance of RegistryService
|
||||
*/
|
||||
protected void setRegistryService(RegistryService registryService) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Setting Registry Service");
|
||||
}
|
||||
WebsocketEventAdaptorServiceDataHolder.setRegistryService(registryService);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unsets Registry Service.
|
||||
*
|
||||
* @param registryService An instance of RegistryService
|
||||
*/
|
||||
protected void unsetRegistryService(RegistryService registryService) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Un setting Registry Service");
|
||||
}
|
||||
WebsocketEventAdaptorServiceDataHolder.setRegistryService(null);
|
||||
}
|
||||
}
|
||||
|
||||
@ -18,6 +18,8 @@ import feign.Feign;
|
||||
import feign.RequestInterceptor;
|
||||
import feign.RequestTemplate;
|
||||
import feign.auth.BasicAuthRequestInterceptor;
|
||||
import feign.codec.EncodeException;
|
||||
import feign.codec.Encoder;
|
||||
import feign.gson.GsonDecoder;
|
||||
import feign.gson.GsonEncoder;
|
||||
import feign.jaxrs.JAXRSContract;
|
||||
@ -40,6 +42,7 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
|
||||
private static final String APPLICATION_NAME = "mqtt_broker";
|
||||
private static final String PASSWORD_GRANT_TYPE = "password";
|
||||
private static final String REFRESH_GRANT_TYPE = "refresh_token";
|
||||
private static final String REQUIRED_SCOPE = "perm:authorization:verify";
|
||||
private ApiApplicationRegistrationService apiApplicationRegistrationService;
|
||||
private TokenIssuerService tokenIssuerService;
|
||||
|
||||
@ -75,8 +78,9 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
|
||||
tokenIssuerService = Feign.builder().requestInterceptor(
|
||||
new BasicAuthRequestInterceptor(consumerKey, consumerSecret))
|
||||
.contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder())
|
||||
.target(TokenIssuerService.class, AuthorizationConfigurationManager.getInstance().getTokenEndpoint());
|
||||
tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password);
|
||||
.target(TokenIssuerService.class,
|
||||
AuthorizationConfigurationManager.getInstance().getTokenEndpoint());
|
||||
tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password, REQUIRED_SCOPE);
|
||||
tokenInfo.setExpires_in(System.currentTimeMillis() + tokenInfo.getExpires_in());
|
||||
}
|
||||
synchronized (this) {
|
||||
@ -89,5 +93,4 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
|
||||
template.header("Authorization", headerValue);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -33,6 +33,12 @@ public interface TokenIssuerService {
|
||||
AccessTokenInfo getToken(@QueryParam("grant_type") String grant, @QueryParam("username") String username,
|
||||
@QueryParam("password") String password);
|
||||
|
||||
@POST
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
|
||||
AccessTokenInfo getToken(@QueryParam("grant_type") String grant, @QueryParam("username") String username,
|
||||
@QueryParam("password") String password, @QueryParam("scope") String scopes);
|
||||
|
||||
@POST
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
|
||||
|
||||
@ -42,11 +42,6 @@
|
||||
<session-config>
|
||||
<session-timeout>60</session-timeout>
|
||||
</session-config>
|
||||
|
||||
<context-param>
|
||||
<param-name>isAdminService</param-name>
|
||||
<param-value>false</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>managed-api-enabled</param-name>
|
||||
<param-value>true</param-value>
|
||||
|
||||
@ -52,7 +52,7 @@
|
||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Status</td>
|
||||
<td style="padding:10px 15px;">
|
||||
{{#equal device.status "ACTIVE"}}<span><i
|
||||
class="fw fw-ok icon-success"></i>Active</span>{{/equal}}
|
||||
class="fw fw-success icon-success"></i>Active</span>{{/equal}}
|
||||
{{#equal device.status "INACTIVE"}}<span><i
|
||||
class="fw fw-warning icon-warning"></i>Inactive</span>{{/equal}}
|
||||
{{#equal device.status "BLOCKED"}}<span><i
|
||||
@ -339,7 +339,7 @@
|
||||
</div>
|
||||
<br/>
|
||||
<a class="padding-left"
|
||||
href="{{portalUrl}}/portal/dashboards/geo-dashboard/?GLOBAL-STATE={{anchor}}">
|
||||
href="{{portalUrl}}/portal/dashboards/geo-dashboard/?GLOBAL-STATE={{deviceId}},{{deviceType}}">
|
||||
<span class="fw-stack">
|
||||
<i class="fw fw-circle-outline fw-stack-2x"></i>
|
||||
<i class="fw fw-map-location fw-stack-1x"></i>
|
||||
@ -439,4 +439,4 @@
|
||||
{{js "js/device-detail.js"}}
|
||||
{{js "js/load-map.js"}}
|
||||
{{/if}}
|
||||
{{/zone}}
|
||||
{{/zone}}
|
||||
|
||||
@ -213,7 +213,7 @@ function onRequest(context) {
|
||||
deviceViewData["autoCompleteParams"] = autoCompleteParams;
|
||||
|
||||
deviceViewData["portalUrl"] = devicemgtProps['portalURL'];
|
||||
var anchor = { "device" : { "id" : deviceId, "type" : deviceType}};
|
||||
deviceViewData["anchor"] = JSON.stringify(anchor);
|
||||
deviceViewData["deviceId"] = deviceId;
|
||||
deviceViewData["deviceType"] = deviceType;
|
||||
return deviceViewData;
|
||||
}
|
||||
|
||||
@ -157,7 +157,7 @@ var InitiateViewOption = null;
|
||||
var html;
|
||||
switch (status) {
|
||||
case "COMPLETED" :
|
||||
html = "<span><i class='fw fw-ok icon-success'></i> Completed</span>";
|
||||
html = "<span><i class='fw fw-success icon-success'></i> Completed</span>";
|
||||
break;
|
||||
case "PENDING" :
|
||||
html = "<span><i class='fw fw-warning icon-warning'></i> Pending</span>";
|
||||
@ -166,10 +166,10 @@ var InitiateViewOption = null;
|
||||
html = "<span><i class='fw fw-error icon-danger'></i> Error</span>";
|
||||
break;
|
||||
case "IN_PROGRESS" :
|
||||
html = "<span><i class='fw fw-ok icon-warning'></i> In Progress</span>";
|
||||
html = "<span><i class='fw fw-success icon-warning'></i> In Progress</span>";
|
||||
break;
|
||||
case "REPEATED" :
|
||||
html = "<span><i class='fw fw-ok icon-warning'></i> Repeated</span>";
|
||||
html = "<span><i class='fw fw-success icon-warning'></i> Repeated</span>";
|
||||
break;
|
||||
}
|
||||
return html;
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
{{#equal platform "windows"}}<i class="icon fw fw-windows"></i>{{/equal}}
|
||||
{{#equal isActive true}}
|
||||
<span style="word-wrap: break-word;">
|
||||
<i class="fw fw-ok icon-success" style="font-size: 14px;"></i>
|
||||
<i class="fw fw-success icon-success" style="font-size: 14px;"></i>
|
||||
Active
|
||||
</span>
|
||||
<span style="word-wrap: break-word;"><b>{{name}}</b></span>
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
<div>
|
||||
<b>Compliance :</b>
|
||||
{{#equal compliance "COMPLIANT"}}
|
||||
<span><i class="fw fw-ok icon-success"></i> Compliant</span>
|
||||
<span><i class="fw fw-success icon-success"></i> Compliant</span>
|
||||
{{/equal}}
|
||||
{{#equal compliance "NON-COMPLIANT"}}
|
||||
<span><i class="fw fw-warning icon-danger"></i> Not Compliant</span>
|
||||
@ -70,7 +70,7 @@
|
||||
<tr data-type="selectable">
|
||||
<td data-display="{{featureCode}}" data-grid-label="Feature Code">{{featureCode}}</td>
|
||||
<td data-display="{{compliance}}" data-grid-label="Status">
|
||||
{{#equal compliance true}}<span><i class="fw fw-ok icon-success"></i> Compliant</span>{{/equal}}
|
||||
{{#equal compliance true}}<span><i class="fw fw-success icon-success"></i> Compliant</span>{{/equal}}
|
||||
{{#equal compliance false}}<span><i class="fw fw-warning icon-danger"></i> Not Compliant</span>{{/equal}}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -23,8 +23,8 @@
|
||||
</span>
|
||||
Passcode Policy
|
||||
<span id="passcode-policy-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="passcode-policy-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="passcode-policy-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="passcode-policy-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('camera', this)">
|
||||
@ -32,8 +32,8 @@
|
||||
<i class="fw fw-block fw-stack-2x"></i>
|
||||
</span>
|
||||
Restrictions
|
||||
<span id="camera-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="camera-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="camera-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="camera-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span class="camera-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('encrypt-storage', this)">
|
||||
@ -42,8 +42,8 @@
|
||||
</span>
|
||||
Encryption Settings
|
||||
<span id="encrypt-storage-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="encrypt-storage-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="encrypt-storage-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="encrypt-storage-error" class="encryption-error status-icon hidden"><i
|
||||
class="fw fw-error"></i></span>
|
||||
</a>
|
||||
@ -52,8 +52,8 @@
|
||||
<i class="fw fw-wifi fw-stack-2x"></i>
|
||||
</span>
|
||||
Wi-Fi Settings
|
||||
<span id="wifi-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="wifi-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="wifi-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="wifi-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="wifi-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('vpn', this)">
|
||||
@ -61,8 +61,8 @@
|
||||
<i class="fw fw-vpn fw-stack-2x"></i>
|
||||
</span>
|
||||
Virtual Private Network
|
||||
<span id="vpn-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="vpn-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="vpn-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="vpn-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="vpn-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('work-profile', this)">
|
||||
@ -70,8 +70,8 @@
|
||||
<i class="fw fw-service fw-stack-2x"></i>
|
||||
</span>
|
||||
Work-Profile Configurations
|
||||
<span id="work-profile-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="work-profile-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="work-profile-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="work-profile-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="work-profile-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('app-restriction', this)">
|
||||
@ -81,8 +81,8 @@
|
||||
</span>
|
||||
Application Restrictions
|
||||
<span id="app-restriction-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="app-restriction-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="app-restriction-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="app-restriction-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('cosu-system-update-policy', this)">
|
||||
@ -91,9 +91,9 @@
|
||||
</span>
|
||||
System Update Policy (COSU)
|
||||
<span id="cosu-system-update-policy-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="cosu-system-update-policy-ok" class="has-success status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="cosu-system-update-policy-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('cosu-whitelisted-applications', this)" >
|
||||
@ -102,8 +102,8 @@
|
||||
</span>
|
||||
Whitelist Apps (COSU)
|
||||
<span id="cosu-whitelisted-applications-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="cosu-whitelisted-applications-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="cosu-whitelisted-applications-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="cosu-whitelisted-applications-error" class="has-error status-icon hidden"><i
|
||||
class="fw fw-error"></i></span>
|
||||
</a>
|
||||
|
||||
@ -6,8 +6,8 @@
|
||||
</span>
|
||||
Passcode Policy
|
||||
<span id="passcode-policy-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="passcode-policy-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="passcode-policy-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="passcode-policy-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('camera', this)">
|
||||
@ -15,8 +15,8 @@
|
||||
<i class="fw fw-block fw-stack-2x"></i>
|
||||
</span>
|
||||
Restrictions
|
||||
<span id="camera-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="camera-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="camera-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="camera-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span class="camera-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('encrypt-storage', this)">
|
||||
@ -25,8 +25,8 @@
|
||||
</span>
|
||||
Encryption Settings
|
||||
<span id="encrypt-storage-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="encrypt-storage-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="encrypt-storage-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="encrypt-storage-error" class="encryption-error status-icon hidden"><i
|
||||
class="fw fw-error"></i></span>
|
||||
</a>
|
||||
@ -35,8 +35,8 @@
|
||||
<i class="fw fw-wifi fw-stack-2x"></i>
|
||||
</span>
|
||||
Wi-Fi Settings
|
||||
<span id="wifi-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="wifi-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="wifi-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="wifi-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="wifi-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('vpn', this)">
|
||||
@ -44,8 +44,8 @@
|
||||
<i class="fw fw-vpn fw-stack-2x"></i>
|
||||
</span>
|
||||
Virtual Private Network
|
||||
<span id="wifi-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="wifi-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="wifi-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="wifi-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="wifi-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('work-profile', this)">
|
||||
@ -53,8 +53,8 @@
|
||||
<i class="fw fw-service fw-stack-2x"></i>
|
||||
</span>
|
||||
Work-Profile Configurations
|
||||
<span id="work-profile-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="work-profile-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="work-profile-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="work-profile-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="work-profile-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('app-restriction', this)">
|
||||
@ -64,8 +64,8 @@
|
||||
</span>
|
||||
Applications Restrictions
|
||||
<span id="app-restriction-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="app-restriction-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="app-restriction-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="app-restriction-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('cosu-system-update-policy', this)" class="hide">
|
||||
@ -74,9 +74,9 @@
|
||||
</span>
|
||||
System Update Policy (COSU)
|
||||
<span id="cosu-system-update-policy-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="cosu-system-update-policy-ok" class="has-success status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="cosu-system-update-policy-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('cosu-whitelisted-applications', this)" class="hide">
|
||||
@ -85,8 +85,8 @@
|
||||
</span>
|
||||
Whitelist Apps (COSU)
|
||||
<span id="cosu-whitelisted-applications-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="cosu-whitelisted-applications-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="cosu-whitelisted-applications-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="cosu-whitelisted-applications-error" class="has-error status-icon hidden"><i
|
||||
class="fw fw-error"></i></span>
|
||||
</a>
|
||||
|
||||
@ -23,8 +23,8 @@
|
||||
</span>
|
||||
Passcode Policy
|
||||
<span id="passcode-policy-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="passcode-policy-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="passcode-policy-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="passcode-policy-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('camera', this)">
|
||||
@ -32,8 +32,8 @@
|
||||
<i class="fw fw-block fw-stack-2x"></i>
|
||||
</span>
|
||||
Restrictions
|
||||
<span id="camera-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="camera-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="camera-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="camera-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span class="camera-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('encrypt-storage', this)">
|
||||
@ -42,8 +42,8 @@
|
||||
</span>
|
||||
Encryption Settings
|
||||
<span id="encrypt-storage-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="encrypt-storage-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="encrypt-storage-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="encrypt-storage-error" class="encryption-error status-icon hidden"><i
|
||||
class="fw fw-error"></i></span>
|
||||
</a>
|
||||
@ -52,8 +52,8 @@
|
||||
<i class="fw fw-wifi fw-stack-2x"></i>
|
||||
</span>
|
||||
Wi-Fi Settings
|
||||
<span id="wifi-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="wifi-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="wifi-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="wifi-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="wifi-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('vpn', this)">
|
||||
@ -61,8 +61,8 @@
|
||||
<i class="fw fw-vpn fw-stack-2x"></i>
|
||||
</span>
|
||||
Virtual Private Network
|
||||
<span id="vpn-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="vpn-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="vpn-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="vpn-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="vpn-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('work-profile', this)">
|
||||
@ -70,8 +70,8 @@
|
||||
<i class="fw fw-service fw-stack-2x"></i>
|
||||
</span>
|
||||
Work-Profile Configurations
|
||||
<span id="work-profile-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="work-profile-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="work-profile-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="work-profile-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="work-profile-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('app-restriction', this)">
|
||||
@ -81,8 +81,8 @@
|
||||
</span>
|
||||
Application Restrictions
|
||||
<span id="app-restriction-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="app-restriction-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="app-restriction-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="app-restriction-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('cosu-system-update-policy', this)">
|
||||
@ -91,9 +91,9 @@
|
||||
</span>
|
||||
System Update Policy (COSU)
|
||||
<span id="cosu-system-update-policy-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="cosu-system-update-policy-ok" class="has-success status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="cosu-system-update-policy-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('cosu-whitelisted-applications', this)">
|
||||
@ -102,8 +102,8 @@
|
||||
</span>
|
||||
Whitelist Apps (COSU)
|
||||
<span id="cosu-whitelisted-applications-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="cosu-whitelisted-applications-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="cosu-whitelisted-applications-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="cosu-whitelisted-applications-error" class="has-error status-icon hidden"><i
|
||||
class="fw fw-error"></i></span>
|
||||
</a>
|
||||
|
||||
@ -4,6 +4,37 @@
|
||||
"category": "mobile",
|
||||
"analyticsEnabled": "false",
|
||||
"groupingEnabled": "false",
|
||||
"scopes" : [
|
||||
"perm:android:enroll",
|
||||
"perm:android:wipe",
|
||||
"perm:android:ring",
|
||||
"perm:android:lock-devices",
|
||||
"perm:android:configure-vpn",
|
||||
"perm:android:configure-wifi",
|
||||
"perm:android:enroll",
|
||||
"perm:android:uninstall-application",
|
||||
"perm:android:manage-configuration",
|
||||
"perm:android:location",
|
||||
"perm:android:install-application",
|
||||
"perm:android:mute",
|
||||
"perm:android:change-lock-code",
|
||||
"perm:android:blacklist-applications",
|
||||
"perm:android:set-password-policy",
|
||||
"perm:android:encrypt-storage",
|
||||
"perm:android:clear-password",
|
||||
"perm:android:enterprise-wipe",
|
||||
"perm:android:info",
|
||||
"perm:android:view-configuration",
|
||||
"perm:android:upgrade-firmware",
|
||||
"perm:android:set-webclip",
|
||||
"perm:android:send-notification",
|
||||
"perm:android:disenroll",
|
||||
"perm:android:update-application",
|
||||
"perm:android:unlock-devices",
|
||||
"perm:android:control-camera",
|
||||
"perm:android:reboot",
|
||||
"perm:android:logcat"
|
||||
],
|
||||
"features": {
|
||||
"DEVICE_RING": {
|
||||
"icon": "fw-dial-up",
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<a href="{{host}}/android-web-agent/public/mdm.page.enrollments.android.download-agent/asset/android-agent.apk" class="btn-operations"><i class="fw fw-download fw-inverse fw-lg add-margin-1x"></i> Download APK</a>
|
||||
<a href="javascript:toggleEmailInvite()" class="btn-operations"><i class="fw fw-mail fw-inverse fw-lg add-margin-1x"></i> Invite by Email</a>
|
||||
|
||||
<p class="doc-link">Click <a href="https://docs.wso2.com/display/IoTS100/Android"
|
||||
<p class="doc-link">Click <a href="https://docs.wso2.com/display/IoTS300/Android"
|
||||
target="_blank">here</a> for latest instructions and troubleshooting.</p>
|
||||
|
||||
<h3 class="uppercase">What You Need</h3>
|
||||
|
||||
@ -68,7 +68,7 @@ public final class PluginConstants {
|
||||
public static final String CXF_REQUEST_URI = "org.apache.cxf.request.uri";
|
||||
|
||||
//Web services media types
|
||||
public static final String SYNCML_MEDIA_TYPE = "application/vnd.syncml.dm+xml;charset=utf-8";
|
||||
public static final String SYNCML_MEDIA_TYPE = "application/vnd.syncml.dm+xml";
|
||||
|
||||
/**
|
||||
* Discovery service related other constants
|
||||
@ -342,6 +342,7 @@ public final class PluginConstants {
|
||||
}
|
||||
public static final String REQUESTED_WIN10_VERSION = "3.0";
|
||||
public static final String REQUESTED_WIN81_VERSION = "2.0";
|
||||
public static final String OS_VERSION = "10";
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -76,7 +76,7 @@ import java.util.List;
|
||||
name = "Un-enroll Device",
|
||||
description = "Unregister an Windows device",
|
||||
key = "perm:windows:disenroll",
|
||||
permissions = {"/device-mgt/devices/disenroll/windows"}
|
||||
permissions = {"/device-mgt/devices/owning-device/operations/windows/disenroll"}
|
||||
),
|
||||
@Scope(
|
||||
name = "Factory Reset",
|
||||
|
||||
@ -21,11 +21,14 @@ package org.wso2.carbon.device.mgt.mobile.windows.api.services;
|
||||
|
||||
import io.swagger.annotations.*;
|
||||
import org.w3c.dom.Document;
|
||||
import org.wso2.carbon.apimgt.annotations.api.Scope;
|
||||
import org.wso2.carbon.apimgt.annotations.api.Scopes;
|
||||
import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementException;
|
||||
import org.wso2.carbon.device.mgt.mobile.windows.api.common.PluginConstants;
|
||||
import org.wso2.carbon.device.mgt.mobile.windows.api.common.exceptions.WindowsConfigurationException;
|
||||
import org.wso2.carbon.device.mgt.mobile.windows.api.common.exceptions.WindowsDeviceEnrolmentException;
|
||||
import org.wso2.carbon.device.mgt.mobile.windows.api.operations.WindowsOperationException;
|
||||
import org.wso2.carbon.device.mgt.mobile.windows.api.operations.util.Constants;
|
||||
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.POST;
|
||||
@ -38,25 +41,17 @@ import javax.ws.rs.core.Response;
|
||||
/**
|
||||
* Interface for Windows 10 Device management phase.
|
||||
*/
|
||||
@SwaggerDefinition(
|
||||
info = @Info(
|
||||
version = "1.0.0",
|
||||
title = "",
|
||||
extensions = {
|
||||
@Extension(properties = {
|
||||
@ExtensionProperty(name = "name", value = "Windows 10 Device management"),
|
||||
@ExtensionProperty(name = "context",
|
||||
value = "/api/device-mgt/windows/v1.0/management"),
|
||||
})
|
||||
}
|
||||
),
|
||||
tags = {
|
||||
@Tag(name = "windows", description = "")
|
||||
@Path("/devicemgt")
|
||||
@Scopes(
|
||||
scopes = {
|
||||
@Scope(
|
||||
name = "Pending operations",
|
||||
description = "Register an Android device",
|
||||
key = "perm:windows:enroll",
|
||||
permissions = {"/device-mgt/devices/enroll/windows"}
|
||||
)
|
||||
}
|
||||
)
|
||||
@Api(value = "Windows 10 Device management",
|
||||
description = "This carries all the resources related to Windows 10 management session message flow.")
|
||||
@Path("/devicemgt")
|
||||
public interface DeviceManagementService {
|
||||
@Path("/pending-operations")
|
||||
@POST
|
||||
@ -68,14 +63,10 @@ public interface DeviceManagementService {
|
||||
notes = "Using this API to fetching more information to enroll the Device and " +
|
||||
"getting pending operations.",
|
||||
tags = "Windows Device Management Administrative Service",
|
||||
authorizations = {
|
||||
@Authorization(
|
||||
value = "permission",
|
||||
scopes = {@AuthorizationScope(
|
||||
scope = "/device-mgt/devices/enroll/windows",
|
||||
description = "Getting pending operations and " +
|
||||
"device information to enroll the device")}
|
||||
)
|
||||
extensions = {
|
||||
@Extension(properties = {
|
||||
@ExtensionProperty(name = Constants.SCOPE, value = "perm:android:enroll")
|
||||
})
|
||||
}
|
||||
)
|
||||
@ApiResponses(value = {
|
||||
|
||||
@ -42,24 +42,7 @@ import javax.xml.ws.soap.SOAPBinding;
|
||||
/**
|
||||
* Interface for Discovery service related operations.
|
||||
*/
|
||||
@SwaggerDefinition(
|
||||
info = @Info(
|
||||
version = "1.0.0",
|
||||
title = "",
|
||||
extensions = {
|
||||
@Extension(properties = {
|
||||
@ExtensionProperty(name = "name", value = "Windows Discovery Service"),
|
||||
@ExtensionProperty(name = "context",
|
||||
value = "/api/device-mgt/windows/v1.0/discovery/post"),
|
||||
})
|
||||
}
|
||||
),
|
||||
tags = {
|
||||
@Tag(name = "windows", description = "")
|
||||
}
|
||||
)
|
||||
@Api(value = "Windows Discovery Service",
|
||||
description = "This carries all the resources related to Windows Discovery service.")
|
||||
|
||||
@WebService(targetNamespace = PluginConstants.DISCOVERY_SERVICE_TARGET_NAMESPACE,
|
||||
name = "IDiscoveryService")
|
||||
@BindingType(value = SOAPBinding.SOAP12HTTP_BINDING)
|
||||
|
||||
@ -86,4 +86,13 @@ public class DiscoveryRequest implements Serializable {
|
||||
this.osEdition = osEdition;
|
||||
}
|
||||
|
||||
}
|
||||
public String getApplicationVersion() {
|
||||
return applicationVersion;
|
||||
}
|
||||
|
||||
public void setApplicationVersion(String applicationVersion) {
|
||||
this.applicationVersion = applicationVersion;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -68,9 +68,11 @@ public class DiscoveryServiceImpl implements DiscoveryService {
|
||||
String emailId = discoveryRequest.getEmailId();
|
||||
String[] userDomains = emailId.split(DELIMITER);
|
||||
String domain = userDomains[DOMAIN_SEGMENT];
|
||||
String applicationVersion = discoveryRequest.getApplicationVersion();
|
||||
String[] osVersions = applicationVersion .split("\\.");
|
||||
String os = osVersions[0];
|
||||
DiscoveryResponse discoveryResponse;
|
||||
if (PluginConstants.WindowsVersionProperties.REQUESTED_WIN10_VERSION.equals(discoveryRequest.getVersion()) &&
|
||||
FEDERATED.equals(getAuthPolicy())) {
|
||||
if (PluginConstants.WindowsVersionProperties.OS_VERSION.equals(os) && FEDERATED.equals(getAuthPolicy())) {
|
||||
discoveryResponse = new DiscoveryResponse();
|
||||
|
||||
discoveryResponse.setAuthPolicy(FEDERATED);
|
||||
|
||||
@ -35,25 +35,6 @@ import javax.xml.ws.ResponseWrapper;
|
||||
import javax.xml.ws.soap.SOAPBinding;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
|
||||
@SwaggerDefinition(
|
||||
info = @Info(
|
||||
version = "1.0.0",
|
||||
title = "",
|
||||
extensions = {
|
||||
@io.swagger.annotations.Extension(properties = {
|
||||
@ExtensionProperty(name = "name", value = "Windows 10 Enrollment Service"),
|
||||
@ExtensionProperty(name = "context",
|
||||
value = "/api/device-mgt/windows/v1.0/deviceenrolment/enrollment"),
|
||||
})
|
||||
}
|
||||
),
|
||||
tags = {
|
||||
@Tag(name = "windows", description = "")
|
||||
}
|
||||
)
|
||||
@Api(value = "Windows 10 Enrollment Service",
|
||||
description = "This carries all the resources related to Windows enrollment.")
|
||||
|
||||
@WebService(targetNamespace = PluginConstants.DEVICE_ENROLLMENT_SERVICE_TARGET_NAMESPACE, name = "enrollment")
|
||||
@BindingType(value = SOAPBinding.SOAP12HTTP_BINDING)
|
||||
public interface EnrollmentService {
|
||||
|
||||
@ -89,7 +89,7 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
|
||||
|
||||
if (modifyEnrollWithMoreDetail(request)) {
|
||||
pendingOperations = operationHandler.getPendingOperations(syncmlDocument);
|
||||
response = operationReply.generateReply(syncmlDocument,pendingOperations);
|
||||
response = operationReply.generateReply(syncmlDocument, pendingOperations);
|
||||
return Response.status(Response.Status.OK).entity(response).build();
|
||||
} else {
|
||||
String msg = "Error occurred in while modify the enrollment.";
|
||||
@ -101,7 +101,7 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
|
||||
log.error(msg);
|
||||
return Response.status(Response.Status.UNAUTHORIZED).entity(msg).build();
|
||||
}
|
||||
} else {
|
||||
} else {
|
||||
if ((syncmlDocument.getBody().getAlert() != null)) {
|
||||
if (!syncmlDocument.getBody().getAlert().getData().equals(Constants.DISENROLL_ALERT_DATA)) {
|
||||
pendingOperations = operationHandler.getPendingOperations(syncmlDocument);
|
||||
@ -155,8 +155,8 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
|
||||
private boolean modifyEnrollWithMoreDetail(Document request) throws WindowsDeviceEnrolmentException,
|
||||
WindowsOperationException {
|
||||
|
||||
String devMan;
|
||||
String devMod;
|
||||
String devMan = null;
|
||||
String devMod = null;
|
||||
boolean status = false;
|
||||
String user;
|
||||
SyncmlDocument syncmlDocument;
|
||||
@ -165,8 +165,15 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
|
||||
syncmlDocument = SyncmlParser.parseSyncmlPayload(request);
|
||||
ReplaceTag replace = syncmlDocument.getBody().getReplace();
|
||||
List<ItemTag> itemList = replace.getItems();
|
||||
devMan = itemList.get(PluginConstants.SyncML.DEVICE_MAN_POSITION).getData();
|
||||
devMod = itemList.get(PluginConstants.SyncML.DEVICE_MODEL_POSITION).getData();
|
||||
for (ItemTag itemTag : itemList) {
|
||||
String locURI = itemTag.getSource().getLocURI();
|
||||
if (OperationCode.Info.MANUFACTURER.getCode().equals(locURI)) {
|
||||
devMan = itemTag.getData();
|
||||
}
|
||||
if (OperationCode.Info.DEVICE_MODEL.getCode().equals(locURI)) {
|
||||
devMod = itemTag.getData();
|
||||
}
|
||||
}
|
||||
user = syncmlDocument.getHeader().getSource().getLocName();
|
||||
AuthenticationInfo authenticationInfo = new AuthenticationInfo();
|
||||
authenticationInfo.setUsername(user);
|
||||
|
||||
@ -37,24 +37,7 @@ import javax.ws.rs.core.Response;
|
||||
/**
|
||||
* Interface for Windows 8.1 enrollment flow.
|
||||
*/
|
||||
@SwaggerDefinition(
|
||||
info = @Info(
|
||||
version = "1.0.0",
|
||||
title = "",
|
||||
extensions = {
|
||||
@Extension(properties = {
|
||||
@ExtensionProperty(name = "name", value = "Windows 8.1 Device Management Service"),
|
||||
@ExtensionProperty(name = "context",
|
||||
value = "/api/device-mgt/windows/v1.0/syncml"),
|
||||
})
|
||||
}
|
||||
),
|
||||
tags = {
|
||||
@Tag(name = "windows", description = "")
|
||||
}
|
||||
)
|
||||
@Api(value = "Windows 8.1 Device Management Service",
|
||||
description = "This carries all the resources related to Windows syncml message flow.")
|
||||
|
||||
@Path("/devicemanagement")
|
||||
public interface SyncmlService {
|
||||
|
||||
|
||||
@ -41,24 +41,7 @@ import java.io.UnsupportedEncodingException;
|
||||
/**
|
||||
* Interface of WSTEP implementation.
|
||||
*/
|
||||
@SwaggerDefinition(
|
||||
info = @Info(
|
||||
version = "1.0.0",
|
||||
title = "",
|
||||
extensions = {
|
||||
@Extension(properties = {
|
||||
@ExtensionProperty(name = "name", value = "Windows 8.1 Enrollment Service"),
|
||||
@ExtensionProperty(name = "context",
|
||||
value = "/api/device-mgt/windows/v1.0/deviceenrolment/wstep"),
|
||||
})
|
||||
}
|
||||
),
|
||||
tags = {
|
||||
@Tag(name = "windows", description = "")
|
||||
}
|
||||
)
|
||||
@Api(value = "Windows Enrollment service Management",
|
||||
description = "This carries all the resources related to Windows enrollment service.")
|
||||
|
||||
@WebService(targetNamespace = PluginConstants.DEVICE_ENROLLMENT_SERVICE_TARGET_NAMESPACE, name = "wstep")
|
||||
@BindingType(value = SOAPBinding.SOAP12HTTP_BINDING)
|
||||
public interface CertificateEnrollmentService {
|
||||
|
||||
@ -41,24 +41,6 @@ import javax.xml.ws.soap.SOAPBinding;
|
||||
* Interface for MS-XCEP implementation.
|
||||
*/
|
||||
|
||||
@SwaggerDefinition(
|
||||
info = @Info(
|
||||
version = "1.0.0",
|
||||
title = "",
|
||||
extensions = {
|
||||
@io.swagger.annotations.Extension(properties = {
|
||||
@ExtensionProperty(name = "name", value = "Windows Enrollment policy Service"),
|
||||
@ExtensionProperty(name = "context",
|
||||
value = "/api/device-mgt/windows/v1.0/certificatepolicy/xcep"),
|
||||
})
|
||||
}
|
||||
),
|
||||
tags = {
|
||||
@Tag(name = "windows", description = "")
|
||||
}
|
||||
)
|
||||
@Api(value = "Windows Enrollment policy Service",
|
||||
description = "This carries all the resources related to Windows enrollment policy.")
|
||||
@WebService(targetNamespace = PluginConstants.CERTIFICATE_ENROLLMENT_POLICY_SERVICE_TARGET_NAMESPACE,
|
||||
name = "IPolicy")
|
||||
@BindingType(value = SOAPBinding.SOAP12HTTP_BINDING)
|
||||
|
||||
@ -48,10 +48,6 @@
|
||||
<session-config>
|
||||
<session-timeout>60</session-timeout>
|
||||
</session-config>
|
||||
<context-param>
|
||||
<param-name>isAdminService</param-name>
|
||||
<param-value>false</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>managed-api-enabled</param-name>
|
||||
<param-value>true</param-value>
|
||||
|
||||
@ -52,7 +52,7 @@
|
||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Status</td>
|
||||
<td style="padding:10px 15px;">
|
||||
{{#equal device.status "ACTIVE"}}<span><i
|
||||
class="fw fw-ok icon-success"></i>Active</span>{{/equal}}
|
||||
class="fw fw-success icon-success"></i>Active</span>{{/equal}}
|
||||
{{#equal device.status "INACTIVE"}}<span><i
|
||||
class="fw fw-warning icon-warning"></i>Inactive</span>{{/equal}}
|
||||
{{#equal device.status "BLOCKED"}}<span><i
|
||||
@ -140,12 +140,12 @@
|
||||
class="hidden-sm">Device Location</span>
|
||||
</a>
|
||||
</li>
|
||||
<li role="presentation" class="list-group-item">
|
||||
<!--li role="presentation" class="list-group-item">
|
||||
<a href="#installed_applications_tab" role="tab" data-toggle="tab"
|
||||
aria-controls="installed_applications_tab">
|
||||
<i class="icon fw fw-application"></i><span class="hidden-sm">Installed Applications</span>
|
||||
</a>
|
||||
</li>
|
||||
</li-->
|
||||
{{/zone}}
|
||||
|
||||
{{#zone "device-details-tab-contents"}}
|
||||
|
||||
@ -157,7 +157,7 @@ var InitiateViewOption = null;
|
||||
var html;
|
||||
switch (status) {
|
||||
case "COMPLETED" :
|
||||
html = "<span><i class='fw fw-ok icon-success'></i> Completed</span>";
|
||||
html = "<span><i class='fw fw-success icon-success'></i> Completed</span>";
|
||||
break;
|
||||
case "PENDING" :
|
||||
html = "<span><i class='fw fw-warning icon-warning'></i> Pending</span>";
|
||||
@ -166,10 +166,10 @@ var InitiateViewOption = null;
|
||||
html = "<span><i class='fw fw-error icon-danger'></i> Error</span>";
|
||||
break;
|
||||
case "IN_PROGRESS" :
|
||||
html = "<span><i class='fw fw-ok icon-warning'></i> In Progress</span>";
|
||||
html = "<span><i class='fw fw-success icon-warning'></i> In Progress</span>";
|
||||
break;
|
||||
case "REPEATED" :
|
||||
html = "<span><i class='fw fw-ok icon-warning'></i> Repeated</span>";
|
||||
html = "<span><i class='fw fw-success icon-warning'></i> Repeated</span>";
|
||||
break;
|
||||
}
|
||||
return html;
|
||||
|
||||
@ -45,7 +45,7 @@ $(document).ready(function () {
|
||||
var url = $(this).prop("href");
|
||||
var hash = url.substring(url.indexOf("#") + 1);
|
||||
|
||||
if (hash == "device_location") {
|
||||
if (hash == "device_location_tab") {
|
||||
if (!map) {
|
||||
loadLeafletMap();
|
||||
}
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
{{#equal platform "windows"}}<i class="icon fw fw-windows"></i>{{/equal}}
|
||||
{{#equal isActive true}}
|
||||
<span style="word-wrap: break-word;">
|
||||
<i class="fw fw-ok icon-success" style="font-size: 14px;"></i>
|
||||
<i class="fw fw-success icon-success" style="font-size: 14px;"></i>
|
||||
Active
|
||||
</span>
|
||||
<span style="word-wrap: break-word;"><b>{{name}}</b></span>
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
<div>
|
||||
<b>Compliance :</b>
|
||||
{{#equal compliance "COMPLIANT"}}
|
||||
<span><i class="fw fw-ok icon-success"></i> Compliant</span>
|
||||
<span><i class="fw fw-success icon-success"></i> Compliant</span>
|
||||
{{/equal}}
|
||||
{{#equal compliance "NON-COMPLIANT"}}
|
||||
<span><i class="fw fw-warning icon-danger"></i> Not Compliant</span>
|
||||
@ -69,7 +69,7 @@
|
||||
<tr data-type="selectable">
|
||||
<td data-display="{{featureCode}}" data-grid-label="Feature Code">{{featureCode}}</td>
|
||||
<td data-display="{{compliance}}" data-grid-label="Status">
|
||||
{{#equal compliance true}}<span><i class="fw fw-ok icon-success"></i> Compliant</span>{{/equal}}
|
||||
{{#equal compliance true}}<span><i class="fw fw-success icon-success"></i> Compliant</span>{{/equal}}
|
||||
{{#equal compliance false}}<span><i class="fw fw-warning icon-danger"></i> Not Compliant</span>{{/equal}}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
<i class="fw fw-key fw-stack-2x"></i>
|
||||
</span>Passcode Policy
|
||||
<span id="passcode-policy-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="passcode-policy-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="passcode-policy-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="passcode-policy-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('camera', this)">
|
||||
@ -14,8 +14,8 @@
|
||||
<i class="fw fw-block fw-stack-2x"></i>
|
||||
</span>
|
||||
Restrictions on Camera
|
||||
<span id="camera-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="camera-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="camera-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="camera-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span class="camera-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('encrypt-storage', this)">
|
||||
@ -24,8 +24,8 @@
|
||||
</span>
|
||||
Encryption Settings
|
||||
<span id="encrypt-storage-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="encrypt-storage-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="encrypt-storage-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="encrypt-storage-error" class="encryption-error status-icon hidden"><i
|
||||
class="fw fw-error"></i></span>
|
||||
</a>
|
||||
@ -36,8 +36,8 @@
|
||||
</span>
|
||||
Applications Restrictions
|
||||
<span id="app-restriction-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="app-restriction-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="app-restriction-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="app-restriction-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@ -6,8 +6,8 @@
|
||||
</span>
|
||||
Passcode Policy
|
||||
<span id="passcode-policy-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="passcode-policy-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="passcode-policy-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="passcode-policy-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('camera', this)">
|
||||
@ -15,8 +15,8 @@
|
||||
<i class="fw fw-block fw-stack-2x"></i>
|
||||
</span>
|
||||
Restrictions on Camera
|
||||
<span id="camera-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="camera-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="camera-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="camera-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span class="camera-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('encrypt-storage', this)">
|
||||
@ -25,8 +25,8 @@
|
||||
</span>
|
||||
Encryption Settings
|
||||
<span id="encrypt-storage-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="encrypt-storage-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="encrypt-storage-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="encrypt-storage-error" class="encryption-error status-icon hidden"><i
|
||||
class="fw fw-error"></i></span>
|
||||
</a>
|
||||
@ -37,8 +37,8 @@
|
||||
</span>
|
||||
Applications Restrictions
|
||||
<span id="app-restriction-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="app-restriction-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="app-restriction-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="app-restriction-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
<i class="fw fw-key fw-stack-2x"></i>
|
||||
</span>Passcode Policy
|
||||
<span id="passcode-policy-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="passcode-policy-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="passcode-policy-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="passcode-policy-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('camera', this)">
|
||||
@ -14,8 +14,8 @@
|
||||
<i class="fw fw-block fw-stack-2x"></i>
|
||||
</span>
|
||||
Restrictions on Camera
|
||||
<span id="camera-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="camera-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
<span id="camera-configured" class="has-configured status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="camera-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span class="camera-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
<a href="javascript:void(0)" onclick="showAdvanceOperation('encrypt-storage', this)">
|
||||
@ -24,8 +24,8 @@
|
||||
</span>
|
||||
Encryption Settings
|
||||
<span id="encrypt-storage-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="encrypt-storage-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="encrypt-storage-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="encrypt-storage-error" class="encryption-error status-icon hidden"><i
|
||||
class="fw fw-error"></i></span>
|
||||
</a>
|
||||
@ -36,8 +36,8 @@
|
||||
</span>
|
||||
Applications Restrictions
|
||||
<span id="app-restriction-configured" class="has-configured status-icon hidden"><i
|
||||
class="fw fw-ok"></i></span>
|
||||
<span id="app-restriction-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
|
||||
class="fw fw-success"></i></span>
|
||||
<span id="app-restriction-ok" class="has-success status-icon hidden"><i class="fw fw-success"></i></span>
|
||||
<span id="app-restriction-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@ -2,77 +2,47 @@
|
||||
"deviceType": {
|
||||
"label": "Windows",
|
||||
"category": "mobile",
|
||||
"scopes" : [
|
||||
"perm:windows:enroll",
|
||||
"perm:windows:lock-devices",
|
||||
"perm:windows:ring",
|
||||
"perm:windows:wipe",
|
||||
"perm:windows:lock-reset",
|
||||
"perm:windows:reboot",
|
||||
"perm:windows:location",
|
||||
"perm:windows:disenroll"
|
||||
],
|
||||
"analyticsEnabled": "false",
|
||||
"groupingEnabled": "false",
|
||||
"features": {
|
||||
"DEVICE_RING": {
|
||||
"icon": "fw-dial-up"
|
||||
"icon": "fw-dial-up",
|
||||
"permission": "/device-mgt/devices/owning-device/operations/android/ring"
|
||||
},
|
||||
"DEVICE_LOCK": {
|
||||
"icon": "fw-lock"
|
||||
"icon": "fw-lock",
|
||||
"permission": "/device-mgt/devices/owning-device/operations/windows/lock"
|
||||
},
|
||||
"DEVICE_LOCATION": {
|
||||
"icon": "fw-map-location"
|
||||
},
|
||||
"CLEAR_PASSWORD": {
|
||||
"icon": "fw-clear"
|
||||
"icon": "fw-map-location",
|
||||
"permission": "/device-mgt/devices/owning-device/operations/windows/location"
|
||||
},
|
||||
"DEVICE_REBOOT": {
|
||||
"icon": "fw-refresh"
|
||||
},
|
||||
"UPGRADE_FIRMWARE": {
|
||||
"icon": "fw-hardware",
|
||||
"formParams": [
|
||||
{
|
||||
"type": "checkbox",
|
||||
"id": "immediate",
|
||||
"optional": true,
|
||||
"label": "Instant Upgrade",
|
||||
"helper": "Once enabled, device firmware upgrade process will start instantly."
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"id": "schedule",
|
||||
"optional": false,
|
||||
"label": "Enter the date and time to schedule firmware upgrade."
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"id": "server",
|
||||
"optional": true,
|
||||
"label": "Enter firmware upgrade server URL (ie. http://abc.com or http://abc.com/ota)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"DEVICE_MUTE": {
|
||||
"icon": "fw-mute"
|
||||
},
|
||||
"NOTIFICATION": {
|
||||
"icon": "fw-message",
|
||||
"formParams": [
|
||||
{
|
||||
"type": "text",
|
||||
"id": "messageText",
|
||||
"optional": false,
|
||||
"label": "Title Here..."
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"id": "messageTitle",
|
||||
"optional": false,
|
||||
"label": "Message Here..."
|
||||
}
|
||||
]
|
||||
"icon": "fw-refresh",
|
||||
"permission": "/device-mgt/devices/owning-device/operations/windows/reboot"
|
||||
},
|
||||
"LOCK_RESET": {
|
||||
"icon": "fw-security"
|
||||
"icon": "fw-security",
|
||||
"permission": "/device-mgt/devices/owning-device/operations/windows/lock-reset"
|
||||
|
||||
},
|
||||
"DISENROLL": {
|
||||
"icon": "fw-block"
|
||||
"icon": "fw-block",
|
||||
"permission": "/device-mgt/devices/owning-device/operations/windows/disenroll"
|
||||
},
|
||||
"WIPE_DATA": {
|
||||
"icon": "fw-delete"
|
||||
"icon": "fw-delete",
|
||||
"permission": "/device-mgt/devices/owning-device/operations/windows/wipe"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,29 +22,29 @@
|
||||
<Feature code="keywords">
|
||||
<Name>Add Keywords</Name>
|
||||
<Description>Send keywords to the device</Description>
|
||||
<Operation context="/android_sense/device/{deviceId}/words" method="POST">
|
||||
<QueryParameters>
|
||||
<Parameter>keywords</Parameter>
|
||||
</QueryParameters>
|
||||
</Operation>
|
||||
<!--<Operation context="/android_sense/device/{deviceId}/words" method="POST">-->
|
||||
<!--<QueryParameters>-->
|
||||
<!--<Parameter>keywords</Parameter>-->
|
||||
<!--</QueryParameters>-->
|
||||
<!--</Operation>-->
|
||||
</Feature>
|
||||
<Feature code="threshold">
|
||||
<Name>Add Threshold</Name>
|
||||
<Description>Send Threshold to the device</Description>
|
||||
<Operation context="/android_sense/device/{deviceId}/words/threshold" method="POST">
|
||||
<QueryParameters>
|
||||
<Parameter>threshold</Parameter>
|
||||
</QueryParameters>
|
||||
</Operation>
|
||||
<!--<Operation context="/android_sense/device/{deviceId}/words/threshold" method="POST">-->
|
||||
<!--<QueryParameters>-->
|
||||
<!--<Parameter>threshold</Parameter>-->
|
||||
<!--</QueryParameters>-->
|
||||
<!--</Operation>-->
|
||||
</Feature>
|
||||
<Feature code="remove_words">
|
||||
<Name>Remove words</Name>
|
||||
<Description>Remove Threshold from the device</Description>
|
||||
<Operation context="/android_sense/device/{deviceId}/words" method="DELETE">
|
||||
<QueryParameters>
|
||||
<Parameter>words</Parameter>
|
||||
</QueryParameters>
|
||||
</Operation>
|
||||
<!--<Operation context="/android_sense/device/{deviceId}/words" method="DELETE">-->
|
||||
<!--<QueryParameters>-->
|
||||
<!--<Parameter>words</Parameter>-->
|
||||
<!--</QueryParameters>-->
|
||||
<!--</Operation>-->
|
||||
</Feature>
|
||||
</Features>
|
||||
|
||||
|
||||
@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 10 Device management" context="/api/device-mgt/windows/v1.0/management/devicemgt">
|
||||
<resource methods="HEAD DELETE POST GET OPTIONS PATCH PUT" url-mapping="/*" faultSequence="fault">
|
||||
<inSequence>
|
||||
<property name="isDefault" expression="$trp:WSO2_AM_API_DEFAULT_VERSION"/>
|
||||
<filter source="$ctx:isDefault" regex="true">
|
||||
<then>
|
||||
<log level="custom">
|
||||
<property name="STATUS" value="Faulty invoking through default API.Dropping message to avoid recursion.."/>
|
||||
</log>
|
||||
<payloadFactory media-type="xml">
|
||||
<format>
|
||||
<am:fault xmlns:am="http://wso2.org/apimanager">
|
||||
<am:code>500</am:code>
|
||||
<am:type>Status report</am:type>
|
||||
<am:message>Internal Server Error</am:message>
|
||||
<am:description>Faulty invoking through default API</am:description>
|
||||
</am:fault>
|
||||
</format>
|
||||
<args/>
|
||||
</payloadFactory>
|
||||
<property name="HTTP_SC" value="500" scope="axis2"/>
|
||||
<property name="RESPONSE" value="true"/>
|
||||
<header name="To" action="remove"/>
|
||||
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
|
||||
<property name="ContentType" scope="axis2" action="remove"/>
|
||||
<property name="Authorization" scope="transport" action="remove"/>
|
||||
<property name="Host" scope="transport" action="remove"/>
|
||||
<property name="Accept" scope="transport" action="remove"/>
|
||||
<send/>
|
||||
</then>
|
||||
<else>
|
||||
<header name="WSO2_AM_API_DEFAULT_VERSION" scope="transport" value="true"/>
|
||||
<property name="uri.var.portnum" expression="get-property('http.nio.port')"/>
|
||||
<send>
|
||||
<endpoint>
|
||||
<http uri-template="http://localhost:{uri.var.portnum}/api/device-mgt/windows/v1.0/management/devicemgt/1.0.0">
|
||||
<timeout>
|
||||
<duration>60000</duration>
|
||||
<responseAction>fault</responseAction>
|
||||
</timeout>
|
||||
</http>
|
||||
</endpoint>
|
||||
</send>
|
||||
</else>
|
||||
</filter>
|
||||
</inSequence>
|
||||
<outSequence>
|
||||
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"/>
|
||||
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
|
||||
<send/>
|
||||
</outSequence>
|
||||
</resource>
|
||||
<handlers>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.SynapsePropertiesHandler"/>
|
||||
</handlers>
|
||||
</api>
|
||||
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 10 Device management" context="/api/device-mgt/windows/v1.0/management/devicemgt/1.0.0" version="1.0.0" version-type="context">
|
||||
<resource methods="POST" url-mapping="/pending-operations" faultSequence="fault">
|
||||
<inSequence>
|
||||
<property name="api.ut.backendRequestTime" expression="get-property('SYSTEM_TIME')"/>
|
||||
<property name="AM_KEY_TYPE" value="PRODUCTION" scope="default"/>
|
||||
<filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
|
||||
<then>
|
||||
<send>
|
||||
<endpoint name="admin--Windows 10 Device management_APIproductionEndpoint_0">
|
||||
<http uri-template="https://localhost:9443/api/device-mgt/windows/v1.0/management/devicemgt"/>
|
||||
<property name="ENDPOINT_ADDRESS" value="https://localhost:9443/api/device-mgt/windows/v1.0/management/devicemgt"/>
|
||||
</endpoint>
|
||||
</send>
|
||||
</then>
|
||||
<else>
|
||||
<sequence key="_sandbox_key_error_"/>
|
||||
</else>
|
||||
</filter>
|
||||
</inSequence>
|
||||
<outSequence>
|
||||
<class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/>
|
||||
<send/>
|
||||
</outSequence>
|
||||
</resource>
|
||||
<handlers>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.APIMgtLatencyStatsHandler"/>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
|
||||
<property name="apiImplementationType" value="ENDPOINT"/>
|
||||
</handler>
|
||||
</handlers>
|
||||
</api>
|
||||
@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 10 Enrollment Service" context="/api/device-mgt/windows/v1.0/deviceenrolment/enrollment">
|
||||
<resource methods="HEAD DELETE POST GET OPTIONS PATCH PUT" url-mapping="/*" faultSequence="fault">
|
||||
<inSequence>
|
||||
<property name="isDefault" expression="$trp:WSO2_AM_API_DEFAULT_VERSION"/>
|
||||
<filter source="$ctx:isDefault" regex="true">
|
||||
<then>
|
||||
<log level="custom">
|
||||
<property name="STATUS" value="Faulty invoking through default API.Dropping message to avoid recursion.."/>
|
||||
</log>
|
||||
<payloadFactory media-type="xml">
|
||||
<format>
|
||||
<am:fault xmlns:am="http://wso2.org/apimanager">
|
||||
<am:code>500</am:code>
|
||||
<am:type>Status report</am:type>
|
||||
<am:message>Internal Server Error</am:message>
|
||||
<am:description>Faulty invoking through default API</am:description>
|
||||
</am:fault>
|
||||
</format>
|
||||
<args/>
|
||||
</payloadFactory>
|
||||
<property name="HTTP_SC" value="500" scope="axis2"/>
|
||||
<property name="RESPONSE" value="true"/>
|
||||
<header name="To" action="remove"/>
|
||||
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
|
||||
<property name="ContentType" scope="axis2" action="remove"/>
|
||||
<property name="Authorization" scope="transport" action="remove"/>
|
||||
<property name="Host" scope="transport" action="remove"/>
|
||||
<property name="Accept" scope="transport" action="remove"/>
|
||||
<send/>
|
||||
</then>
|
||||
<else>
|
||||
<header name="WSO2_AM_API_DEFAULT_VERSION" scope="transport" value="true"/>
|
||||
<property name="uri.var.portnum" expression="get-property('http.nio.port')"/>
|
||||
<send>
|
||||
<endpoint>
|
||||
<http uri-template="http://localhost:{uri.var.portnum}/api/device-mgt/windows/v1.0/deviceenrolment/enrollment/1.0.0">
|
||||
<timeout>
|
||||
<duration>60000</duration>
|
||||
<responseAction>fault</responseAction>
|
||||
</timeout>
|
||||
</http>
|
||||
</endpoint>
|
||||
</send>
|
||||
</else>
|
||||
</filter>
|
||||
</inSequence>
|
||||
<outSequence>
|
||||
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"/>
|
||||
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
|
||||
<send/>
|
||||
</outSequence>
|
||||
</resource>
|
||||
<handlers>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.SynapsePropertiesHandler"/>
|
||||
</handlers>
|
||||
</api>
|
||||
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 10 Enrollment Service" context="/api/device-mgt/windows/v1.0/deviceenrolment/enrollment/1.0.0" version="1.0.0" version-type="context">
|
||||
<resource methods="POST" url-mapping="/*" faultSequence="fault">
|
||||
<inSequence>
|
||||
<property name="api.ut.backendRequestTime" expression="get-property('SYSTEM_TIME')"/>
|
||||
<property name="AM_KEY_TYPE" value="PRODUCTION" scope="default"/>
|
||||
<filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
|
||||
<then>
|
||||
<send>
|
||||
<endpoint name="admin--Windows 10 Enrollment Service_APIproductionEndpoint_0">
|
||||
<http uri-template="https://localhost:9443/api/device-mgt/windows/v1.0/deviceenrolment/enrollment"/>
|
||||
<property name="ENDPOINT_ADDRESS" value="https://localhost:9443/api/device-mgt/windows/v1.0/deviceenrolment/enrollment"/>
|
||||
</endpoint>
|
||||
</send>
|
||||
</then>
|
||||
<else>
|
||||
<sequence key="_sandbox_key_error_"/>
|
||||
</else>
|
||||
</filter>
|
||||
</inSequence>
|
||||
<outSequence>
|
||||
<class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/>
|
||||
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"/>
|
||||
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
|
||||
<send/>
|
||||
</outSequence>
|
||||
</resource>
|
||||
<handlers>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.APIMgtLatencyStatsHandler"/>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
|
||||
<property name="apiImplementationType" value="ENDPOINT"/>
|
||||
</handler>
|
||||
</handlers>
|
||||
</api>
|
||||
@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 8.1 Device Management Service" context="/api/device-mgt/windows/v1.0/syncml">
|
||||
<resource methods="HEAD DELETE POST GET OPTIONS PATCH PUT" url-mapping="/*" faultSequence="fault">
|
||||
<inSequence>
|
||||
<property name="isDefault" expression="$trp:WSO2_AM_API_DEFAULT_VERSION"/>
|
||||
<filter source="$ctx:isDefault" regex="true">
|
||||
<then>
|
||||
<log level="custom">
|
||||
<property name="STATUS" value="Faulty invoking through default API.Dropping message to avoid recursion.."/>
|
||||
</log>
|
||||
<payloadFactory media-type="xml">
|
||||
<format>
|
||||
<am:fault xmlns:am="http://wso2.org/apimanager">
|
||||
<am:code>500</am:code>
|
||||
<am:type>Status report</am:type>
|
||||
<am:message>Internal Server Error</am:message>
|
||||
<am:description>Faulty invoking through default API</am:description>
|
||||
</am:fault>
|
||||
</format>
|
||||
<args/>
|
||||
</payloadFactory>
|
||||
<property name="HTTP_SC" value="500" scope="axis2"/>
|
||||
<property name="RESPONSE" value="true"/>
|
||||
<header name="To" action="remove"/>
|
||||
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
|
||||
<property name="ContentType" scope="axis2" action="remove"/>
|
||||
<property name="Authorization" scope="transport" action="remove"/>
|
||||
<property name="Host" scope="transport" action="remove"/>
|
||||
<property name="Accept" scope="transport" action="remove"/>
|
||||
<send/>
|
||||
</then>
|
||||
<else>
|
||||
<header name="WSO2_AM_API_DEFAULT_VERSION" scope="transport" value="true"/>
|
||||
<property name="uri.var.portnum" expression="get-property('http.nio.port')"/>
|
||||
<send>
|
||||
<endpoint>
|
||||
<http uri-template="http://localhost:{uri.var.portnum}/api/device-mgt/windows/v1.0/syncml/1.0.0">
|
||||
<timeout>
|
||||
<duration>60000</duration>
|
||||
<responseAction>fault</responseAction>
|
||||
</timeout>
|
||||
</http>
|
||||
</endpoint>
|
||||
</send>
|
||||
</else>
|
||||
</filter>
|
||||
</inSequence>
|
||||
<outSequence>
|
||||
<send/>
|
||||
</outSequence>
|
||||
</resource>
|
||||
<handlers>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.SynapsePropertiesHandler"/>
|
||||
</handlers>
|
||||
</api>
|
||||
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 8.1 Device Management Service" context="/api/device-mgt/windows/v1.0/syncml/1.0.0" version="1.0.0" version-type="context">
|
||||
<resource methods="POST" url-mapping="/request" faultSequence="fault">
|
||||
<inSequence>
|
||||
<property name="api.ut.backendRequestTime" expression="get-property('SYSTEM_TIME')"/>
|
||||
<property name="AM_KEY_TYPE" value="PRODUCTION" scope="default"/>
|
||||
<filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
|
||||
<then>
|
||||
<send>
|
||||
<endpoint name="admin--Windows 8.1 Device Management Service_APIproductionEndpoint_0">
|
||||
<http uri-template="https://localhost:9443/api/device-mgt/windows/v1.0/syncml"/>
|
||||
<property name="ENDPOINT_ADDRESS" value="https://localhost:9443/api/device-mgt/windows/v1.0/syncml"/>
|
||||
</endpoint>
|
||||
</send>
|
||||
</then>
|
||||
<else>
|
||||
<sequence key="_sandbox_key_error_"/>
|
||||
</else>
|
||||
</filter>
|
||||
</inSequence>
|
||||
<outSequence>
|
||||
<class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/>
|
||||
<send/>
|
||||
</outSequence>
|
||||
</resource>
|
||||
<handlers>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.APIMgtLatencyStatsHandler"/>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
|
||||
<property name="apiImplementationType" value="ENDPOINT"/>
|
||||
</handler>
|
||||
</handlers>
|
||||
</api>
|
||||
@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 8.1 Enrollment Service" context="/api/device-mgt/windows/v1.0/deviceenrolment/wstep">
|
||||
<resource methods="HEAD DELETE POST GET OPTIONS PATCH PUT" url-mapping="/*" faultSequence="fault">
|
||||
<inSequence>
|
||||
<property name="isDefault" expression="$trp:WSO2_AM_API_DEFAULT_VERSION"/>
|
||||
<filter source="$ctx:isDefault" regex="true">
|
||||
<then>
|
||||
<log level="custom">
|
||||
<property name="STATUS" value="Faulty invoking through default API.Dropping message to avoid recursion.."/>
|
||||
</log>
|
||||
<payloadFactory media-type="xml">
|
||||
<format>
|
||||
<am:fault xmlns:am="http://wso2.org/apimanager">
|
||||
<am:code>500</am:code>
|
||||
<am:type>Status report</am:type>
|
||||
<am:message>Internal Server Error</am:message>
|
||||
<am:description>Faulty invoking through default API</am:description>
|
||||
</am:fault>
|
||||
</format>
|
||||
<args/>
|
||||
</payloadFactory>
|
||||
<property name="HTTP_SC" value="500" scope="axis2"/>
|
||||
<property name="RESPONSE" value="true"/>
|
||||
<header name="To" action="remove"/>
|
||||
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
|
||||
<property name="ContentType" scope="axis2" action="remove"/>
|
||||
<property name="Authorization" scope="transport" action="remove"/>
|
||||
<property name="Host" scope="transport" action="remove"/>
|
||||
<property name="Accept" scope="transport" action="remove"/>
|
||||
<send/>
|
||||
</then>
|
||||
<else>
|
||||
<header name="WSO2_AM_API_DEFAULT_VERSION" scope="transport" value="true"/>
|
||||
<property name="uri.var.portnum" expression="get-property('http.nio.port')"/>
|
||||
<send>
|
||||
<endpoint>
|
||||
<http uri-template="http://localhost:{uri.var.portnum}/api/device-mgt/windows/v1.0/deviceenrolment/wstep/1.0.0">
|
||||
<timeout>
|
||||
<duration>60000</duration>
|
||||
<responseAction>fault</responseAction>
|
||||
</timeout>
|
||||
</http>
|
||||
</endpoint>
|
||||
</send>
|
||||
</else>
|
||||
</filter>
|
||||
</inSequence>
|
||||
<outSequence>
|
||||
<send/>
|
||||
</outSequence>
|
||||
</resource>
|
||||
<handlers>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.SynapsePropertiesHandler"/>
|
||||
</handlers>
|
||||
</api>
|
||||
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 8.1 Enrollment Service" context="/api/device-mgt/windows/v1.0/deviceenrolment/wstep/1.0.0" version="1.0.0" version-type="context">
|
||||
<resource methods="POST" url-mapping="/*" faultSequence="fault">
|
||||
<inSequence>
|
||||
<property name="api.ut.backendRequestTime" expression="get-property('SYSTEM_TIME')"/>
|
||||
<property name="AM_KEY_TYPE" value="PRODUCTION" scope="default"/>
|
||||
<filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
|
||||
<then>
|
||||
<send>
|
||||
<endpoint name="admin--Windows 8.1 Enrollment Service_APIproductionEndpoint_0">
|
||||
<http uri-template="https://localhost:9443/api/device-mgt/windows/v1.0/deviceenrolment/wstep"/>
|
||||
<property name="ENDPOINT_ADDRESS" value="https://localhost:9443/api/device-mgt/windows/v1.0/deviceenrolment/wstep"/>
|
||||
</endpoint>
|
||||
</send>
|
||||
</then>
|
||||
<else>
|
||||
<sequence key="_sandbox_key_error_"/>
|
||||
</else>
|
||||
</filter>
|
||||
</inSequence>
|
||||
<outSequence>
|
||||
<class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/>
|
||||
<send/>
|
||||
</outSequence>
|
||||
</resource>
|
||||
<handlers>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.APIMgtLatencyStatsHandler"/>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
|
||||
<property name="apiImplementationType" value="ENDPOINT"/>
|
||||
</handler>
|
||||
</handlers>
|
||||
</api>
|
||||
@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows Discovery Service" context="/api/device-mgt/windows/v1.0/discovery/post">
|
||||
<resource methods="HEAD DELETE POST GET OPTIONS PATCH PUT" url-mapping="/*" faultSequence="fault">
|
||||
<inSequence>
|
||||
<property name="isDefault" expression="$trp:WSO2_AM_API_DEFAULT_VERSION"/>
|
||||
<filter source="$ctx:isDefault" regex="true">
|
||||
<then>
|
||||
<log level="custom">
|
||||
<property name="STATUS" value="Faulty invoking through default API.Dropping message to avoid recursion.."/>
|
||||
</log>
|
||||
<payloadFactory media-type="xml">
|
||||
<format>
|
||||
<am:fault xmlns:am="http://wso2.org/apimanager">
|
||||
<am:code>500</am:code>
|
||||
<am:type>Status report</am:type>
|
||||
<am:message>Internal Server Error</am:message>
|
||||
<am:description>Faulty invoking through default API</am:description>
|
||||
</am:fault>
|
||||
</format>
|
||||
<args/>
|
||||
</payloadFactory>
|
||||
<property name="HTTP_SC" value="500" scope="axis2"/>
|
||||
<property name="RESPONSE" value="true"/>
|
||||
<header name="To" action="remove"/>
|
||||
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
|
||||
<property name="ContentType" scope="axis2" action="remove"/>
|
||||
<property name="Authorization" scope="transport" action="remove"/>
|
||||
<property name="Host" scope="transport" action="remove"/>
|
||||
<property name="Accept" scope="transport" action="remove"/>
|
||||
<send/>
|
||||
</then>
|
||||
<else>
|
||||
<header name="WSO2_AM_API_DEFAULT_VERSION" scope="transport" value="true"/>
|
||||
<property name="uri.var.portnum" expression="get-property('http.nio.port')"/>
|
||||
<send>
|
||||
<endpoint>
|
||||
<http uri-template="http://localhost:{uri.var.portnum}/api/device-mgt/windows/v1.0/discovery/post/1.0.0">
|
||||
<timeout>
|
||||
<duration>60000</duration>
|
||||
<responseAction>fault</responseAction>
|
||||
</timeout>
|
||||
</http>
|
||||
</endpoint>
|
||||
</send>
|
||||
</else>
|
||||
</filter>
|
||||
</inSequence>
|
||||
<outSequence>
|
||||
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"/>
|
||||
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
|
||||
<send/>
|
||||
</outSequence>
|
||||
</resource>
|
||||
<handlers>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.SynapsePropertiesHandler"/>
|
||||
</handlers>
|
||||
</api>
|
||||
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows Discovery Service" context="/api/device-mgt/windows/v1.0/discovery/post/1.0.0" version="1.0.0" version-type="context">
|
||||
<resource methods="POST" url-mapping="/*" faultSequence="fault">
|
||||
<inSequence>
|
||||
<property name="api.ut.backendRequestTime" expression="get-property('SYSTEM_TIME')"/>
|
||||
<property name="AM_KEY_TYPE" value="PRODUCTION" scope="default"/>
|
||||
<filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
|
||||
<then>
|
||||
<send>
|
||||
<endpoint name="admin--Windows Discovery Service_APIproductionEndpoint_0">
|
||||
<http uri-template="https://localhost:9443/api/device-mgt/windows/v1.0/discovery/post"/>
|
||||
<property name="ENDPOINT_ADDRESS" value="https://localhost:9443/api/device-mgt/windows/v1.0/discovery/post"/>
|
||||
</endpoint>
|
||||
</send>
|
||||
</then>
|
||||
<else>
|
||||
<sequence key="_sandbox_key_error_"/>
|
||||
</else>
|
||||
</filter>
|
||||
</inSequence>
|
||||
<outSequence>
|
||||
<class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/>
|
||||
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"/>
|
||||
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
|
||||
<send/>
|
||||
</outSequence>
|
||||
</resource>
|
||||
<handlers>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.APIMgtLatencyStatsHandler"/>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
|
||||
<property name="apiImplementationType" value="ENDPOINT"/>
|
||||
</handler>
|
||||
</handlers>
|
||||
</api>
|
||||
@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows Enrollment policy Service" context="/api/device-mgt/windows/v1.0/certificatepolicy/xcep">
|
||||
<resource methods="HEAD DELETE POST GET OPTIONS PATCH PUT" url-mapping="/*" faultSequence="fault">
|
||||
<inSequence>
|
||||
<property name="isDefault" expression="$trp:WSO2_AM_API_DEFAULT_VERSION"/>
|
||||
<filter source="$ctx:isDefault" regex="true">
|
||||
<then>
|
||||
<log level="custom">
|
||||
<property name="STATUS" value="Faulty invoking through default API.Dropping message to avoid recursion.."/>
|
||||
</log>
|
||||
<payloadFactory media-type="xml">
|
||||
<format>
|
||||
<am:fault xmlns:am="http://wso2.org/apimanager">
|
||||
<am:code>500</am:code>
|
||||
<am:type>Status report</am:type>
|
||||
<am:message>Internal Server Error</am:message>
|
||||
<am:description>Faulty invoking through default API</am:description>
|
||||
</am:fault>
|
||||
</format>
|
||||
<args/>
|
||||
</payloadFactory>
|
||||
<property name="HTTP_SC" value="500" scope="axis2"/>
|
||||
<property name="RESPONSE" value="true"/>
|
||||
<header name="To" action="remove"/>
|
||||
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
|
||||
<property name="ContentType" scope="axis2" action="remove"/>
|
||||
<property name="Authorization" scope="transport" action="remove"/>
|
||||
<property name="Host" scope="transport" action="remove"/>
|
||||
<property name="Accept" scope="transport" action="remove"/>
|
||||
<send/>
|
||||
</then>
|
||||
<else>
|
||||
<header name="WSO2_AM_API_DEFAULT_VERSION" scope="transport" value="true"/>
|
||||
<property name="uri.var.portnum" expression="get-property('http.nio.port')"/>
|
||||
<send>
|
||||
<endpoint>
|
||||
<http uri-template="http://localhost:{uri.var.portnum}/api/device-mgt/windows/v1.0/certificatepolicy/xcep/1.0.0">
|
||||
<timeout>
|
||||
<duration>60000</duration>
|
||||
<responseAction>fault</responseAction>
|
||||
</timeout>
|
||||
</http>
|
||||
</endpoint>
|
||||
</send>
|
||||
</else>
|
||||
</filter>
|
||||
</inSequence>
|
||||
<outSequence>
|
||||
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"/>
|
||||
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
|
||||
<send/>
|
||||
</outSequence>
|
||||
</resource>
|
||||
<handlers>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.SynapsePropertiesHandler"/>
|
||||
</handlers>
|
||||
</api>
|
||||
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows Enrollment policy Service" context="/api/device-mgt/windows/v1.0/certificatepolicy/xcep/1.0.0" version="1.0.0" version-type="context">
|
||||
<resource methods="POST" url-mapping="/*" faultSequence="fault">
|
||||
<inSequence>
|
||||
<property name="api.ut.backendRequestTime" expression="get-property('SYSTEM_TIME')"/>
|
||||
<property name="AM_KEY_TYPE" value="PRODUCTION" scope="default"/>
|
||||
<filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
|
||||
<then>
|
||||
<send>
|
||||
<endpoint name="admin--Windows Enrollment policy Service_APIproductionEndpoint_0">
|
||||
<http uri-template="https://localhost:9443/api/device-mgt/windows/v1.0/certificatepolicy/xcep"/>
|
||||
<property name="ENDPOINT_ADDRESS" value="https://localhost:9443/api/device-mgt/windows/v1.0/certificatepolicy/xcep"/>
|
||||
</endpoint>
|
||||
</send>
|
||||
</then>
|
||||
<else>
|
||||
<sequence key="_sandbox_key_error_"/>
|
||||
</else>
|
||||
</filter>
|
||||
</inSequence>
|
||||
<outSequence>
|
||||
<class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/>
|
||||
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"/>
|
||||
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
|
||||
<send/>
|
||||
</outSequence>
|
||||
</resource>
|
||||
<handlers>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.APIMgtLatencyStatsHandler"/>
|
||||
<handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
|
||||
<property name="apiImplementationType" value="ENDPOINT"/>
|
||||
</handler>
|
||||
</handlers>
|
||||
</api>
|
||||
@ -120,6 +120,13 @@
|
||||
type="application/json">
|
||||
</Operation>
|
||||
</Feature>
|
||||
<Feature code="DEVICE_REBOOT">
|
||||
<Name>Reboot</Name>
|
||||
<Description>Reboot the device</Description>
|
||||
<Operation context="/api/device-mgt/windows/v1.0/admin/devices/reboot" method="POST"
|
||||
type="application/json">
|
||||
</Operation>
|
||||
</Feature>
|
||||
<Feature code="DEVICE_INFO">
|
||||
<Name>Device info</Name>
|
||||
<Description>Request device information</Description>
|
||||
|
||||
@ -7,7 +7,19 @@ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../data
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/database/,target:${installFolder}/../../database/,overwrite:true);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/devicetypes/);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/devicetypes/,target:${installFolder}/../../deployment/server/devicetypes/,overwrite:true);\
|
||||
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_Discovery_Service.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_Discovery_Service.xml,overwrite:true);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_Discovery_Service_v1.0.0.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_Discovery_Service_v1.0.0.xml,overwrite:true);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_Enrollment_policy_Service.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_Enrollment_policy_Service.xml,overwrite:true);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_Enrollment_policy_Service_v1.0.0.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_Enrollment_policy_Service_v1.0.0.xml,overwrite:true);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_10_Enrollment_Service.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_10_Enrollment_Service.xml,overwrite:true);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_10_Enrollment_Service_v1.0.0.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_10_Enrollment_Service_v1.0.0.xml,overwrite:true);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_10_Device_management.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_10_Device_management.xml,overwrite:true);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_10_Device_management_v1.0.0.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_10_Device_management_v1.0.0.xml,overwrite:true);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_10_Device_management.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_10_Device_management.xml,overwrite:true);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_8.1_Device_Management_Service.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_8.1_Device_Management_Service.xml,overwrite:true);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_8.1_Device_Management_Service_v1.0.0.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_8.1_Device_Management_Service_v1.0.0.xml,overwrite:true);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_8.1_Enrollment_Service.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_8.1_Enrollment_Service.xml,overwrite:true);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_8.1_Enrollment_Service_v1.0.0.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_8.1_Enrollment_Service_v1.0.0.xml,overwrite:true);\
|
||||
|
||||
instructions.unconfigure = \
|
||||
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/webapps/api#device-mgt#windows#v1.0.war);\
|
||||
@ -27,5 +39,4 @@ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../dep
|
||||
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../dbscripts/cdm/plugins/windows);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../database/WSO2MobileWindows_DB.h2.db);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../.
|
||||
./deployment/server/devicetypes/windows.xml);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/devicetypes/windows.xml);\
|
||||
4
pom.xml
4
pom.xml
@ -1244,11 +1244,11 @@
|
||||
<javax.ws.rs.version>1.1.1</javax.ws.rs.version>
|
||||
|
||||
<!-- Carbon Device Management -->
|
||||
<carbon.devicemgt.version>2.0.7-SNAPSHOT</carbon.devicemgt.version>
|
||||
<carbon.devicemgt.version>2.0.7</carbon.devicemgt.version>
|
||||
<carbon.devicemgt.version.range>[2.0.0, 3.0.0)</carbon.devicemgt.version.range>
|
||||
|
||||
<!-- Carbon App Management -->
|
||||
<carbon.appmgt.version>1.2.9</carbon.appmgt.version>
|
||||
<carbon.appmgt.version>1.2.10</carbon.appmgt.version>
|
||||
|
||||
<!-- Carbon Device Management Plugins -->
|
||||
<carbon.devicemgt.plugins.version>3.0.6-SNAPSHOT</carbon.devicemgt.plugins.version>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user