Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fgqyxxlr
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yaru
fgqyxxlr
Commits
6ee8053a
Commit
6ee8053a
authored
Oct 16, 2018
by
RuoYi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
内网不查询地址
parent
7b0e1c46
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
123 additions
and
37 deletions
+123
-37
ruoyi-admin/src/main/resources/templates/monitor/job/add.html
+1
-1
ruoyi-common/src/main/java/com/ruoyi/common/utils/AddressUtils.java
+7
-1
ruoyi-common/src/main/java/com/ruoyi/common/utils/IpUtils.java
+107
-21
ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java
+5
-11
sql/ry_20181008.sql
+3
-3
No files found.
ruoyi-admin/src/main/resources/templates/monitor/job/add.html
View file @
6ee8053a
...
...
@@ -38,7 +38,7 @@
<div
class=
"form-group"
>
<label
class=
"col-sm-3 control-label"
>
执行策略:
</label>
<div
class=
"col-sm-8"
>
<label
class=
"radio-box"
>
<input
type=
"radio"
name=
"misfirePolicy"
value=
"1"
/>
继续执行
</label>
<label
class=
"radio-box"
>
<input
type=
"radio"
name=
"misfirePolicy"
value=
"1"
th:checked=
"true"
/>
继续执行
</label>
<label
class=
"radio-box"
>
<input
type=
"radio"
name=
"misfirePolicy"
value=
"2"
/>
一次执行
</label>
<label
class=
"radio-box"
>
<input
type=
"radio"
name=
"misfirePolicy"
value=
"3"
/>
放弃执行
</label>
</div>
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/AddressUtils.java
View file @
6ee8053a
...
...
@@ -20,7 +20,13 @@ public class AddressUtils
public
static
String
getRealAddressByIP
(
String
ip
)
{
String
address
=
"address disabled"
;
String
address
=
"XX XX"
;
// 内网不查询
if
(
IpUtils
.
internalIp
(
ip
))
{
return
"内网IP"
;
}
if
(
Global
.
isAddressEnabled
())
{
String
rspStr
=
HttpUtils
.
sendPost
(
IP_URL
,
"ip="
+
ip
);
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/IpUtils.java
View file @
6ee8053a
package
com
.
ruoyi
.
common
.
utils
;
import
sun.net.util.IPAddressUtil
;
import
javax.servlet.http.HttpServletRequest
;
/**
...
...
@@ -9,65 +7,152 @@ import javax.servlet.http.HttpServletRequest;
*
* @author ruoyi
*/
public
class
IpUtils
{
public
static
String
getIpAddr
(
HttpServletRequest
request
)
{
if
(
request
==
null
)
{
public
class
IpUtils
{
public
static
String
getIpAddr
(
HttpServletRequest
request
)
{
if
(
request
==
null
)
{
return
"unknown"
;
}
String
ip
=
request
.
getHeader
(
"x-forwarded-for"
);
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"Proxy-Client-IP"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"X-Forwarded-For"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"WL-Proxy-Client-IP"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"X-Real-IP"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getRemoteAddr
();
}
return
"0:0:0:0:0:0:0:1"
.
equals
(
ip
)
?
"127.0.0.1"
:
ip
;
}
public
static
boolean
internalIp
(
String
ip
)
{
byte
[]
addr
=
IPAddressUtil
.
textToNumericFormatV4
(
ip
);
return
internalIp
(
addr
);
public
static
boolean
internalIp
(
String
ip
)
{
byte
[]
addr
=
textToNumericFormatV4
(
ip
);
return
internalIp
(
addr
)
||
"127.0.0.1"
.
equals
(
ip
)
;
}
private
static
boolean
internalIp
(
byte
[]
addr
)
{
private
static
boolean
internalIp
(
byte
[]
addr
)
{
final
byte
b0
=
addr
[
0
];
final
byte
b1
=
addr
[
1
];
//10.x.x.x/8
//
10.x.x.x/8
final
byte
SECTION_1
=
0x0A
;
//172.16.x.x/12
//
172.16.x.x/12
final
byte
SECTION_2
=
(
byte
)
0xAC
;
final
byte
SECTION_3
=
(
byte
)
0x10
;
final
byte
SECTION_4
=
(
byte
)
0x1F
;
//192.168.x.x/16
//
192.168.x.x/16
final
byte
SECTION_5
=
(
byte
)
0xC0
;
final
byte
SECTION_6
=
(
byte
)
0xA8
;
switch
(
b0
)
{
switch
(
b0
)
{
case
SECTION_1:
return
true
;
case
SECTION_2:
if
(
b1
>=
SECTION_3
&&
b1
<=
SECTION_4
)
{
if
(
b1
>=
SECTION_3
&&
b1
<=
SECTION_4
)
{
return
true
;
}
case
SECTION_5:
switch
(
b1
)
{
switch
(
b1
)
{
case
SECTION_6:
return
true
;
}
default
:
return
false
;
}
}
/**
* 将IPv4地址转换成字节
*
* @param IPv4地址
* @return byte 字节
*/
public
static
byte
[]
textToNumericFormatV4
(
String
text
)
{
if
(
text
.
length
()
==
0
)
{
return
null
;
}
byte
[]
bytes
=
new
byte
[
4
];
String
[]
elements
=
text
.
split
(
"\\."
,
-
1
);
try
{
long
l
;
int
i
;
switch
(
elements
.
length
)
{
case
1
:
l
=
Long
.
parseLong
(
elements
[
0
]);
if
((
l
<
0L
)
||
(
l
>
4294967295L
))
return
null
;
bytes
[
0
]
=
(
byte
)
(
int
)
(
l
>>
24
&
0xFF
);
bytes
[
1
]
=
(
byte
)
(
int
)
((
l
&
0xFFFFFF
)
>>
16
&
0xFF
);
bytes
[
2
]
=
(
byte
)
(
int
)
((
l
&
0xFFFF
)
>>
8
&
0xFF
);
bytes
[
3
]
=
(
byte
)
(
int
)
(
l
&
0xFF
);
break
;
case
2
:
l
=
Integer
.
parseInt
(
elements
[
0
]);
if
((
l
<
0L
)
||
(
l
>
255L
))
return
null
;
bytes
[
0
]
=
(
byte
)
(
int
)
(
l
&
0xFF
);
l
=
Integer
.
parseInt
(
elements
[
1
]);
if
((
l
<
0L
)
||
(
l
>
16777215L
))
return
null
;
bytes
[
1
]
=
(
byte
)
(
int
)
(
l
>>
16
&
0xFF
);
bytes
[
2
]
=
(
byte
)
(
int
)
((
l
&
0xFFFF
)
>>
8
&
0xFF
);
bytes
[
3
]
=
(
byte
)
(
int
)
(
l
&
0xFF
);
break
;
case
3
:
for
(
i
=
0
;
i
<
2
;
++
i
)
{
l
=
Integer
.
parseInt
(
elements
[
i
]);
if
((
l
<
0L
)
||
(
l
>
255L
))
return
null
;
bytes
[
i
]
=
(
byte
)
(
int
)
(
l
&
0xFF
);
}
l
=
Integer
.
parseInt
(
elements
[
2
]);
if
((
l
<
0L
)
||
(
l
>
65535L
))
return
null
;
bytes
[
2
]
=
(
byte
)
(
int
)
(
l
>>
8
&
0xFF
);
bytes
[
3
]
=
(
byte
)
(
int
)
(
l
&
0xFF
);
break
;
case
4
:
for
(
i
=
0
;
i
<
4
;
++
i
)
{
l
=
Integer
.
parseInt
(
elements
[
i
]);
if
((
l
<
0L
)
||
(
l
>
255L
))
return
null
;
bytes
[
i
]
=
(
byte
)
(
int
)
(
l
&
0xFF
);
}
break
;
default
:
return
null
;
}
}
catch
(
NumberFormatException
e
)
{
return
null
;
}
return
bytes
;
}
}
\ No newline at end of file
ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java
View file @
6ee8053a
package
com
.
ruoyi
.
framework
.
manager
.
factory
;
import
java.util.TimerTask
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
com.ruoyi.common.constant.Constants
;
import
com.ruoyi.common.utils.AddressUtils
;
import
com.ruoyi.common.utils.IpUtils
;
import
com.ruoyi.framework.shiro.session.OnlineSession
;
import
com.ruoyi.framework.util.LogUtils
;
import
com.ruoyi.framework.util.ServletUtils
;
...
...
@@ -15,10 +17,6 @@ import com.ruoyi.system.service.ISysOperLogService;
import
com.ruoyi.system.service.impl.SysLogininforServiceImpl
;
import
com.ruoyi.system.service.impl.SysUserOnlineServiceImpl
;
import
eu.bitwalker.useragentutils.UserAgent
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.TimerTask
;
/**
* 异步工厂(产生任务用)
...
...
@@ -74,12 +72,8 @@ public class AsyncFactory
@Override
public
void
run
()
{
if
(
IpUtils
.
internalIp
(
operLog
.
getOperIp
()))
{
operLog
.
setOperLocation
(
"内网IP"
);
}
else
{
// 远程查询操作地点
operLog
.
setOperLocation
(
AddressUtils
.
getRealAddressByIP
(
operLog
.
getOperIp
()));
}
// 远程查询操作地点
operLog
.
setOperLocation
(
AddressUtils
.
getRealAddressByIP
(
operLog
.
getOperIp
()));
SpringUtils
.
getBean
(
ISysOperLogService
.
class
).
insertOperlog
(
operLog
);
}
};
...
...
sql/ry_20181008.sql
View file @
6ee8053a
...
...
@@ -562,7 +562,7 @@ create table sys_job (
method_name
varchar
(
500
)
default
''
comment
'任务方法'
,
method_params
varchar
(
200
)
default
''
comment
'方法参数'
,
cron_expression
varchar
(
255
)
default
''
comment
'cron执行表达式'
,
misfire_policy
varchar
(
20
)
default
'
0'
comment
'计划执行错误策略(0默认
1继续 2等待 3放弃)'
,
misfire_policy
varchar
(
20
)
default
'
1'
comment
'计划执行错误策略(
1继续 2等待 3放弃)'
,
status
char
(
1
)
default
'0'
comment
'状态(0正常 1暂停)'
,
create_by
varchar
(
64
)
default
''
comment
'创建者'
,
create_time
datetime
comment
'创建时间'
,
...
...
@@ -572,8 +572,8 @@ create table sys_job (
primary
key
(
job_id
,
job_name
,
job_group
)
)
engine
=
innodb
auto_increment
=
100
default
charset
=
utf8
comment
=
'定时任务调度表'
;
insert
into
sys_job
values
(
1
,
'ryTask'
,
'系统默认(无参)'
,
'ryNoParams'
,
''
,
'0/10 * * * * ?'
,
'
0
'
,
'1'
,
'admin'
,
'2018-03-16 11-33-00'
,
'ry'
,
'2018-03-16 11-33-00'
,
''
);
insert
into
sys_job
values
(
2
,
'ryTask'
,
'系统默认(有参)'
,
'ryParams'
,
'ry'
,
'0/20 * * * * ?'
,
'
0
'
,
'1'
,
'admin'
,
'2018-03-16 11-33-00'
,
'ry'
,
'2018-03-16 11-33-00'
,
''
);
insert
into
sys_job
values
(
1
,
'ryTask'
,
'系统默认(无参)'
,
'ryNoParams'
,
''
,
'0/10 * * * * ?'
,
'
1
'
,
'1'
,
'admin'
,
'2018-03-16 11-33-00'
,
'ry'
,
'2018-03-16 11-33-00'
,
''
);
insert
into
sys_job
values
(
2
,
'ryTask'
,
'系统默认(有参)'
,
'ryParams'
,
'ry'
,
'0/20 * * * * ?'
,
'
1
'
,
'1'
,
'admin'
,
'2018-03-16 11-33-00'
,
'ry'
,
'2018-03-16 11-33-00'
,
''
);
-- ----------------------------
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment