|
|
|
@ -46,17 +46,7 @@ public class HttpWorkspaceConnector implements WorkspaceConnector {
|
|
|
|
|
LoginResponseInfoBean bean; |
|
|
|
|
try { |
|
|
|
|
bean = RemoteAuthorityRepository.getInstance().login(createLoginBean(connectionInfo)); |
|
|
|
|
WorkspaceConnection connection = new WorkspaceConnection( |
|
|
|
|
UUID.randomUUID().toString(), |
|
|
|
|
connectionInfo.getUserName(), |
|
|
|
|
HttpConstants.AUTHORIZATION_PREFIX + bean.getAccessToken(), |
|
|
|
|
InetAddress.getLocalHost().getHostAddress()); |
|
|
|
|
client.updateConnection(connection); |
|
|
|
|
// 检查远程权限
|
|
|
|
|
if (!checkRemoteAuthority(connection)) { |
|
|
|
|
// 无权限则抛出无权限的错
|
|
|
|
|
throw new RemoteDesignPermissionDeniedException(); |
|
|
|
|
} |
|
|
|
|
checkValidAndUpdateInfo(client, connectionInfo, bean); |
|
|
|
|
} finally { |
|
|
|
|
client.closePool(); |
|
|
|
|
} |
|
|
|
@ -78,6 +68,18 @@ public class HttpWorkspaceConnector implements WorkspaceConnector {
|
|
|
|
|
throw new RuntimeException("Empty token, try connect again and check server"); |
|
|
|
|
} |
|
|
|
|
FineLoggerFactory.getLogger().info("[connector] infos:{}", bean.getAccessToken()); |
|
|
|
|
checkValidAndUpdateInfo(client, connectionInfo, bean); |
|
|
|
|
client.startHeartBeat(); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
client.closePool(); |
|
|
|
|
throw e; |
|
|
|
|
} |
|
|
|
|
CompatibleRegister.registerCompatibleEnv(); |
|
|
|
|
RepositoryManager.getInstance().clearLastPool(); |
|
|
|
|
return client; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void checkValidAndUpdateInfo(FineWorkspaceHttpClient client, WorkspaceConnectionInfo connectionInfo, LoginResponseInfoBean bean) throws Exception { |
|
|
|
|
WorkspaceConnection connection = new WorkspaceConnection( |
|
|
|
|
UUID.randomUUID().toString(), |
|
|
|
|
connectionInfo.getUserName(), |
|
|
|
@ -89,14 +91,6 @@ public class HttpWorkspaceConnector implements WorkspaceConnector {
|
|
|
|
|
// 无权限则抛出无权限的错
|
|
|
|
|
throw new RemoteDesignPermissionDeniedException(); |
|
|
|
|
} |
|
|
|
|
client.startHeartBeat(); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
client.closePool(); |
|
|
|
|
throw e; |
|
|
|
|
} |
|
|
|
|
CompatibleRegister.registerCompatibleEnv(); |
|
|
|
|
RepositoryManager.getInstance().clearLastPool(); |
|
|
|
|
return client; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private boolean checkRemoteAuthority(WorkspaceConnection connection) { |
|
|
|
|