feat: extract the hostname of devstar domain for local SSH key naming
This commit is contained in:
		
							
								
								
									
										14
									
								
								src/user.ts
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								src/user.ts
									
									
									
									
									
								
							@@ -14,11 +14,21 @@ export default class User {
 | 
				
			|||||||
  private userToken: string | undefined;
 | 
					  private userToken: string | undefined;
 | 
				
			||||||
  private usernameKey: string = 'devstarUsername'
 | 
					  private usernameKey: string = 'devstarUsername'
 | 
				
			||||||
  private userTokenKey: string = 'devstarUserToken'
 | 
					  private userTokenKey: string = 'devstarUserToken'
 | 
				
			||||||
 | 
					  private devstarHostname: string;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  constructor(context: vscode.ExtensionContext) {
 | 
					  constructor(context: vscode.ExtensionContext) {
 | 
				
			||||||
    this.context = context;
 | 
					    this.context = context;
 | 
				
			||||||
    this.username = this.context.globalState.get(this.usernameKey);
 | 
					    this.username = this.context.globalState.get(this.usernameKey);
 | 
				
			||||||
    this.userToken = this.context.globalState.get(this.userTokenKey);
 | 
					    this.userToken = this.context.globalState.get(this.userTokenKey);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 提取devstar domain的主域名,用于本地ssh key的命名
 | 
				
			||||||
 | 
					    let devstarDomainFromConfig: string|undefined;
 | 
				
			||||||
 | 
					    let devstarDomainURL: string;
 | 
				
			||||||
 | 
					    devstarDomainFromConfig = vscode.workspace.getConfiguration('devstar').get('devstarDomain')
 | 
				
			||||||
 | 
					    // 如果没有配置devstar domain,则默认domain为https://devstar.cn
 | 
				
			||||||
 | 
					    devstarDomainURL = (devstarDomainFromConfig === undefined || devstarDomainFromConfig === "") ? 'https://devstar.cn' : devstarDomainFromConfig;
 | 
				
			||||||
 | 
					    let parsedUrl = new URL(devstarDomainURL);
 | 
				
			||||||
 | 
					    this.devstarHostname = parsedUrl.hostname.replace(/\./g, '_'); //提取hostname,并用下划线替换.
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private isLogged() {
 | 
					  private isLogged() {
 | 
				
			||||||
@@ -61,7 +71,7 @@ export default class User {
 | 
				
			|||||||
      return '';
 | 
					      return '';
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return path.join(os.homedir(), '.ssh', `id_rsa_${this.username}`)
 | 
					    return path.join(os.homedir(), '.ssh', `id_rsa_${this.username}_${this.devstarHostname}`)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public getUserPublicKeyPath(): string {
 | 
					  public getUserPublicKeyPath(): string {
 | 
				
			||||||
@@ -69,7 +79,7 @@ export default class User {
 | 
				
			|||||||
      return '';
 | 
					      return '';
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return path.join(os.homedir(), '.ssh', `id_rsa_${this.username}.pub`)
 | 
					    return path.join(os.homedir(), '.ssh', `id_rsa_${this.username}_${this.devstarHostname}.pub`)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public existUserPublicKey(): boolean {
 | 
					  public existUserPublicKey(): boolean {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user