mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Improve default-token servlet response
This commit is contained in:
parent
7333329e78
commit
89613a3b3d
@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
package io.entgra.ui.request.interceptor;
|
package io.entgra.ui.request.interceptor;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
@ -28,6 +29,7 @@ import org.apache.commons.logging.LogFactory;
|
|||||||
import org.apache.http.HttpHeaders;
|
import org.apache.http.HttpHeaders;
|
||||||
import org.apache.http.HttpStatus;
|
import org.apache.http.HttpStatus;
|
||||||
import org.apache.http.client.methods.HttpGet;
|
import org.apache.http.client.methods.HttpGet;
|
||||||
|
import org.apache.http.client.utils.URIBuilder;
|
||||||
import org.apache.http.entity.ContentType;
|
import org.apache.http.entity.ContentType;
|
||||||
import org.wso2.carbon.device.application.mgt.common.ProxyResponse;
|
import org.wso2.carbon.device.application.mgt.common.ProxyResponse;
|
||||||
|
|
||||||
@ -122,13 +124,27 @@ public class DefaultTokenHandler extends HttpServlet {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Success Proxy Response
|
* Get Success Proxy Response
|
||||||
* @param responseString Response String
|
* @param defaultAccessToken Access token which has default scope
|
||||||
* @return {@link ProxyResponse}
|
* @return {@link ProxyResponse}
|
||||||
*/
|
*/
|
||||||
private ProxyResponse constructSuccessProxyResponse (String responseString) {
|
private ProxyResponse constructSuccessProxyResponse (String defaultAccessToken) {
|
||||||
|
|
||||||
|
URIBuilder ub = new URIBuilder();
|
||||||
|
ub.setScheme(HandlerConstants.WSS_PROTOCOL);
|
||||||
|
ub.setHost(System.getProperty(System.getProperty(HandlerConstants.IOT_CORE_HOST_ENV_VAR)));
|
||||||
|
ub.setPort(Integer.parseInt(System.getProperty(HandlerConstants.IOT_CORE_PORT_ENV_VAR)));
|
||||||
|
ub.setPath(HandlerConstants.REMOTE_SESSION_CONTEXT);
|
||||||
|
|
||||||
|
JsonObject responseJsonObj = new JsonObject();
|
||||||
|
responseJsonObj.addProperty("default-access-token", defaultAccessToken);
|
||||||
|
responseJsonObj.addProperty("remote-session-base-url", ub.toString());
|
||||||
|
|
||||||
|
Gson gson = new Gson();
|
||||||
|
String payload = gson.toJson(responseJsonObj);
|
||||||
|
|
||||||
ProxyResponse proxyResponse = new ProxyResponse();
|
ProxyResponse proxyResponse = new ProxyResponse();
|
||||||
proxyResponse.setCode(HttpStatus.SC_OK);
|
proxyResponse.setCode(HttpStatus.SC_OK);
|
||||||
proxyResponse.setData(responseString);
|
proxyResponse.setData(payload);
|
||||||
return proxyResponse;
|
return proxyResponse;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -69,4 +69,11 @@ public class HandlerConstants {
|
|||||||
public static final String AX_PREFIX = "ax2317:";
|
public static final String AX_PREFIX = "ax2317:";
|
||||||
public static final String PAYLOADS_DIR = "repository/resources/payloads";
|
public static final String PAYLOADS_DIR = "repository/resources/payloads";
|
||||||
public static final String SOAP_ACTION_HEADER = "SOAPAction";
|
public static final String SOAP_ACTION_HEADER = "SOAPAction";
|
||||||
|
|
||||||
|
public static final String WSS_PROTOCOL = "wss";
|
||||||
|
public static final String REMOTE_SESSION_CONTEXT = "/remote/session/clients";
|
||||||
|
|
||||||
|
public static final String IOT_CORE_HOST_ENV_VAR = "iot.core.host";
|
||||||
|
public static final String IOT_CORE_PORT_ENV_VAR = "iot.core.https.port";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -81,7 +81,17 @@ public class BasicAuthAuthenticator implements WebappAuthenticator {
|
|||||||
AuthenticationInfo authenticationInfo = new AuthenticationInfo();
|
AuthenticationInfo authenticationInfo = new AuthenticationInfo();
|
||||||
Credentials credentials = getCredentials(request);
|
Credentials credentials = getCredentials(request);
|
||||||
try {
|
try {
|
||||||
|
if (credentials == null) {
|
||||||
|
authenticationInfo.setMessage("Found invalid payload to authenticate.");
|
||||||
|
authenticationInfo.setStatus(Status.FAILURE);
|
||||||
|
return authenticationInfo;
|
||||||
|
}
|
||||||
int tenantId = Utils.getTenantIdOFUser(credentials.getUsername());
|
int tenantId = Utils.getTenantIdOFUser(credentials.getUsername());
|
||||||
|
if (tenantId == -1) {
|
||||||
|
authenticationInfo.setMessage("Tenant Domain doesn't exists or tenant domain hasn't loaded properly.");
|
||||||
|
authenticationInfo.setStatus(Status.FAILURE);
|
||||||
|
return authenticationInfo;
|
||||||
|
}
|
||||||
UserStoreManager userStore = AuthenticatorFrameworkDataHolder.getInstance().getRealmService().
|
UserStoreManager userStore = AuthenticatorFrameworkDataHolder.getInstance().getRealmService().
|
||||||
getTenantUserRealm(tenantId).getUserStoreManager();
|
getTenantUserRealm(tenantId).getUserStoreManager();
|
||||||
String username = MultitenantUtils.getTenantAwareUsername(credentials.getUsername());
|
String username = MultitenantUtils.getTenantAwareUsername(credentials.getUsername());
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user