mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Add constants to common class
This commit is contained in:
parent
dde525dd91
commit
4c56d65925
@ -23,7 +23,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
||||||
<artifactId>remote-session-extension</artifactId>
|
<artifactId>remote-session-extension</artifactId>
|
||||||
<version>4.0.66-SNAPSHOT</version>
|
<version>4.0.87-SNAPSHOT</version>
|
||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
||||||
<artifactId>remote-session-extension</artifactId>
|
<artifactId>remote-session-extension</artifactId>
|
||||||
<version>4.0.66-SNAPSHOT</version>
|
<version>4.0.87-SNAPSHOT</version>
|
||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|||||||
@ -28,18 +28,18 @@ import java.io.IOException;
|
|||||||
public interface RemoteSessionManagementService {
|
public interface RemoteSessionManagementService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize session based on web socket request .this method use by the device to connect
|
* Initialize session based on web socket request .This method is used by the device to connect
|
||||||
*
|
*
|
||||||
* @param session Web socket RemoteSession
|
* @param session Web socket RemoteSession
|
||||||
* @param deviceType Device Type
|
* @param deviceType Device Type
|
||||||
* @param deviceId Device Id
|
* @param deviceId Device Id
|
||||||
* @throws RemoteSessionManagementException throws when session has errors with accessing device resources
|
* @throws RemoteSessionManagementException throws when session has errors with accessing device resources
|
||||||
*/
|
*/
|
||||||
public void initializeSession(Session session, String deviceType, String deviceId) throws
|
void initializeSession(Session session, String deviceType, String deviceId) throws
|
||||||
RemoteSessionManagementException;
|
RemoteSessionManagementException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize session based on web socket request . This method use by the device to connect
|
* Initialize session based on web socket request . This method is used by the device to connect
|
||||||
*
|
*
|
||||||
* @param session Web socket RemoteSession
|
* @param session Web socket RemoteSession
|
||||||
* @param deviceType Device Type
|
* @param deviceType Device Type
|
||||||
@ -47,7 +47,7 @@ public interface RemoteSessionManagementService {
|
|||||||
* @param operationId Operation Id that device needs to connec
|
* @param operationId Operation Id that device needs to connec
|
||||||
* @throws RemoteSessionManagementException throws when session has errors with accessing device resources
|
* @throws RemoteSessionManagementException throws when session has errors with accessing device resources
|
||||||
*/
|
*/
|
||||||
public void initializeSession(Session session, String deviceType, String deviceId, String operationId) throws
|
void initializeSession(Session session, String deviceType, String deviceId, String operationId) throws
|
||||||
RemoteSessionManagementException;
|
RemoteSessionManagementException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -57,7 +57,7 @@ public interface RemoteSessionManagementService {
|
|||||||
* @param message Message needs to send to peer connection client
|
* @param message Message needs to send to peer connection client
|
||||||
* @throws RemoteSessionManagementException
|
* @throws RemoteSessionManagementException
|
||||||
*/
|
*/
|
||||||
public void sendMessageToPeer(Session session, String message) throws RemoteSessionManagementException;
|
void sendMessageToPeer(Session session, String message) throws RemoteSessionManagementException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send byte message to connected remote device or client
|
* Send byte message to connected remote device or client
|
||||||
@ -66,13 +66,13 @@ public interface RemoteSessionManagementService {
|
|||||||
* @param message Message needs to send to peer connection
|
* @param message Message needs to send to peer connection
|
||||||
* @throws RemoteSessionManagementException
|
* @throws RemoteSessionManagementException
|
||||||
*/
|
*/
|
||||||
public void sendMessageToPeer(Session session, byte[] message) throws RemoteSessionManagementException;
|
void sendMessageToPeer(Session session, byte[] message) throws RemoteSessionManagementException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Close the session
|
* Close the session
|
||||||
*
|
*
|
||||||
* @param session Web socket RemoteSession
|
* @param session Web socket RemoteSession
|
||||||
*/
|
*/
|
||||||
public void endSession(Session session,String closeReason);
|
void endSession(Session session, String closeReason);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -47,6 +47,10 @@ import java.util.LinkedList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class @{@link RemoteSessionManagementServiceImpl} is the implementation of @{@link RemoteSessionManagementService}
|
||||||
|
* which is used manage initial connection, sending messages to peer session, manage and close the session.
|
||||||
|
*/
|
||||||
public class RemoteSessionManagementServiceImpl implements RemoteSessionManagementService {
|
public class RemoteSessionManagementServiceImpl implements RemoteSessionManagementService {
|
||||||
|
|
||||||
private static final Log log = LogFactory.getLog(RemoteSessionManagementServiceImpl.class);
|
private static final Log log = LogFactory.getLog(RemoteSessionManagementServiceImpl.class);
|
||||||
|
|||||||
@ -27,7 +27,6 @@ import org.wso2.carbon.identity.oauth2.stub.dto.OAuth2TokenValidationRequestDTO_
|
|||||||
import org.wso2.carbon.identity.oauth2.stub.dto.OAuth2TokenValidationResponseDTO;
|
import org.wso2.carbon.identity.oauth2.stub.dto.OAuth2TokenValidationResponseDTO;
|
||||||
import org.wso2.carbon.utils.multitenancy.MultitenantUtils;
|
import org.wso2.carbon.utils.multitenancy.MultitenantUtils;
|
||||||
|
|
||||||
|
|
||||||
import java.rmi.RemoteException;
|
import java.rmi.RemoteException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -41,14 +40,6 @@ public class OAuthTokenValidator {
|
|||||||
private static String cookie;
|
private static String cookie;
|
||||||
private GenericObjectPool stubs;
|
private GenericObjectPool stubs;
|
||||||
private static Log log = LogFactory.getLog(OAuthTokenValidator.class);
|
private static Log log = LogFactory.getLog(OAuthTokenValidator.class);
|
||||||
private static final String COOKIE_KEY_VALUE_SEPERATOR = "=";
|
|
||||||
private static final String COOKIE_KEYPAIR_SEPERATOR = ";";
|
|
||||||
private static final String COOKIE = "cookie";
|
|
||||||
private static final String TOKEN_TYPE = "bearer";
|
|
||||||
private static final String TOKEN_IDENTIFIER = "websocketToken";
|
|
||||||
private static final String QUERY_STRING_SEPERATOR = "&";
|
|
||||||
private static final String QUERY_KEY_VALUE_SEPERATOR = "=";
|
|
||||||
private static final String QUERY_STRING = "queryString";
|
|
||||||
private static OAuthTokenValidator oAuthTokenValidator;
|
private static OAuthTokenValidator oAuthTokenValidator;
|
||||||
|
|
||||||
|
|
||||||
@ -58,6 +49,7 @@ public class OAuthTokenValidator {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* This method gets a string accessToken and validates it
|
* This method gets a string accessToken and validates it
|
||||||
|
*
|
||||||
* @param webSocketConnectionProperties WebSocket connection information including http headers
|
* @param webSocketConnectionProperties WebSocket connection information including http headers
|
||||||
* @return AuthenticationInfo with the validated results.
|
* @return AuthenticationInfo with the validated results.
|
||||||
*/
|
*/
|
||||||
@ -118,7 +110,7 @@ public class OAuthTokenValidator {
|
|||||||
OAuth2TokenValidationRequestDTO validationRequest = new OAuth2TokenValidationRequestDTO();
|
OAuth2TokenValidationRequestDTO validationRequest = new OAuth2TokenValidationRequestDTO();
|
||||||
OAuth2TokenValidationRequestDTO_OAuth2AccessToken accessToken =
|
OAuth2TokenValidationRequestDTO_OAuth2AccessToken accessToken =
|
||||||
new OAuth2TokenValidationRequestDTO_OAuth2AccessToken();
|
new OAuth2TokenValidationRequestDTO_OAuth2AccessToken();
|
||||||
accessToken.setTokenType(TOKEN_TYPE);
|
accessToken.setTokenType(RemoteSessionConstants.OAuthTokenValidator.TOKEN_TYPE);
|
||||||
accessToken.setIdentifier(token);
|
accessToken.setIdentifier(token);
|
||||||
validationRequest.setAccessToken(accessToken);
|
validationRequest.setAccessToken(accessToken);
|
||||||
boolean authenticated;
|
boolean authenticated;
|
||||||
@ -155,16 +147,20 @@ public class OAuthTokenValidator {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieving the token from the http header
|
* Retrieving the token from the http header
|
||||||
|
*
|
||||||
* @param webSocketConnectionProperties WebSocket connection information including http headers
|
* @param webSocketConnectionProperties WebSocket connection information including http headers
|
||||||
* @return retrieved token
|
* @return retrieved token
|
||||||
*/
|
*/
|
||||||
private String getToken(Map<String, List<String>> webSocketConnectionProperties) {
|
private String getToken(Map<String, List<String>> webSocketConnectionProperties) {
|
||||||
String cookieString = webSocketConnectionProperties.get(COOKIE).get(0);
|
String cookieString = webSocketConnectionProperties.get(RemoteSessionConstants.OAuthTokenValidator.COOKIE)
|
||||||
String[] properties = cookieString.split(COOKIE_KEYPAIR_SEPERATOR);
|
.get(0);
|
||||||
|
String[] properties = cookieString.split(RemoteSessionConstants.OAuthTokenValidator.COOKIE_KEYPAIR_SEPERATOR);
|
||||||
String token;
|
String token;
|
||||||
for (String keyValuePair: properties) {
|
for (String keyValuePair : properties) {
|
||||||
if(TOKEN_IDENTIFIER.equals((keyValuePair.split(COOKIE_KEY_VALUE_SEPERATOR)[0]).trim())){
|
if (RemoteSessionConstants.OAuthTokenValidator.TOKEN_IDENTIFIER.equals((keyValuePair.
|
||||||
token = (keyValuePair.split(COOKIE_KEY_VALUE_SEPERATOR)[1]).trim();
|
split(RemoteSessionConstants.OAuthTokenValidator.COOKIE_KEY_VALUE_SEPERATOR)[0]).trim())) {
|
||||||
|
token = (keyValuePair.split(RemoteSessionConstants.OAuthTokenValidator.COOKIE_KEY_VALUE_SEPERATOR)
|
||||||
|
[1]).trim();
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -174,20 +170,24 @@ public class OAuthTokenValidator {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieving the token from the http session
|
* Retrieving the token from the http session
|
||||||
|
*
|
||||||
* @param webSocketConnectionProperties WebSocket connection information including http headers
|
* @param webSocketConnectionProperties WebSocket connection information including http headers
|
||||||
* @return retrieved token
|
* @return retrieved token
|
||||||
*/
|
*/
|
||||||
private String getTokenFromSession(Map<String, List<String>> webSocketConnectionProperties) {
|
private String getTokenFromSession(Map<String, List<String>> webSocketConnectionProperties) {
|
||||||
String queryString = webSocketConnectionProperties.get(QUERY_STRING).get(0);
|
String queryString = webSocketConnectionProperties.get(RemoteSessionConstants.OAuthTokenValidator
|
||||||
|
.QUERY_STRING).get(0);
|
||||||
if (queryString != null) {
|
if (queryString != null) {
|
||||||
String[] allQueryParamPairs = queryString.split(QUERY_STRING_SEPERATOR);
|
String[] allQueryParamPairs = queryString.split(RemoteSessionConstants.OAuthTokenValidator
|
||||||
|
.QUERY_STRING_SEPERATOR);
|
||||||
for (String keyValuePair : allQueryParamPairs) {
|
for (String keyValuePair : allQueryParamPairs) {
|
||||||
String[] queryParamPair = keyValuePair.split(QUERY_KEY_VALUE_SEPERATOR);
|
String[] queryParamPair = keyValuePair.split(RemoteSessionConstants.OAuthTokenValidator
|
||||||
|
.QUERY_KEY_VALUE_SEPERATOR);
|
||||||
if (queryParamPair.length != 2) {
|
if (queryParamPair.length != 2) {
|
||||||
log.warn("Invalid query string [" + queryString + "] passed in.");
|
log.warn("Invalid query string [" + queryString + "] passed in.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (queryParamPair[0].equals(TOKEN_IDENTIFIER)) {
|
if (queryParamPair[0].equals(RemoteSessionConstants.OAuthTokenValidator.TOKEN_IDENTIFIER)) {
|
||||||
return queryParamPair[1];
|
return queryParamPair[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -143,8 +143,7 @@ public class OAuthTokenValidatorStubFactory extends BasePoolableObjectFactory {
|
|||||||
*/
|
*/
|
||||||
private EasySSLProtocolSocketFactory createProtocolSocketFactory() throws OAuthTokenValidationException {
|
private EasySSLProtocolSocketFactory createProtocolSocketFactory() throws OAuthTokenValidationException {
|
||||||
try {
|
try {
|
||||||
EasySSLProtocolSocketFactory easySSLPSFactory = new EasySSLProtocolSocketFactory();
|
return new EasySSLProtocolSocketFactory();
|
||||||
return easySSLPSFactory;
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
String errorMsg = "Failed to initiate EasySSLProtocolSocketFactory.";
|
String errorMsg = "Failed to initiate EasySSLProtocolSocketFactory.";
|
||||||
throw new OAuthTokenValidationException(errorMsg, e);
|
throw new OAuthTokenValidationException(errorMsg, e);
|
||||||
|
|||||||
@ -44,4 +44,21 @@ public class RemoteSessionConstants {
|
|||||||
private RemoteSessionConstants() {
|
private RemoteSessionConstants() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* OAuthTokenValidator specific constants
|
||||||
|
*/
|
||||||
|
public final class OAuthTokenValidator {
|
||||||
|
public static final String COOKIE_KEY_VALUE_SEPERATOR = "=";
|
||||||
|
public static final String COOKIE_KEYPAIR_SEPERATOR = ";";
|
||||||
|
public static final String COOKIE = "cookie";
|
||||||
|
public static final String TOKEN_TYPE = "bearer";
|
||||||
|
public static final String TOKEN_IDENTIFIER = "websocketToken";
|
||||||
|
public static final String QUERY_STRING_SEPERATOR = "&";
|
||||||
|
public static final String QUERY_KEY_VALUE_SEPERATOR = "=";
|
||||||
|
public static final String QUERY_STRING = "queryString";
|
||||||
|
|
||||||
|
private OAuthTokenValidator() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
||||||
<artifactId>extensions</artifactId>
|
<artifactId>extensions</artifactId>
|
||||||
<version>4.0.66-SNAPSHOT</version>
|
<version>4.0.87-SNAPSHOT</version>
|
||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|||||||
@ -3,14 +3,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
||||||
<artifactId>extensions-feature</artifactId>
|
<artifactId>extensions-feature</artifactId>
|
||||||
<version>4.0.66-SNAPSHOT</version>
|
<version>4.0.87-SNAPSHOT</version>
|
||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<artifactId>org.wso2.carbon.device.mgt.remote.session.feature</artifactId>
|
<artifactId>org.wso2.carbon.device.mgt.remote.session.feature</artifactId>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<version>4.0.66-SNAPSHOT</version>
|
<version>4.0.87-SNAPSHOT</version>
|
||||||
<name>WSO2 Carbon - Remote Session Manager</name>
|
<name>WSO2 Carbon - Remote Session Manager</name>
|
||||||
<url>http://wso2.org</url>
|
<url>http://wso2.org</url>
|
||||||
<description>This feature contains the core bundles required iot Remote Sessions</description>
|
<description>This feature contains the core bundles required iot Remote Sessions</description>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user