moved the traffic through the gateway

revert-dabc3590
ayyoob 8 years ago
parent 466c2b1151
commit 09f7fb3a5f

@ -48,7 +48,6 @@ import java.util.Properties;
public class AndroidSenseServiceImpl implements AndroidSenseService { public class AndroidSenseServiceImpl implements AndroidSenseService {
private static Log log = LogFactory.getLog(AndroidSenseServiceImpl.class); private static Log log = LogFactory.getLog(AndroidSenseServiceImpl.class);
private static String DEFAULT_MQTT_ENDPOINT = "tcp://localhost:1886";
@Path("device/{deviceId}/words") @Path("device/{deviceId}/words")
@POST @POST

@ -40,7 +40,7 @@ public class AndroidSenseConstants {
public static final String HOST_NAME = "HostName"; public static final String HOST_NAME = "HostName";
public static final String LOCALHOST = "localhost"; public static final String LOCALHOST = "localhost";
public static final String CONFIG_TYPE = "general"; 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"; 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.base.ServerConfiguration;
import org.wso2.carbon.context.CarbonContext; import org.wso2.carbon.context.CarbonContext;
import org.wso2.carbon.context.PrivilegedCarbonContext; 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.authorization.DeviceAccessAuthorizationService;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; 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.ConfigurationManagementException;
@ -205,7 +206,7 @@ public class APIUtil {
} }
public static String getMqttEndpoint() throws ConfigurationManagementException { public static String getMqttEndpoint() throws ConfigurationManagementException {
String iotServerIP = AndroidSenseConstants.DEFAULT_ENDPOINT; String iotServerIP = Utils.replaceSystemProperty(AndroidSenseConstants.DEFAULT_ENDPOINT);
iotServerIP = iotServerIP.replace(AndroidSenseConstants.LOCALHOST, getServerUrl());; iotServerIP = iotServerIP.replace(AndroidSenseConstants.LOCALHOST, getServerUrl());;
PlatformConfiguration configuration = APIUtil.getTenantConfigurationManagementService().getConfiguration( PlatformConfiguration configuration = APIUtil.getTenantConfigurationManagementService().getConfiguration(
AndroidSenseConstants.CONFIG_TYPE); AndroidSenseConstants.CONFIG_TYPE);
@ -224,15 +225,11 @@ public class APIUtil {
} }
public static String getServerUrl() { public static String getServerUrl() {
String hostName = ServerConfiguration.getInstance().getFirstProperty(AndroidSenseConstants.HOST_NAME);
try { try {
if (hostName == null) { return org.apache.axis2.util.Utils.getIpAddress();
hostName = NetworkUtils.getLocalHostname();
}
} catch (SocketException e) { } catch (SocketException e) {
hostName = "localhost";
log.warn("Failed retrieving the hostname, therefore set to localhost", e); log.warn("Failed retrieving the hostname, therefore set to localhost", e);
return "localhost";
} }
return hostName;
} }
} }

@ -1,6 +1,9 @@
{ {
"deviceType": { "deviceType": {
"label": "Android Sense", "label": "Android Sense",
"category": "iot" "category": "iot",
"scopes" : [
"perm:android-sense:enroll"
]
} }
} }

@ -24,6 +24,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.base.MultitenantConstants; import org.wso2.carbon.base.MultitenantConstants;
import org.wso2.carbon.base.ServerConfiguration; 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.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; 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.ConfigurationManagementException;
@ -59,7 +60,9 @@ public class ZipUtil {
private static final String HTTP_PORT_PROPERTY = "httpPort"; private static final String HTTP_PORT_PROPERTY = "httpPort";
private static final String CONFIG_TYPE = "general"; private static final String CONFIG_TYPE = "general";
private static final Log log = LogFactory.getLog(ZipUtil.class); 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, public ZipArchive createZipFile(String owner, String tenantDomain, String deviceType,
String deviceId, String deviceName, String token, String deviceId, String deviceName, String token,
@ -72,8 +75,10 @@ public class ZipUtil {
String iotServerIP; String iotServerIP;
try { try {
iotServerIP = getServerUrl(); iotServerIP = Utils.replaceSystemProperty(HTTP_PROTOCOL_HOST);
String httpServerPort = System.getProperty(HTTP_PORT_PROPERTY); String serverIpAddress = getServerUrl();
iotServerIP = iotServerIP.replace(LOCALHOST, serverIpAddress);
String httpServerPort = Utils.replaceSystemProperty(HTTP_PROTOCOL_PORT);
Map<String, String> contextParams = new HashMap<>(); Map<String, String> contextParams = new HashMap<>();
@ -117,17 +122,13 @@ public class ZipUtil {
} }
} }
private static String getServerUrl() { public static String getServerUrl() {
String hostName = ServerConfiguration.getInstance().getFirstProperty(HOST_NAME);
try { try {
if (hostName == null) { return org.apache.axis2.util.Utils.getIpAddress();
hostName = NetworkUtils.getLocalHostname();
}
} catch (SocketException e) { } catch (SocketException e) {
hostName = "localhost";
log.warn("Failed retrieving the hostname, therefore set to localhost", e); 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 private static ZipArchive getSketchArchive(String archivesPath, String templateSketchPath, Map contextParams

@ -2,6 +2,10 @@
"deviceType": { "deviceType": {
"label": "Arduino", "label": "Arduino",
"category": "iot", "category": "iot",
"downloadAgentUri": "arduino/device/download" "downloadAgentUri": "arduino/device/download",
"category": "iot",
"scopes" : [
"perm:arduino:enroll"
]
} }
} }

@ -23,6 +23,7 @@ import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.base.ServerConfiguration; 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.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; 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.ConfigurationManagementException;
@ -56,15 +57,12 @@ import java.util.zip.ZipOutputStream;
public class ZipUtil { public class ZipUtil {
private static final Log log = LogFactory.getLog(ZipUtil.class); 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 LOCALHOST = "localhost";
private static final String HTTPS_PROTOCOL_APPENDER = "https://"; private static final String HTTPS_PROTOCOL_URL = "https://${iot.gateway.host}:${iot.gateway.https.port}";
private static final String HTTP_PROTOCOL_APPENDER = "http://"; 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 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, public ZipArchive createZipFile(String owner, String tenantDomain, String deviceType,
String deviceId, String deviceName, String token, String deviceId, String deviceName, String token,
@ -78,16 +76,14 @@ public class ZipUtil {
try { try {
iotServerIP = getServerUrl(); iotServerIP = getServerUrl();
String httpsServerPort = System.getProperty(HTTPS_PORT_PROPERTY); String httpsServerEP = Utils.replaceSystemProperty(HTTPS_PROTOCOL_URL);
String httpServerPort = System.getProperty(HTTP_PORT_PROPERTY); String httpServerEP = Utils.replaceSystemProperty(HTTP_PROTOCOL_URL);
String httpsServerEP = HTTPS_PROTOCOL_APPENDER + iotServerIP + ":" + httpsServerPort; String mqttEndpoint = Utils.replaceSystemProperty(DEFAULT_MQTT_ENDPOINT);
String httpServerEP = HTTP_PROTOCOL_APPENDER + iotServerIP + ":" + httpServerPort;
String apimEndpoint = httpsServerEP;
String mqttEndpoint = DEFAULT_MQTT_ENDPOINT;
if (mqttEndpoint.contains(LOCALHOST)) { if (mqttEndpoint.contains(LOCALHOST)) {
mqttEndpoint = mqttEndpoint.replace(LOCALHOST, iotServerIP); mqttEndpoint = mqttEndpoint.replace(LOCALHOST, iotServerIP);
httpsServerEP = httpsServerEP.replace(LOCALHOST, iotServerIP);
httpServerEP = httpServerEP.replace(LOCALHOST, iotServerIP);
} }
PlatformConfiguration configuration = APIUtil.getTenantConfigurationManagementService().getConfiguration( PlatformConfiguration configuration = APIUtil.getTenantConfigurationManagementService().getConfiguration(
CONFIG_TYPE); CONFIG_TYPE);
if (configuration != null && configuration.getConfiguration() != null && configuration if (configuration != null && configuration.getConfiguration() != null && configuration
@ -115,7 +111,7 @@ public class ZipUtil {
contextParams.put("DEVICE_NAME", deviceName); contextParams.put("DEVICE_NAME", deviceName);
contextParams.put("HTTPS_EP", httpsServerEP); contextParams.put("HTTPS_EP", httpsServerEP);
contextParams.put("HTTP_EP", httpServerEP); contextParams.put("HTTP_EP", httpServerEP);
contextParams.put("APIM_EP", apimEndpoint); contextParams.put("APIM_EP", httpsServerEP);
contextParams.put("MQTT_EP", mqttEndpoint); contextParams.put("MQTT_EP", mqttEndpoint);
contextParams.put("DEVICE_TOKEN", token); contextParams.put("DEVICE_TOKEN", token);
contextParams.put("DEVICE_REFRESH_TOKEN", refreshToken); contextParams.put("DEVICE_REFRESH_TOKEN", refreshToken);
@ -130,17 +126,13 @@ public class ZipUtil {
} }
} }
private static String getServerUrl() { public static String getServerUrl() {
String hostName = ServerConfiguration.getInstance().getFirstProperty(HOST_NAME);
try { try {
if (hostName == null) { return org.apache.axis2.util.Utils.getIpAddress();
hostName = NetworkUtils.getLocalHostname();
}
} catch (SocketException e) { } catch (SocketException e) {
hostName = "localhost";
log.warn("Failed retrieving the hostname, therefore set to localhost", e); 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 private static ZipArchive getSketchArchive(String archivesPath, String templateSketchPath, Map contextParams

@ -2,6 +2,9 @@
"deviceType": { "deviceType": {
"label": "Raspberry Pi", "label": "Raspberry Pi",
"category": "iot", "category": "iot",
"downloadAgentUri": "raspberrypi/device/download" "downloadAgentUri": "raspberrypi/device/download",
"scopes" : [
"perm:raspberrypi:enroll"
]
} }
} }

@ -437,7 +437,7 @@ public class AgentUtilOperations {
} }
private class APIManagerTokenUtils { 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 GRANT_TYPE = "grant_type";
public static final String ACCESS_TOKEN = "access_token"; public static final String ACCESS_TOKEN = "access_token";
public static final String REFRESH_TOKEN = "refresh_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.apache.commons.logging.LogFactory;
import org.json.JSONObject; import org.json.JSONObject;
import org.wso2.carbon.apimgt.application.extension.constants.ApiApplicationConstants; 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.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; 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.ConfigurationManagementException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration; 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.device.mgt.iot.virtualfirealarm.service.impl.xmpp.XmppConfig;
import org.wso2.carbon.utils.CarbonUtils; import org.wso2.carbon.utils.CarbonUtils;
import org.wso2.carbon.utils.NetworkUtils;
import java.io.BufferedInputStream; import java.io.BufferedInputStream;
import java.io.BufferedOutputStream; import java.io.BufferedOutputStream;
@ -64,10 +63,10 @@ public class ZipUtil {
private static final String HTTP_PORT_PROPERTY = "httpPort"; private static final String HTTP_PORT_PROPERTY = "httpPort";
private static final String LOCALHOST = "localhost"; private static final String LOCALHOST = "localhost";
private static final String HTTPS_PROTOCOL_APPENDER = "https://"; private static final String HTTPS_PROTOCOL_URL = "https://${iot.gateway.host}:${iot.gateway.https.port}";
private static final String HTTP_PROTOCOL_APPENDER = "http://"; 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 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 static final String HOST_NAME = "HostName";
public ZipArchive createZipFile(String owner, String deviceType, String deviceId, String deviceName, public ZipArchive createZipFile(String owner, String deviceType, String deviceId, String deviceName,
@ -83,13 +82,13 @@ public class ZipUtil {
try { try {
iotServerIP = getServerUrl(); iotServerIP = getServerUrl();
String httpsServerPort = System.getProperty(HTTPS_PORT_PROPERTY); String httpsServerEP = Utils.replaceSystemProperty(HTTPS_PROTOCOL_URL);
String httpServerPort = System.getProperty(HTTP_PORT_PROPERTY); String httpServerEP = Utils.replaceSystemProperty(HTTP_PROTOCOL_URL);
String httpsServerEP = HTTPS_PROTOCOL_APPENDER + iotServerIP + ":" + httpsServerPort; String mqttEndpoint = Utils.replaceSystemProperty(DEFAULT_MQTT_ENDPOINT);
String httpServerEP = HTTP_PROTOCOL_APPENDER + iotServerIP + ":" + httpServerPort;
String mqttEndpoint = DEFAULT_MQTT_ENDPOINT;
if (mqttEndpoint.contains(LOCALHOST)) { if (mqttEndpoint.contains(LOCALHOST)) {
mqttEndpoint = mqttEndpoint.replace(LOCALHOST, iotServerIP); mqttEndpoint = mqttEndpoint.replace(LOCALHOST, iotServerIP);
httpsServerEP = httpsServerEP.replace(LOCALHOST, iotServerIP);
httpServerEP = httpServerEP.replace(LOCALHOST, iotServerIP);
} }
String xmppEndpoint = ""; String xmppEndpoint = "";
@ -161,16 +160,12 @@ public class ZipUtil {
} }
public static String getServerUrl() { public static String getServerUrl() {
String hostName = ServerConfiguration.getInstance().getFirstProperty(HOST_NAME);
try { try {
if (hostName == null) { return org.apache.axis2.util.Utils.getIpAddress();
hostName = NetworkUtils.getLocalHostname();
}
} catch (SocketException e) { } catch (SocketException e) {
hostName = "localhost";
log.warn("Failed retrieving the hostname, therefore set to localhost", e); 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 public static ZipArchive getSketchArchive(String archivesPath, String templateSketchPath, Map contextParams

@ -3,6 +3,9 @@
"label": "Virtual Firealarm", "label": "Virtual Firealarm",
"category": "virtual", "category": "virtual",
"downloadAgentUri": "virtual_firealarm/device/download", "downloadAgentUri": "virtual_firealarm/device/download",
"scopes" : [
"perm:firealarm:enroll"
],
"features": { "features": {
"buzz": { "buzz": {
"icon" : "fw-dial-up" "icon" : "fw-dial-up"

@ -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 dcrUrl.hint=dynamic client registration endpoint URL to create application (if required) eg: https://localhost:9443/dynamic-client-web/register
contentValidator=contentValidation contentValidator=contentValidation
contentValidator.hint=Class Name of the content Validation or 'default' to set default class, required to implement (if required) 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=Clean Session
cleanSession.hint=Persist topic subscriptions and ack positions across client sessions cleanSession.hint=Persist topic subscriptions and ack positions across client sessions
keepAlive=Keep Alive (In seconds) keepAlive=Keep Alive (In seconds)

@ -45,6 +45,7 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
private static final String APPLICATION_NAME = "websocket-app"; private static final String APPLICATION_NAME = "websocket-app";
private static final String PASSWORD_GRANT_TYPE = "password"; private static final String PASSWORD_GRANT_TYPE = "password";
private static final String REFRESH_GRANT_TYPE = "refresh_token"; private static final String REFRESH_GRANT_TYPE = "refresh_token";
private static final String REQUIRED_SCOPE = "perm:authorization:verify";
private ApiApplicationRegistrationService apiApplicationRegistrationService; private ApiApplicationRegistrationService apiApplicationRegistrationService;
private TokenIssuerService tokenIssuerService; private TokenIssuerService tokenIssuerService;
@ -76,7 +77,6 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
username = getUsername(globalProperties); username = getUsername(globalProperties);
password = getPassword(globalProperties); password = getPassword(globalProperties);
tokenEndpoint = getTokenEndpoint(globalProperties); tokenEndpoint = getTokenEndpoint(globalProperties);
scopes = getScopes(globalProperties);
apiApplicationRegistrationService = Feign.builder().requestInterceptor( apiApplicationRegistrationService = Feign.builder().requestInterceptor(
new BasicAuthRequestInterceptor(username, password)) new BasicAuthRequestInterceptor(username, password))
.contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder()) .contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder())
@ -104,11 +104,7 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
new BasicAuthRequestInterceptor(consumerKey, consumerSecret)) new BasicAuthRequestInterceptor(consumerKey, consumerSecret))
.contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder()) .contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder())
.target(TokenIssuerService.class, tokenEndpoint); .target(TokenIssuerService.class, tokenEndpoint);
if (scopes == null || scopes.isEmpty()) { tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password, REQUIRED_SCOPE);
tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password);
} else {
tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password, scopes);
}
tokenInfo.setExpires_in(System.currentTimeMillis() + tokenInfo.getExpires_in()); tokenInfo.setExpires_in(System.currentTimeMillis() + tokenInfo.getExpires_in());
} }
synchronized(this) { synchronized(this) {
@ -163,9 +159,4 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
return refreshTimeOffset; 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; package org.wso2.carbon.device.mgt.output.adapter.websocket.authorization.client.dto;
import javax.ws.rs.Consumes; import javax.ws.rs.Consumes;
import javax.ws.rs.FormParam;
import javax.ws.rs.POST; import javax.ws.rs.POST;
import javax.ws.rs.Path; import javax.ws.rs.Path;
import javax.ws.rs.Produces; import javax.ws.rs.Produces;
@ -48,7 +49,7 @@ public interface TokenIssuerService {
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
AccessTokenInfo getToken(@QueryParam("grant_type") String grant, @QueryParam("username") String username, 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 @POST
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)

@ -18,6 +18,8 @@ import feign.Feign;
import feign.RequestInterceptor; import feign.RequestInterceptor;
import feign.RequestTemplate; import feign.RequestTemplate;
import feign.auth.BasicAuthRequestInterceptor; import feign.auth.BasicAuthRequestInterceptor;
import feign.codec.EncodeException;
import feign.codec.Encoder;
import feign.gson.GsonDecoder; import feign.gson.GsonDecoder;
import feign.gson.GsonEncoder; import feign.gson.GsonEncoder;
import feign.jaxrs.JAXRSContract; import feign.jaxrs.JAXRSContract;
@ -76,7 +78,8 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
tokenIssuerService = Feign.builder().requestInterceptor( tokenIssuerService = Feign.builder().requestInterceptor(
new BasicAuthRequestInterceptor(consumerKey, consumerSecret)) new BasicAuthRequestInterceptor(consumerKey, consumerSecret))
.contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder()) .contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder())
.target(TokenIssuerService.class, AuthorizationConfigurationManager.getInstance().getTokenEndpoint()); .target(TokenIssuerService.class,
AuthorizationConfigurationManager.getInstance().getTokenEndpoint());
tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password, REQUIRED_SCOPE); tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password, REQUIRED_SCOPE);
tokenInfo.setExpires_in(System.currentTimeMillis() + tokenInfo.getExpires_in()); tokenInfo.setExpires_in(System.currentTimeMillis() + tokenInfo.getExpires_in());
} }
@ -90,5 +93,4 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
template.header("Authorization", headerValue); template.header("Authorization", headerValue);
} }
} }

@ -37,7 +37,7 @@ public interface TokenIssuerService {
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
AccessTokenInfo getToken(@QueryParam("grant_type") String grant, @QueryParam("username") String username, 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 @POST
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)

@ -4,6 +4,9 @@
"category": "mobile", "category": "mobile",
"analyticsEnabled": "false", "analyticsEnabled": "false",
"groupingEnabled": "false", "groupingEnabled": "false",
"scopes" : [
"perm:android:enroll"
],
"features": { "features": {
"DEVICE_RING": { "DEVICE_RING": {
"icon": "fw-dial-up", "icon": "fw-dial-up",

@ -2,6 +2,9 @@
"deviceType": { "deviceType": {
"label": "Windows", "label": "Windows",
"category": "mobile", "category": "mobile",
"scopes" : [
"perm:windows:enroll"
],
"analyticsEnabled": "false", "analyticsEnabled": "false",
"groupingEnabled": "false", "groupingEnabled": "false",
"features": { "features": {

Loading…
Cancel
Save