sensor setup
This commit is contained in:
parent
8692555516
commit
7c70dc0d71
301
src/ts/@overflow/discovery/react/components/DiscoveryTree.tsx
Normal file
301
src/ts/@overflow/discovery/react/components/DiscoveryTree.tsx
Normal file
|
@ -0,0 +1,301 @@
|
|||
|
||||
import * as React from 'react';
|
||||
// import update from 'immutability-helper';
|
||||
|
||||
import {
|
||||
Checkbox,
|
||||
Container,
|
||||
Label,
|
||||
Accordion,
|
||||
Icon,
|
||||
List,
|
||||
ListItemProps,
|
||||
} from 'semantic-ui-react';
|
||||
|
||||
|
||||
import Host from '@overflow/discovery/api/model/Host';
|
||||
import Port from '@overflow/discovery/api/model/Port';
|
||||
import Service from '@overflow/discovery/api/model/Service';
|
||||
|
||||
import * as Utils from '@overflow/commons/util/Utils';
|
||||
|
||||
export interface DiscoveryResultProps {
|
||||
}
|
||||
|
||||
export interface DiscoveryResultState {
|
||||
portState: { [key: number]: boolean; };
|
||||
}
|
||||
|
||||
|
||||
export class DiscoveryTree extends React.Component<DiscoveryResultProps, DiscoveryResultState> {
|
||||
|
||||
constructor(props: any, context: any) {
|
||||
super(props, context);
|
||||
|
||||
this.state = {
|
||||
portState: {},
|
||||
};
|
||||
|
||||
|
||||
// fs.readFile('../../../../../dh.json', this.handlJSONFile);
|
||||
}
|
||||
|
||||
|
||||
public render(): JSX.Element {
|
||||
|
||||
return (
|
||||
<Container>
|
||||
<List selection>
|
||||
{
|
||||
|
||||
jsonData.map((data: any, index: number) => {
|
||||
let hh: Host = data;
|
||||
this.state.portState[hh.ip] = false;
|
||||
return (
|
||||
<List.Item key={index} >
|
||||
|
||||
<List.Icon name='folder' onClick={() => {
|
||||
|
||||
|
||||
|
||||
{/*const newPortState = update.newContext()(this.state.portState, {
|
||||
[hh.ip]: !this.state.portState[hh.ip]
|
||||
});*/}
|
||||
|
||||
{/*this.setState({ portState: newPortState });*/ }
|
||||
|
||||
}} />
|
||||
|
||||
<List.Content>
|
||||
|
||||
<List.Header> <Checkbox label={Utils.int2ip(hh.ip) + ' ' + hh.os} /> </List.Header>
|
||||
<List.Description>Host</List.Description>
|
||||
{this.state.portState[hh.ip] ?
|
||||
hh.ports ? hh.ports.map((port: Port, idx: number) => {
|
||||
|
||||
return (
|
||||
<List.List key={idx * 1000}>
|
||||
<List.Item>
|
||||
<List.Icon name='folder' />
|
||||
<List.Content>
|
||||
<List.Header> <Checkbox label={port.portNumber + ' ' + port.portType} /></List.Header>
|
||||
<List.Description>Port</List.Description>
|
||||
{port.services ? port.services.map((service: Service, sIdx: number) => {
|
||||
return (
|
||||
<List.List key={sIdx * 10000}>
|
||||
<List.Item>
|
||||
<List.Icon name='folder' />
|
||||
<List.Content>
|
||||
<List.Header><Checkbox label={service.serviceName + ' ' + service.portType} /></List.Header>
|
||||
<List.Description>Service</List.Description>
|
||||
</List.Content>
|
||||
</List.Item>
|
||||
</List.List>
|
||||
);
|
||||
}) : ''}
|
||||
</List.Content>
|
||||
</List.Item>
|
||||
</List.List>
|
||||
);
|
||||
}) : '' : ''}
|
||||
|
||||
</List.Content>
|
||||
</List.Item>
|
||||
);
|
||||
|
||||
})}
|
||||
</List>
|
||||
|
||||
{/*<List>
|
||||
<List.Item >
|
||||
<Label basic onClick={() => {
|
||||
this.setState({ tt: !this.state.tt });
|
||||
}}>Host</Label>
|
||||
<Checkbox />
|
||||
</List.Item>
|
||||
{this.state.tt ? <List.Item selection >
|
||||
<List.List>
|
||||
<List.Item>Port 22 NOR</List.Item>
|
||||
<List.Item>Port 443 TLS</List.Item>
|
||||
<List.Item>Port 80 NOR </List.Item>
|
||||
</List.List>
|
||||
</List.Item> : ''}
|
||||
</List>*/}
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const jsonData = [{
|
||||
'firstScanRange': 1,
|
||||
'lastScanRange': 10000,
|
||||
'name': '',
|
||||
'ip': 3232235818,
|
||||
'mac': 91754662925,
|
||||
'os': 'Windows',
|
||||
'ports': [{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'services': [{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'portType': 'TCP',
|
||||
'serviceName': 'SSH',
|
||||
'target': true,
|
||||
}],
|
||||
'portType': 'TCP',
|
||||
'portNumber': 22,
|
||||
},
|
||||
{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'services': [{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'portType': 'TCP',
|
||||
'serviceName': 'HTTP',
|
||||
}],
|
||||
'portType': 'TCP',
|
||||
'portNumber': 443,
|
||||
},
|
||||
{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'services': [{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'portType': 'TCP',
|
||||
'serviceName': 'HTTP',
|
||||
}],
|
||||
'portType': 'TCP',
|
||||
'portNumber': 80,
|
||||
}],
|
||||
'createDate': 1498470178000,
|
||||
'updateDate': 1498470178000,
|
||||
},
|
||||
{
|
||||
'firstScanRange': 1,
|
||||
'lastScanRange': 10000,
|
||||
'name': '',
|
||||
'ip': 3232235781,
|
||||
'mac': 91754660625,
|
||||
'os': 'Windows',
|
||||
'ports': [{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'services': [{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'portType': 'TCP',
|
||||
'serviceName': 'SSH',
|
||||
}],
|
||||
'portType': 'TCP',
|
||||
'portNumber': 22,
|
||||
},
|
||||
{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'services': [{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'portType': 'TCP',
|
||||
'serviceName': 'HTTP',
|
||||
}],
|
||||
'portType': 'TCP',
|
||||
'portNumber': 80,
|
||||
},
|
||||
{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'services': [{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'portType': 'TCP',
|
||||
'serviceName': 'HTTP',
|
||||
}],
|
||||
'portType': 'TCP',
|
||||
'portNumber': 1936,
|
||||
},
|
||||
{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'services': null,
|
||||
'portType': 'TCP',
|
||||
'portNumber': 443,
|
||||
}],
|
||||
'createDate': 1498470178000,
|
||||
'updateDate': 1498470178000,
|
||||
},
|
||||
{
|
||||
'firstScanRange': 1,
|
||||
'lastScanRange': 10000,
|
||||
'name': '',
|
||||
'ip': 3232235797,
|
||||
'mac': 91754662913,
|
||||
'os': 'Windows',
|
||||
'target': true,
|
||||
'ports': [{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'services': [{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'portType': 'TCP',
|
||||
'serviceName': 'HTTP',
|
||||
}],
|
||||
'portType': 'TCP',
|
||||
'portNumber': 80,
|
||||
},
|
||||
{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'services': [{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'portType': 'TCP',
|
||||
'serviceName': 'SSH',
|
||||
}],
|
||||
'portType': 'TCP',
|
||||
'portNumber': 22,
|
||||
},
|
||||
{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'services': [{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'portType': 'TCP',
|
||||
'serviceName': 'HTTP',
|
||||
}],
|
||||
'portType': 'TCP',
|
||||
'portNumber': 3343,
|
||||
},
|
||||
{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'services': [{
|
||||
'createDate': -62135596800000,
|
||||
'updateDate': -62135596800000,
|
||||
'portType': 'TCP',
|
||||
'serviceName': 'HTTP',
|
||||
}],
|
||||
'portType': 'TCP',
|
||||
'portNumber': 443,
|
||||
}],
|
||||
'createDate': 1498470178000,
|
||||
'updateDate': 1498470178000,
|
||||
},
|
||||
{
|
||||
'firstScanRange': 1,
|
||||
'lastScanRange': 10000,
|
||||
'name': '',
|
||||
'ip': 3232235877,
|
||||
'mac': 75361038758387,
|
||||
'os': 'Windows',
|
||||
'ports': null,
|
||||
'createDate': 1498470179000,
|
||||
'updateDate': 1498470179000,
|
||||
},
|
||||
|
||||
|
||||
];
|
|
@ -102,6 +102,8 @@ export class CrawlerSelector extends React.Component<CrawlerSelectorProps, Crawl
|
|||
id: Number(data.value),
|
||||
};
|
||||
this.props.onCrawlerReadAllByMetaCrawler(crawler);
|
||||
|
||||
this.props.onSelectCrawlerId(Number(data.value));
|
||||
}
|
||||
|
||||
public checkInstall(): void {
|
||||
|
|
|
@ -16,7 +16,7 @@ export interface SensorConfigurationDispatchProps {
|
|||
}
|
||||
|
||||
export interface SensorConfigurationState {
|
||||
|
||||
selectedCrawlerId: number;
|
||||
}
|
||||
|
||||
export type SensorConfigurationProps = SensorConfigurationStateProps & SensorConfigurationDispatchProps;
|
||||
|
@ -26,12 +26,20 @@ export class SensorConfiguration extends React.Component<SensorConfigurationProp
|
|||
constructor(props: SensorConfigurationProps, context: SensorConfigurationState) {
|
||||
super(props, context);
|
||||
this.state = {
|
||||
selectedCrawlerId: 0,
|
||||
};
|
||||
}
|
||||
|
||||
public onSelectCrawlerId = (id: number) => {
|
||||
this.setState({
|
||||
selectedCrawlerId: id,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public render(): JSX.Element {
|
||||
let steps = [<CrawlerSelectorContainer />, <Segment vertical><SensorItemTree /></Segment>, <ETCSelector />];
|
||||
let steps = [<CrawlerSelectorContainer onSelectCrawlerId={this.onSelectCrawlerId.bind(this)}/>,
|
||||
<Segment vertical><SensorItemTree crawlerId={this.state.selectedCrawlerId}/></Segment>, <ETCSelector />];
|
||||
|
||||
return (
|
||||
<ConfigStepper steps={steps} />
|
||||
|
|
Loading…
Reference in New Issue
Block a user