完善私钥验证

This commit is contained in:
dushixiang committed 2020-12-25 03:43:15 +08:00
1 parent 72f7dd5dc6
commit 6c7cb6b0e7
13 files changed
+203 -70

No files matched your search

+3
View File
@@ -19,3 +19,6 @@
margin-top: -189px;
}
.login-bg{
background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM2MXB4IiBoZWlnaHQ9IjYwOXB4IiB2aWV3Qm94PSIwIDAgMTM2MSA2MDkiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDQ2LjIgKDQ0NDk2KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5Hcm91cCAyMTwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJBbnQtRGVzaWduLVByby0zLjAiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSLotKbmiLflr4bnoIHnmbvlvZUt5qCh6aqMIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNzkuMDAwMDAwLCAtODIuMDAwMDAwKSI+CiAgICAgICAgICAgIDxnIGlkPSJHcm91cC0yMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzcuMDAwMDAwLCA3My4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJHcm91cC0xOCIgb3BhY2l0eT0iMC44IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3NC45MDE0MTYsIDU2OS42OTkxNTgpIHJvdGF0ZSgtNy4wMDAwMDApIHRyYW5zbGF0ZSgtNzQuOTAxNDE2LCAtNTY5LjY5OTE1OCkgdHJhbnNsYXRlKDQuOTAxNDE2LCA1MjUuMTk5MTU4KSI+CiAgICAgICAgICAgICAgICAgICAgPGVsbGlwc2UgaWQ9Ik92YWwtMTEiIGZpbGw9IiNDRkRBRTYiIG9wYWNpdHk9IjAuMjUiIGN4PSI2My41NzQ4NzkyIiBjeT0iMzIuNDY4MzY3IiByeD0iMjEuNzgzMDQ3OSIgcnk9IjIxLjc2NjAwOCI+PC9lbGxpcHNlPgogICAgICAgICAgICAgICAgICAgIDxlbGxpcHNlIGlkPSJPdmFsLTMiIGZpbGw9IiNDRkRBRTYiIG9wYWNpdHk9IjAuNTk5OTk5OTY0IiBjeD0iNS45ODc0NjQ3OSIgY3k9IjEzLjg2Njg2MDEiIHJ4PSI1LjIxNzM5MTMiIHJ5PSI1LjIxMzMwOTk3Ij48L2VsbGlwc2U+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTM4LjEzNTQ1MTQsODguMzUyMDIxNSBDNDMuODk4NDIyNyw4OC4zNTIwMjE1IDQ4LjU3MDIzNCw4My42ODM4NjQ3IDQ4LjU3MDIzNCw3Ny45MjU0MDE1IEM0OC41NzAyMzQsNzIuMTY2OTM4MyA0My44OTg0MjI3LDY3LjQ5ODc4MTYgMzguMTM1NDUxNCw2Ny40OTg3ODE2IEMzMi4zNzI0ODAxLDY3LjQ5ODc4MTYgMjcuNzAwNjY4OCw3Mi4xNjY5MzgzIDI3LjcwMDY2ODgsNzcuOTI1NDAxNSBDMjcuNzAwNjY4OCw4My42ODM4NjQ3IDMyLjM3MjQ4MDEsODguMzUyMDIxNSAzOC4xMzU0NTE0LDg4LjM1MjAyMTUgWiIgaWQ9Ik92YWwtMy1Db3B5IiBmaWxsPSIjQ0ZEQUU2IiBvcGFjaXR5PSIwLjQ1Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTY0LjI3NzU1ODIsMzMuMTcwNDk2MyBMMTE5LjE4NTgzNiwxNi41NjU0OTE1IiBpZD0iUGF0aC0xMiIgc3Ryb2tlPSIjQ0ZEQUU2IiBzdHJva2Utd2lkdGg9IjEuNzM5MTMwNDMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00Mi4xNDMxNzA4LDI2LjUwMDI2ODEgTDcuNzExOTAxNjIsMTQuNTY0MDcwMiIgaWQ9IlBhdGgtMTYiIHN0cm9rZT0iI0UwQjRCNyIgc3Ryb2tlLXdpZHRoPSIwLjcwMjY3ODk2NCIgb3BhY2l0eT0iMC43IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1kYXNoYXJyYXk9IjEuNDA1MzU3ODk5ODczMTUzLDIuMTA4MDM2OTUzNDY5OTgxIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTYzLjkyNjIxODcsMzMuNTIxNTYxIEw0My42NzIxMzI2LDY5LjMyNTA5NTEiIGlkPSJQYXRoLTE1IiBzdHJva2U9IiNCQUNBRDkiIHN0cm9rZS13aWR0aD0iMC43MDI2Nzg5NjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLWRhc2hhcnJheT0iMS40MDUzNTc4OTk4NzMxNTMsMi4xMDgwMzY5NTM0Njk5ODEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iR3JvdXAtMTciIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyNi44NTA5MjIsIDEzLjU0MzY1NCkgcm90YXRlKDMwLjAwMDAwMCkgdHJhbnNsYXRlKC0xMjYuODUwOTIyLCAtMTMuNTQzNjU0KSB0cmFuc2xhdGUoMTE3LjI4NTcwNSwgNC4zODE4ODkpIiBmaWxsPSIjQ0ZEQUU2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGVsbGlwc2UgaWQ9Ik92YWwtNCIgb3BhY2l0eT0iMC40NSIgY3g9IjkuMTM0ODI2NTMiIGN5PSI5LjEyNzY4MDc2IiByeD0iOS4xMzQ4MjY1MyIgcnk9IjkuMTI3NjgwNzYiPjwvZWxsaXBzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE4LjI2OTY1MzEsMTguMjU1MzYxNSBDMTguMjY5NjUzMSwxMy4yMTQyODI2IDE0LjE3OTg1MTksOS4xMjc2ODA3NiA5LjEzNDgyNjUzLDkuMTI3NjgwNzYgQzQuMDg5ODAxMTQsOS4xMjc2ODA3NiAwLDEzLjIxNDI4MjYgMCwxOC4yNTUzNjE1IEwxOC4yNjk2NTMxLDE4LjI1NTM2MTUgWiIgaWQ9Ik92YWwtNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS4xMzQ4MjcsIDEzLjY5MTUyMSkgc2NhbGUoLTEsIC0xKSB0cmFuc2xhdGUoLTkuMTM0ODI3LCAtMTMuNjkxNTIxKSAiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyBpZD0iR3JvdXAtMTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxNi4yOTQ3MDAsIDEyMy43MjU2MDApIHJvdGF0ZSgtNS4wMDAwMDApIHRyYW5zbGF0ZSgtMjE2LjI5NDcwMCwgLTEyMy43MjU2MDApIHRyYW5zbGF0ZSgxMDYuMjk0NzAwLCAzNS4yMjU2MDApIj4KICAgICAgICAgICAgICAgICAgICA8ZWxsaXBzZSBpZD0iT3ZhbC0yIiBmaWxsPSIjQ0ZEQUU2IiBvcGFjaXR5PSIwLjI1IiBjeD0iMjkuMTE3NjQ3MSIgY3k9IjI5LjE0MDI0MzkiIHJ4PSIyOS4xMTc2NDcxIiByeT0iMjkuMTQwMjQzOSI+PC9lbGxpcHNlPgogICAgICAgICAgICAgICAgICAgIDxlbGxpcHNlIGlkPSJPdmFsLTIiIGZpbGw9IiNDRkRBRTYiIG9wYWNpdHk9IjAuMyIgY3g9IjI5LjExNzY0NzEiIGN5PSIyOS4xNDAyNDM5IiByeD0iMjEuNTY4NjI3NSIgcnk9IjIxLjU4NTM2NTkiPjwvZWxsaXBzZT4KICAgICAgICAgICAgICAgICAgICA8ZWxsaXBzZSBpZD0iT3ZhbC0yLUNvcHkiIHN0cm9rZT0iI0NGREFFNiIgb3BhY2l0eT0iMC40IiBjeD0iMTc5LjAxOTYwOCIgY3k9IjEzOC4xNDYzNDEiIHJ4PSIyMy43MjU0OTAyIiByeT0iMjMuNzQzOTAyNCI+PC9lbGxpcHNlPgogICAgICAgICAgICAgICAgICAgIDxlbGxpcHNlIGlkPSJPdmFsLTIiIGZpbGw9IiNCQUNBRDkiIG9wYWNpdHk9IjAuNSIgY3g9IjI5LjExNzY0NzEiIGN5PSIyOS4xNDAyNDM5IiByeD0iMTAuNzg0MzEzNyIgcnk9IjEwLjc5MjY4MjkiPjwvZWxsaXBzZT4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjkuMTE3NjQ3MSwzOS45MzI5MjY4IEwyOS4xMTc2NDcxLDE4LjM0NzU2MSBDMjMuMTYxNjM1MSwxOC4zNDc1NjEgMTguMzMzMzMzMywyMy4xNzk2MDk3IDE4LjMzMzMzMzMsMjkuMTQwMjQzOSBDMTguMzMzMzMzMywzNS4xMDA4NzgxIDIzLjE2MTLine truncated
}
+12 -6
View File
@@ -1,12 +1,13 @@
import React, {Component} from 'react';
import {Button, Card, Checkbox, Form, Input} from "antd";
import {Button, Card, Checkbox, Form, Input, Typography} from "antd";
import './Login.css'
import request from "../common/request";
import {message} from "antd/es";
import {withRouter} from "react-router-dom";
import {
UserOutlined, LockOutlined
} from '@ant-design/icons';
import {LockOutlined, UserOutlined} from '@ant-design/icons';
const {Title} = Typography;
class LoginForm extends Component {
@@ -48,9 +49,12 @@ class LoginForm extends Component {
};
render() {
return (
<Card className='login-card' title="登录">
<div className='login-bg' style={{width: window.innerWidth, height: window.innerHeight, backgroundColor: '#F0F2F5'}}>
<Card className='login-card' title={null}>
<div style={{textAlign: "center", margin: '15px auto 30px auto', color: '#1890ff'}}>
<Title level={1}>Next Terminal</Title>
</div>
<Form onFinish={this.handleSubmit} className="login-form">
<Form.Item name='username' rules={[{required: true, message: '请输入登录账号!'}]}>
<Input prefix={<UserOutlined/>} placeholder="登录账号"/>
@@ -71,6 +75,8 @@ class LoginForm extends Component {
</Form.Item>
</Form>
</Card>
</div>
);
}
}
+1 -1
View File
@@ -766,12 +766,12 @@ class Access extends Component {
return (
<div>
<div className="container" style={{
overflow: this.state.containerOverflow,
width: this.state.containerWidth,
height: this.state.containerHeight
}}>
<div id="display"/>
</div>
+23 -7
View File
@@ -17,6 +17,14 @@ const AssetModal = function ({title, visible, handleOk, handleCancel, confirmLoa
setAccountType(model.accountType);
});
for (let key in model) {
if (model.hasOwnProperty(key)) {
if (model[key] === '-') {
model[key] = '';
}
}
}
const formItemLayout = {
labelCol: {span: 6},
wrapperCol: {span: 14},
@@ -54,7 +62,7 @@ const AssetModal = function ({title, visible, handleOk, handleCancel, confirmLoa
<Modal
title={title}
visible={visible}
maskClosable={true}
maskClosable={false}
onOk={() => {
form
.validateFields()
@@ -62,7 +70,8 @@ const AssetModal = function ({title, visible, handleOk, handleCancel, confirmLoa
form.resetFields();
handleOk(values);
})
.catch(info => {});
.catch(info => {
});
}}
onCancel={handleCancel}
confirmLoading={confirmLoading}
@@ -103,7 +112,7 @@ const AssetModal = function ({title, visible, handleOk, handleCancel, confirmLoa
}}>
<Option value="custom">自定义</Option>
<Option value="credential">授权凭证</Option>
<Option value="secret-key">密钥</Option>
<Option value="private-key">私钥</Option>
</Select>
</Form.Item>
@@ -143,10 +152,17 @@ const AssetModal = function ({title, visible, handleOk, handleCancel, confirmLoa
}
{
accountType === 'secret-key' ?
<Form.Item label="私钥" name='passphrase' rules={[{required: true, message: '请输入私钥'}]}>
<TextArea rows={4}/>
</Form.Item>
accountType === 'private-key' ?
<>
<Form.Item label="私钥" name='privateKey' rules={[{required: true, message: '请输入私钥'}]}>
<TextArea rows={4}/>
</Form.Item>
<Form.Item label="私钥密码" name='passphrase'>
<TextArea rows={1}/>
</Form.Item>
</>
: null
}
</Form>
@@ -481,12 +481,14 @@ class OfflineSession extends Component {
<Modal
title="会话回放"
centered
visible={this.state.playbackVisible}
onCancel={this.hidePlayback}
width={window.innerWidth * 0.8}
footer={null}
destroyOnClose
maskClosable={false}
>
<Playback sessionId={this.state.playbackSessionId}/>
</Modal>
@@ -477,6 +477,7 @@ class OnlineSession extends Component {
className='monitor'
title={this.state.sessionTitle}
centered
maskClosable={false}
visible={this.state.accessVisible}
footer={null}
width={window.innerWidth * 0.8}