@ -5,19 +5,19 @@ import com.fanruan.workplace.http.HttpServiceMap;
import com.fanruan.workplace.http.RepositoryManager ;
import com.fanruan.workplace.http.info.Stub ;
import com.fanruan.workplace.network.RemoteNetworkRepository ;
import com.fr.log.FineLoggerFactory ;
import com.fr.stable.StringUtils ;
import com.fr.workspace.engine.exception.RemoteDesignConnectionException ;
import com.fr.workspace.engine.exception.RemoteDesignNoAuthException ;
import com.fr.workspace.server.repository.authority.RemoteAuthorityRepository ;
import com.fr.workspace.server.repository.compatible.register.CompatibleRegister ;
import com.fr.workspace.server.repository.connect.FineWorkspaceHttpClient ;
import com.fr.decision.webservice.bean.authentication.LoginRequestInfoBean ;
import com.fr.decision.webservice.bean.authentication.LoginResponseInfoBean ;
import com.fr.stable.StringUtils ;
import com.fr.workspace.connect.WorkspaceClient ;
import com.fr.workspace.connect.WorkspaceConnection ;
import com.fr.workspace.connect.WorkspaceConnectionInfo ;
import com.fr.workspace.connect.WorkspaceConnector ;
import com.fr.workspace.engine.exception.RemoteDesignConnectionException ;
import com.fr.workspace.engine.exception.RemoteDesignNoAuthException ;
import com.fr.workspace.server.repository.authority.RemoteAuthorityRepository ;
import com.fr.workspace.server.repository.authority.RemoteAuthoritySource ;
import com.fr.workspace.server.repository.compatible.register.CompatibleRegister ;
import com.fr.workspace.server.repository.connect.FineWorkspaceHttpClient ;
import java.net.InetAddress ;
import java.util.Map ;
@ -72,13 +72,18 @@ public class HttpWorkspaceConnector implements WorkspaceConnector {
Stub < ? > stub = entry . getValue ( ) ;
stub . clearProxy ( ) ;
}
LoginResponseInfoBean bean = RemoteAuthorityRepository . getInstance ( ) . login ( createLoginBean ( connectionInfo ) ) ;
Map < String , Object > loginConfigMap = RemoteAuthorityRepository . getInstance ( ) . getLoginConfigMap ( ) ;
long timeout = Long . parseLong ( String . valueOf ( loginConfigMap . get ( RemoteAuthoritySource . LOGIN_TIMEOUT ) ) ) ;
boolean rememberLogin = ( boolean ) loginConfigMap . get ( RemoteAuthoritySource . SUPPORT_REMEMBER_LOGIN ) ;
LoginResponseInfoBean bean = RemoteAuthorityRepository . getInstance ( ) . login ( createLoginBean ( connectionInfo , rememberLogin ) ) ;
WorkspaceConnection connection = new WorkspaceConnection (
UUID . randomUUID ( ) . toString ( ) ,
connectionInfo . getUserName ( ) ,
HttpConstants . AUTHORIZATION_PREFIX + bean . getAccessToken ( ) ,
InetAddress . getLocalHost ( ) . getHostAddress ( ) ) ;
client . updateConnection ( connection ) ;
client . setRememberLogin ( rememberLogin ) ;
client . setTimeout ( timeout ) ;
try {
return RemoteNetworkRepository . getInstance ( ) . testConnect ( ) ;
} catch ( RemoteDesignNoAuthException e ) {
@ -88,12 +93,12 @@ public class HttpWorkspaceConnector implements WorkspaceConnector {
}
}
private LoginRequestInfoBean createLoginBean ( WorkspaceConnectionInfo connectionInfo ) {
private LoginRequestInfoBean createLoginBean ( WorkspaceConnectionInfo connectionInfo , boolean rememberLogin ) {
LoginRequestInfoBean bean = new LoginRequestInfoBean ( ) ;
bean . setUsername ( connectionInfo . getUserName ( ) ) ;
bean . setPassword ( connectionInfo . getPassword ( ) ) ;
bean . setEncrypted ( false ) ;
bean . setValidity ( - 2 ) ;
bean . setValidity ( rememberLogin ? - 2 : - 1 ) ;
return bean ;
}
}