Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gk
Project
Project
Details
Activity
Releases
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
micro_app
gk
Commits
fe933bd5
Commit
fe933bd5
authored
May 24, 2026
by
daniel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(auth): 后台新增权限控制
parent
bfe16c51
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
927 additions
and
685 deletions
+927
-685
SecurityInterceptor.java
...dlbridge/jadp/common/interceptor/SecurityInterceptor.java
+45
-23
CmptController.java
...va/com/dlbridge/jadp/plugins/cmpt/web/CmptController.java
+11
-0
MicroApiController.java
...om/dlbridge/jadp/plugins/cmpt/web/MicroApiController.java
+6
-0
UEditorController.java
...a/com/dlbridge/jadp/plugins/common/UEditorController.java
+191
-0
application-dev.properties
src/main/resources/application-dev.properties
+12
-4
auth_no.jsp
src/main/webapp/WEB-INF/views/auth_no.jsp
+39
-11
gpsDeposit.jsp
src/main/webapp/WEB-INF/views/cmpt/gpsDeposit.jsp
+2
-0
list.jsp
src/main/webapp/WEB-INF/views/cmpt/list.jsp
+275
-246
news.jsp
src/main/webapp/WEB-INF/views/cmpt/news.jsp
+2
-0
outter-link.jsp
src/main/webapp/WEB-INF/views/cmpt/outter-link.jsp
+2
-0
service.jsp
src/main/webapp/WEB-INF/views/cmpt/service.jsp
+2
-0
swiper.jsp
src/main/webapp/WEB-INF/views/cmpt/swiper.jsp
+2
-0
header.jsp
src/main/webapp/WEB-INF/views/common/header.jsp
+1
-1
menu.jsp
src/main/webapp/WEB-INF/views/common/menu.jsp
+2
-33
login.jsp
src/main/webapp/WEB-INF/views/login.jsp
+335
-367
No files found.
src/main/java/com/dlbridge/jadp/common/interceptor/SecurityInterceptor.java
View file @
fe933bd5
...
...
@@ -49,47 +49,56 @@ public class SecurityInterceptor extends JService implements HandlerInterceptor
// 检查请求头中是否有Upgrade: websocket
String
upgradeHeader
=
request
.
getHeader
(
"Upgrade"
);
if
(
"websocket"
.
equalsIgnoreCase
(
upgradeHeader
))
{
// 如果是WebSocket升级请求,可以选择不处理或特殊处理
// 然后返回true,继续执行
return
true
;
}
String
uri
=
request
.
getRequestURI
();
// 放行的路径:登录相关、UEditor、静态资源、微信回调
if
(
isWhitelisted
(
uri
))
{
return
true
;
}
Map
<
String
,
Object
>
queryParams
=
getQueryParams
(
request
);
// logger.info("请求URL:"+request.getRequestURI()+queryParams);
if
(
handler
instanceof
HandlerMethod
)
{
HandlerMethod
handlerMethod
=
(
HandlerMethod
)
handler
;
Method
method
=
handlerMethod
.
getMethod
();
PageView
annotation
=
method
.
getAnnotation
(
PageView
.
class
);
// String userAgent = request.getHeader("user-agent").toLowerCase();
// if(userAgent.indexOf("miniprogram")>-1) {//小程序
// String partnerId = request.getParameter("partnerId");
// if(partnerId == null){
// throw new NoAuthException("未查询到partnerdId,没权限!,uri: " + request.getRequestURI());
// }
// }
// foward入口不拦截(在Controller中颁发session)
if
(
uri
.
contains
(
"cmpt/foward"
))
{
return
true
;
}
// 小程序请求放行(小程序没有session)
String
userAgent
=
request
.
getHeader
(
"user-agent"
);
if
(
userAgent
!=
null
)
{
String
ua
=
userAgent
.
toLowerCase
();
if
(
ua
.
contains
(
"miniprogram"
)
||
ua
.
contains
(
"micromessenger"
))
{
return
true
;
}
}
if
(
request
.
getRequestURI
().
indexOf
(
"easy"
)
>
-
1
&&
request
.
getSession
().
getAttribute
(
"user"
)
==
null
){
response
.
sendRedirect
(
domain
+
"login"
);
// /gk/ 和 /easy/ 路径要求session登录
if
((
uri
.
startsWith
(
"/gk/"
)
||
uri
.
contains
(
"easy"
))
&&
request
.
getSession
().
getAttribute
(
"user"
)
==
null
)
{
response
.
sendRedirect
(
domain
+
"auth_no"
);
return
false
;
}
if
(
annotation
!=
null
)
{
String
[]
split
=
request
.
getRequestURI
().
split
(
"/"
);
String
cmptId
=
split
[
split
.
length
-
1
];
// 已登录的用户跳过sign校验
if
(
request
.
getSession
().
getAttribute
(
"user"
)
!=
null
)
{
return
true
;
}
String
timestamp
=
request
.
getParameter
(
"timestamp"
);
String
sign
=
request
.
getParameter
(
"sign"
);
String
cId
=
request
.
getParameter
(
"cId"
);
String
uId
=
request
.
getParameter
(
"uId"
);
// log.info("请求路径:" + str + ",sign:" + DigestUtils.md5DigestAsHex(str.getBytes()) + ",psign:" + sign);
if
(
NumberUtils
.
toInt
(
uId
,
-
1
)
==
-
1
||
NumberUtils
.
toInt
(
uId
,
-
1
)
==
0
)
{
log
.
info
(
"无用户信息登录"
);
response
.
sendRedirect
(
"http://timer.geexek.com"
);
if
(
cId
==
null
||
timestamp
==
null
||
sign
==
null
||
uId
==
null
)
{
log
.
info
(
"缺少签名参数, uri:{}"
,
uri
);
response
.
sendRedirect
(
domain
+
"auth_no"
);
return
false
;
}
if
(
cId
==
null
||
timestamp
==
null
)
{
log
.
info
(
"无权限!"
);
throw
new
RuntimeException
(
"无权限"
);
}
String
str
=
"cId="
+
cId
+
"×tamp="
+
timestamp
+
"&uId="
+
uId
;
if
(!
DigestUtils
.
md5DigestAsHex
(
str
.
getBytes
()).
equals
(
sign
))
{
log
.
info
(
"签名不一致!"
);
...
...
@@ -103,6 +112,19 @@ public class SecurityInterceptor extends JService implements HandlerInterceptor
return
true
;
}
private
boolean
isWhitelisted
(
String
uri
)
{
return
uri
.
equals
(
"/login"
)
||
uri
.
startsWith
(
"/login/"
)
||
uri
.
equals
(
"/loginout"
)
||
uri
.
startsWith
(
"/getQrCodePic"
)
||
uri
.
startsWith
(
"/getSign"
)
||
uri
.
startsWith
(
"/getAuthorizeCode"
)
||
uri
.
startsWith
(
"/sendMsgCode"
)
||
uri
.
startsWith
(
"/sendRegisterMsgCode"
)
||
uri
.
startsWith
(
"/startCaptcha"
)
||
uri
.
startsWith
(
"/ueditor/"
)
||
uri
.
startsWith
(
"/static/"
)
||
uri
.
startsWith
(
"/api-common/"
)
||
uri
.
equals
(
"/auth"
)
||
uri
.
equals
(
"/auth_no"
);
}
public
static
Map
<
String
,
Object
>
getQueryParams
(
HttpServletRequest
request
)
{
Map
map
;
if
(
request
.
getMethod
().
equalsIgnoreCase
(
"POST"
))
{
...
...
@@ -205,7 +227,7 @@ public class SecurityInterceptor extends JService implements HandlerInterceptor
modelAndView
.
addObject
(
"uId"
,
uId
);
modelAndView
.
addObject
(
"sign"
,
new
String
(
DigestUtils
.
md5DigestAsHex
((
"cId="
+
cmptId
+
"×tamp="
+
timestamp
+
"&uId="
+
uId
).
getBytes
())));
modelAndView
.
addObject
(
"baseURL"
,
domain
);
modelAndView
.
addObject
(
"yfb"
,
request
.
getSession
().
getAttribute
(
"yfb"
));
//
modelAndView.addObject("yfb",request.getSession().getAttribute("yfb"));
}
}
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/web/CmptController.java
View file @
fe933bd5
...
...
@@ -164,6 +164,7 @@ public class CmptController {
@PathVariable
(
"userId"
)
Integer
userId
,
@PathVariable
(
"gUserId"
)
Integer
gUserId
,
@RequestParam
(
value
=
"partnerId"
,
required
=
false
)
String
partnerId
,
HttpServletRequest
request
,
ModelAndView
mv
)
{
log
.
info
(
"=====跳转赛客助手管理后台 cmptId:"
+
cmptId
+
",userId:"
+
userId
+
",gUserId:"
+
gUserId
);
// 修改从赛客官网后台跳转到赛客助手后台 by Linc 2022/05/18
...
...
@@ -204,6 +205,16 @@ public class CmptController {
}
else
{
user2
=
new
NeuUser
().
setId
(
uId
);
}
// 颁发session鉴权 - uId或guserid即为registerinfo.userid
Integer
geexekUserId
=
user2
.
getGuserid
()
>
0
?
user2
.
getGuserid
()
:
uId
;
if
(
geexekUserId
!=
null
&&
geexekUserId
>
0
)
{
GeexekUser
geexekUser
=
cmptService
.
getGeexekUser
(
geexekUserId
);
if
(
geexekUser
!=
null
)
{
request
.
getSession
().
setAttribute
(
"user"
,
geexekUser
);
}
}
String
param
=
"uId="
+
user2
.
getId
();
// 跳转到赛客助手后台赛事列表
if
(
partnerId
!=
null
&&
!
partnerId
.
isEmpty
()&&!
partnerId
.
equals
(
"null"
)){
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/web/MicroApiController.java
View file @
fe933bd5
...
...
@@ -454,6 +454,12 @@ public class MicroApiController {
String
partnerId
=
request
.
getParameter
(
"partnerId"
);
String
creator
=
request
.
getParameter
(
"userId"
);
Partner
partner
=
cmptService
.
getPartnerById
(
partnerId
);
if
(
partner
==
null
)
{
Page
<
List
<
Cmpt
>>
result
=
new
Page
<>();
result
.
setCode
(-
1
);
result
.
setMsg
(
"合作方不存在"
);
return
(
result
);
}
// log.info("partner:"+partner);
Map
<
String
,
String
>
param
=
new
HashMap
<>();
param
.
put
(
"userId"
,
partner
.
getUserId
()
+
""
);
...
...
src/main/java/com/dlbridge/jadp/plugins/common/UEditorController.java
0 → 100644
View file @
fe933bd5
package
com
.
dlbridge
.
jadp
.
plugins
.
common
;
import
com.dlbridge.jadp.plugins.cmpt.utils.AliOssUtil
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.util.*
;
@RestController
@RequestMapping
(
"/ueditor"
)
@RequiredArgsConstructor
@Slf4j
public
class
UEditorController
{
private
static
final
long
IMAGE_MAX_SIZE
=
10
*
1024
*
1024
;
private
static
final
long
FILE_MAX_SIZE
=
50
*
1024
*
1024
;
private
static
final
List
<
String
>
IMAGE_ALLOWED
=
Arrays
.
asList
(
".png"
,
".jpg"
,
".jpeg"
,
".gif"
,
".bmp"
);
private
static
final
List
<
String
>
FILE_ALLOWED
=
Arrays
.
asList
(
".png"
,
".jpg"
,
".jpeg"
,
".gif"
,
".bmp"
,
".doc"
,
".docx"
,
".xls"
,
".xlsx"
,
".ppt"
,
".pptx"
,
".pdf"
,
".txt"
,
".zip"
,
".rar"
,
".7z"
,
".mp3"
,
".mp4"
);
private
static
final
Map
<
String
,
byte
[]>
MAGIC_NUMBERS
=
new
HashMap
<>();
static
{
MAGIC_NUMBERS
.
put
(
".jpg"
,
new
byte
[]{(
byte
)
0xFF
,
(
byte
)
0xD8
,
(
byte
)
0xFF
});
MAGIC_NUMBERS
.
put
(
".jpeg"
,
new
byte
[]{(
byte
)
0xFF
,
(
byte
)
0xD8
,
(
byte
)
0xFF
});
MAGIC_NUMBERS
.
put
(
".png"
,
new
byte
[]{(
byte
)
0x89
,
0x50
,
0x4E
,
0x47
,
0x0D
,
0x0A
,
0x1A
,
0x0A
});
MAGIC_NUMBERS
.
put
(
".gif"
,
new
byte
[]{
0x47
,
0x49
,
0x46
,
0x38
});
MAGIC_NUMBERS
.
put
(
".bmp"
,
new
byte
[]{
0x42
,
0x4D
});
MAGIC_NUMBERS
.
put
(
".pdf"
,
new
byte
[]{
0x25
,
0x50
,
0x44
,
0x46
});
MAGIC_NUMBERS
.
put
(
".doc"
,
new
byte
[]{(
byte
)
0xD0
,
(
byte
)
0xCF
,
0x11
,
(
byte
)
0xE0
,
(
byte
)
0xA1
,
(
byte
)
0xB1
,
0x1A
,
(
byte
)
0xE1
});
MAGIC_NUMBERS
.
put
(
".docx"
,
new
byte
[]{
0x50
,
0x4B
,
0x03
,
0x04
});
MAGIC_NUMBERS
.
put
(
".xls"
,
new
byte
[]{(
byte
)
0xD0
,
(
byte
)
0xCF
,
0x11
,
(
byte
)
0xE0
,
(
byte
)
0xA1
,
(
byte
)
0xB1
,
0x1A
,
(
byte
)
0xE1
});
MAGIC_NUMBERS
.
put
(
".xlsx"
,
new
byte
[]{
0x50
,
0x4B
,
0x03
,
0x04
});
MAGIC_NUMBERS
.
put
(
".ppt"
,
new
byte
[]{(
byte
)
0xD0
,
(
byte
)
0xCF
,
0x11
,
(
byte
)
0xE0
,
(
byte
)
0xA1
,
(
byte
)
0xB1
,
0x1A
,
(
byte
)
0xE1
});
MAGIC_NUMBERS
.
put
(
".pptx"
,
new
byte
[]{
0x50
,
0x4B
,
0x03
,
0x04
});
MAGIC_NUMBERS
.
put
(
".zip"
,
new
byte
[]{
0x50
,
0x4B
,
0x03
,
0x04
});
MAGIC_NUMBERS
.
put
(
".rar"
,
new
byte
[]{
0x52
,
0x61
,
0x72
,
0x21
,
0x1A
,
0x07
,
0x00
});
MAGIC_NUMBERS
.
put
(
".7z"
,
new
byte
[]{
0x37
,
0x7A
,
(
byte
)
0xBC
,
(
byte
)
0xAF
,
0x27
,
0x1C
});
MAGIC_NUMBERS
.
put
(
".mp3"
,
new
byte
[]{
0x49
,
0x44
,
0x33
});
MAGIC_NUMBERS
.
put
(
".mp4"
,
new
byte
[]{
0x00
,
0x00
,
0x00
});
}
private
final
AliOssUtil
aliOssUtil
;
@RequestMapping
(
"/controller"
)
public
Object
exec
(
@RequestParam
(
"action"
)
String
action
,
@RequestParam
(
value
=
"file"
,
required
=
false
)
MultipartFile
file
,
HttpServletRequest
request
)
{
switch
(
action
)
{
case
"config"
:
return
getConfig
();
case
"uploadimage"
:
case
"uploadscrawl"
:
return
uploadImage
(
file
,
request
);
case
"uploadfile"
:
return
uploadFile
(
file
,
request
);
default
:
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
result
.
put
(
"state"
,
"action not found"
);
return
result
;
}
}
private
Map
<
String
,
Object
>
getConfig
()
{
Map
<
String
,
Object
>
config
=
new
HashMap
<>();
config
.
put
(
"imageActionName"
,
"uploadimage"
);
config
.
put
(
"imageFieldName"
,
"file"
);
config
.
put
(
"imageMaxSize"
,
IMAGE_MAX_SIZE
);
config
.
put
(
"imageAllowFiles"
,
IMAGE_ALLOWED
);
config
.
put
(
"imageCompressEnable"
,
true
);
config
.
put
(
"imageCompressBorder"
,
1600
);
config
.
put
(
"imageInsertAlign"
,
"none"
);
config
.
put
(
"imageUrlPrefix"
,
""
);
config
.
put
(
"imagePathFormat"
,
""
);
config
.
put
(
"scrawlActionName"
,
"uploadscrawl"
);
config
.
put
(
"scrawlFieldName"
,
"file"
);
config
.
put
(
"scrawlMaxSize"
,
2097152
);
config
.
put
(
"scrawlUrlPrefix"
,
""
);
config
.
put
(
"scrawlInsertAlign"
,
"none"
);
config
.
put
(
"fileActionName"
,
"uploadfile"
);
config
.
put
(
"fileFieldName"
,
"file"
);
config
.
put
(
"fileMaxSize"
,
FILE_MAX_SIZE
);
config
.
put
(
"fileAllowFiles"
,
FILE_ALLOWED
);
config
.
put
(
"fileUrlPrefix"
,
""
);
config
.
put
(
"filePathFormat"
,
""
);
return
config
;
}
private
Map
<
String
,
Object
>
uploadImage
(
MultipartFile
file
,
HttpServletRequest
request
)
{
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
if
(
file
==
null
||
file
.
isEmpty
())
{
result
.
put
(
"state"
,
"文件为空"
);
return
result
;
}
if
(
file
.
getSize
()
>
IMAGE_MAX_SIZE
)
{
result
.
put
(
"state"
,
"文件大小超过限制(10MB)"
);
return
result
;
}
try
{
String
originalFilename
=
file
.
getOriginalFilename
();
if
(
originalFilename
==
null
||
!
originalFilename
.
contains
(
"."
))
{
result
.
put
(
"state"
,
"文件名无效"
);
return
result
;
}
String
extension
=
originalFilename
.
substring
(
originalFilename
.
lastIndexOf
(
"."
)).
toLowerCase
();
if
(!
IMAGE_ALLOWED
.
contains
(
extension
))
{
result
.
put
(
"state"
,
"不允许的文件类型"
);
return
result
;
}
byte
[]
fileBytes
=
file
.
getBytes
();
if
(!
checkMagicNumber
(
fileBytes
,
extension
))
{
result
.
put
(
"state"
,
"文件内容与扩展名不符"
);
return
result
;
}
String
objectName
=
"gk/ueditor/"
+
UUID
.
randomUUID
()
+
extension
;
String
filePath
=
aliOssUtil
.
upload
(
fileBytes
,
objectName
);
result
.
put
(
"state"
,
"SUCCESS"
);
result
.
put
(
"url"
,
filePath
);
result
.
put
(
"title"
,
originalFilename
);
result
.
put
(
"original"
,
originalFilename
);
}
catch
(
IOException
e
)
{
log
.
error
(
"UEditor图片上传失败"
,
e
);
result
.
put
(
"state"
,
"上传失败"
);
}
return
result
;
}
private
Map
<
String
,
Object
>
uploadFile
(
MultipartFile
file
,
HttpServletRequest
request
)
{
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
if
(
file
==
null
||
file
.
isEmpty
())
{
result
.
put
(
"state"
,
"文件为空"
);
return
result
;
}
if
(
file
.
getSize
()
>
FILE_MAX_SIZE
)
{
result
.
put
(
"state"
,
"文件大小超过限制(50MB)"
);
return
result
;
}
try
{
String
originalFilename
=
file
.
getOriginalFilename
();
if
(
originalFilename
==
null
||
!
originalFilename
.
contains
(
"."
))
{
result
.
put
(
"state"
,
"文件名无效"
);
return
result
;
}
String
extension
=
originalFilename
.
substring
(
originalFilename
.
lastIndexOf
(
"."
)).
toLowerCase
();
if
(!
FILE_ALLOWED
.
contains
(
extension
))
{
result
.
put
(
"state"
,
"不允许的文件类型"
);
return
result
;
}
byte
[]
fileBytes
=
file
.
getBytes
();
if
(
MAGIC_NUMBERS
.
containsKey
(
extension
)
&&
!
checkMagicNumber
(
fileBytes
,
extension
))
{
result
.
put
(
"state"
,
"文件内容与扩展名不符"
);
return
result
;
}
String
objectName
=
"gk/ueditor/"
+
UUID
.
randomUUID
()
+
extension
;
String
filePath
=
aliOssUtil
.
upload
(
fileBytes
,
objectName
);
result
.
put
(
"state"
,
"SUCCESS"
);
result
.
put
(
"url"
,
filePath
);
result
.
put
(
"title"
,
originalFilename
);
result
.
put
(
"original"
,
originalFilename
);
}
catch
(
IOException
e
)
{
log
.
error
(
"UEditor文件上传失败"
,
e
);
result
.
put
(
"state"
,
"上传失败"
);
}
return
result
;
}
private
boolean
checkMagicNumber
(
byte
[]
fileBytes
,
String
extension
)
{
byte
[]
expected
=
MAGIC_NUMBERS
.
get
(
extension
);
if
(
expected
==
null
)
{
return
true
;
}
if
(
fileBytes
.
length
<
expected
.
length
)
{
return
false
;
}
for
(
int
i
=
0
;
i
<
expected
.
length
;
i
++)
{
if
(
fileBytes
[
i
]
!=
expected
[
i
])
{
return
false
;
}
}
return
true
;
}
}
src/main/resources/application-dev.properties
View file @
fe933bd5
...
...
@@ -60,7 +60,7 @@ geexek.cmpt.url=https://timerbackend.geexek.com/
geexek.shamus.url
=
http://shamus.geexek.com/
timer.url
=
http://timer.geexek.com/
server.url
=
http://
zs.geexek.com
/
server.url
=
http://
localhost:9090
/
server.url.https
=
http://localhost:9090/
###redis
spring.redis.port
=
6379
...
...
@@ -104,17 +104,25 @@ spring.cloud.sentinel.skip-keys=cmptId
spring.cloud.sentinel.exclude-urls
=
/static/**,**.css,**.js
## nacos ��ַ
spring.cloud.sentinel.datasource.ds.nacos.server-addr
=
192.168.214.231:9848,192.168.214.232:9848,192.168.214.230:9848
#
spring.cloud.sentinel.datasource.ds.nacos.server-addr=192.168.214.231:9848,192.168.214.232:9848,192.168.214.230:9848
spring.cloud.sentinel.datasource.ds.nacos.dataId
=
micro-gksite-sentinel
spring.cloud.sentinel.datasource.ds.nacos.data-type
=
json
spring.cloud.sentinel.datasource.ds.nacos.groupId
=
production
spring.cloud.sentinel.enabled
=
false
# 禁用 Nacos 服务注册与发现
spring.cloud.nacos.discovery.enabled
=
false
# 禁用 Nacos 配置管理
spring.cloud.nacos.config.enabled
=
false
# 如果使用了 Sentinel 数据源从 Nacos 读取,禁用该数据源
spring.cloud.sentinel.datasource.ds.nacos.server-addr
=
#spring.cloud.sentinel.datasource.ds1.nacos.namespace=fad8a39-a3e7-49a1-ae96-0f7aaf39136b
#
##
��������
##
spring.cloud.sentinel.datasource.ds.nacos.rule-type
=
flow
base.url
=
http://localhost:
8080
base.url
=
http://localhost:
9090/
lock.url
=
https://openapi.qiyuesuo.cn
lock.accessKey
=
trRQR9ewQX
...
...
src/main/webapp/WEB-INF/views/auth_no.jsp
View file @
fe933bd5
...
...
@@ -7,21 +7,49 @@
<head>
<meta
charset=
"UTF-8"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1,user-scalable=no"
>
<meta
http-equiv=
"Content-Security-Policy"
content=
"upgrade-insecure-requests"
>
<meta
name=
"keywords"
content=
""
>
<title>
无权限访问
</title>
<style>
.auth
{
width
:
100%
;
position
:
absolute
;
bottom
:
0px
;
left
:
0px
;
body
{
margin
:
0
;
font-family
:
-apple-system
,
BlinkMacSystemFont
,
"Segoe UI"
,
Roboto
,
sans-serif
;
background
:
#f5f5f5
;
}
.container
{
max-width
:
500px
;
margin
:
120px
auto
;
text-align
:
center
;
background
:
#fff
;
border-radius
:
8px
;
padding
:
60px
40px
;
box-shadow
:
0
2px
12px
rgba
(
0
,
0
,
0
,
0.08
);
}
.icon
{
font-size
:
60px
;
margin-bottom
:
20px
;
}
.title
{
font-size
:
22px
;
color
:
#333
;
margin-bottom
:
16px
;
}
.desc
{
font-size
:
15px
;
color
:
#666
;
line-height
:
1.8
;
}
.link
{
color
:
#ce3939
;
text-decoration
:
none
;
}
</style>
</head>
<body
style=
"position: relative;margin: 0px"
>
<div
style=
"height: 500px;width: 100%;text-align: center"
>
<span
style=
"display: inline;height: 200px;margin-top: 150px;line-height: 200px;
text-align: center;font-size: #333;font-size: 30px"
>
未注册为组委会用户
</span>
<body>
<div
class=
"container"
>
<div
class=
"icon"
>
🔒
</div>
<div
class=
"title"
>
暂无访问权限
</div>
<div
class=
"desc"
>
请从
<a
class=
"link"
href=
"http://timer.geexek.com"
target=
"_blank"
>
计时后台
</a>
或
<a
class=
"link"
href=
"http://www.geexek.com"
target=
"_blank"
>
报名后台
</a>
跳转进入本系统。
</div>
</div>
</body>
</html>
\ No newline at end of file
src/main/webapp/WEB-INF/views/cmpt/gpsDeposit.jsp
View file @
fe933bd5
...
...
@@ -50,10 +50,12 @@
<script
src=
"${ctxStatic}/newdermon/vendor/jquery/jquery.min.js"
></script>
<!-- 引入富文本 -->
<script>
window
.
UEDITOR_HOME_URL
=
"https://enroll.geexek.com/js/ueditor/"
;
</script>
<script
src=
"https://enroll.geexek.com/js/ueditor/ueditor.config-zs.js?v=
<%=
System
.
currentTimeMillis
()
%>
"
></script>
<script
src=
"https://enroll.geexek.com/js/ueditor/ueditor.all.js?v=
<%=
System
.
currentTimeMillis
()
%>
"
></script>
<script>
window
.
UEDITOR_CONFIG
.
serverUrl
=
"/ueditor/controller"
;
</script>
<style>
#app
{
padding
:
0
20px
20px
20px
;
...
...
src/main/webapp/WEB-INF/views/cmpt/list.jsp
View file @
fe933bd5
This diff is collapsed.
Click to expand it.
src/main/webapp/WEB-INF/views/cmpt/news.jsp
View file @
fe933bd5
...
...
@@ -38,10 +38,12 @@
<script
type=
"text/javascript"
src=
"${ctxStatic}/leaflet/label.js"
></script>
<script
type=
"text/javascript"
charset=
"utf-8"
src=
"${ctxStatic}/layer/layer.js"
></script>
<link
rel=
"stylesheet"
href=
"${ctxStatic}/layer/skin/layer.css"
>
<script>
window
.
UEDITOR_HOME_URL
=
"https://enroll.geexek.com/js/ueditor/"
;
</script>
<script
src=
"https://enroll.geexek.com/js/ueditor/ueditor.config-zs.js?v=
<%=
System
.
currentTimeMillis
()
%>
"
></script>
<script
src=
"https://enroll.geexek.com/js/ueditor/ueditor.all.js?v=
<%=
System
.
currentTimeMillis
()
%>
"
></script>
<script>
window
.
UEDITOR_CONFIG
.
serverUrl
=
"/ueditor/controller"
;
</script>
<script
src=
"${ctxStatic}/newdermon/vendor/popper.js/umd/popper.min.js"
></script>
<script
src=
"${ctxStatic}/js/qikoo.js"
></script>
<style>
...
...
src/main/webapp/WEB-INF/views/cmpt/outter-link.jsp
View file @
fe933bd5
...
...
@@ -31,10 +31,12 @@
<link
rel=
"stylesheet"
href=
"${ctxStatic}/cmpt/setting.css?v=
<%=
System
.
currentTimeMillis
()
%>
"
>
<link
rel=
"stylesheet"
href=
"${ctxStatic}/cmpt/road.css?v=
<%=
System
.
currentTimeMillis
()
%>
"
/>
<link
rel=
"stylesheet"
href=
"${ctxStatic}/cmpt/road-new.css?v=
<%=
System
.
currentTimeMillis
()
%>
"
/>
<script>
window
.
UEDITOR_HOME_URL
=
"https://enroll.geexek.com/js/ueditor/"
;
</script>
<script
src=
"https://enroll.geexek.com/js/ueditor/ueditor.config-zs.js?v=
<%=
System
.
currentTimeMillis
()
%>
"
></script>
<script
src=
"https://enroll.geexek.com/js/ueditor/ueditor.all.js?v=
<%=
System
.
currentTimeMillis
()
%>
"
></script>
<script>
window
.
UEDITOR_CONFIG
.
serverUrl
=
"/ueditor/controller"
;
</script>
<script
src=
"${ctxStatic}/My97DatePicker/WdatePicker.js"
type=
"text/javascript"
></script>
<script
src=
"${ctxStatic}/newdermon/vendor/jquery/jquery.min.js"
></script>
<script
type=
"text/javascript"
charset=
"utf-8"
src=
"${ctxStatic}/layer/layer.js"
></script>
...
...
src/main/webapp/WEB-INF/views/cmpt/service.jsp
View file @
fe933bd5
...
...
@@ -38,10 +38,12 @@
<script
type=
"text/javascript"
charset=
"utf-8"
src=
"${ctxStatic}/layer/layer.js"
></script>
<link
rel=
"stylesheet"
href=
"${ctxStatic}/layer/skin/layer.css"
>
<script>
window
.
UEDITOR_HOME_URL
=
"https://enroll.geexek.com/js/ueditor/"
;
</script>
<script
src=
"https://enroll.geexek.com/js/ueditor/ueditor.config-zs.js?v=
<%=
System
.
currentTimeMillis
()
%>
"
></script>
<script
src=
"https://enroll.geexek.com/js/ueditor/ueditor.all.js?v=
<%=
System
.
currentTimeMillis
()
%>
"
></script>
<script>
window
.
UEDITOR_CONFIG
.
serverUrl
=
"/ueditor/controller"
;
</script>
<link
rel=
"stylesheet"
href=
"/static/cmpt/score.css?
<%=
System
.
currentTimeMillis
()
%>
"
>
<style>
...
...
src/main/webapp/WEB-INF/views/cmpt/swiper.jsp
View file @
fe933bd5
...
...
@@ -41,10 +41,12 @@
<script
type=
"text/javascript"
charset=
"utf-8"
src=
"${ctxStatic}/layer/layer.js"
></script>
<link
rel=
"stylesheet"
href=
"${ctxStatic}/layer/skin/layer.css"
>
<script>
window
.
UEDITOR_HOME_URL
=
"https://enroll.geexek.com/js/ueditor/"
;
</script>
<script
src=
"https://enroll.geexek.com/js/ueditor/ueditor.config-zs.js?v=
<%=
System
.
currentTimeMillis
()
%>
"
></script>
<script
src=
"https://enroll.geexek.com/js/ueditor/ueditor.all.js?v=
<%=
System
.
currentTimeMillis
()
%>
"
></script>
<script>
window
.
UEDITOR_CONFIG
.
serverUrl
=
"/ueditor/controller"
;
</script>
<link
rel=
"stylesheet"
href=
"/static/cmpt/score.css?
<%=
System
.
currentTimeMillis
()
%>
"
>
<style>
...
...
src/main/webapp/WEB-INF/views/common/header.jsp
View file @
fe933bd5
...
...
@@ -22,7 +22,7 @@
<!-- Navbar Brand -->
<a
class=
"navbar-brand d-none d-sm-inline-block"
>
<div
class=
"brand-text d-none d-lg-inline-block"
><span
class=
"logosaike"
></span><strong
class=
"logonote"
>
赛事管理平台
</strong></div>
<div
class=
"brand-text d-none d-sm-inline-block d-lg-none"
><strong>
BD
</strong></div>
<div
class=
"brand-text d-none d-sm-inline-block d-lg-none"
><strong>
赛客现场助手
</strong></div>
</a>
<!-- Toggle Button-->
<a
id=
"toggle-btn"
href=
"#"
class=
"menu-btn active"
><span></span><span></span><span></span></a>
...
...
src/main/webapp/WEB-INF/views/common/menu.jsp
View file @
fe933bd5
...
...
@@ -181,37 +181,7 @@
<input
type=
"hidden"
value=
"${timestamp}"
id=
"timestamp"
>
<input
type=
"hidden"
value=
"${sign}"
id=
"sign"
>
<nav
class=
"side-navbar"
>
<c:choose>
<c:when
test=
"
${
yfb
}
"
>
<li
id=
"base"
style=
"display: none;"
></li>
<ul
class=
"yfb"
style=
"padding: 20px 0px;height: 460px;"
>
<li
class=
"data menu-sub-item"
>
<a
href=
"/easy/data/${cmpt.cmptId}?uId=${uId}&cId=${cId}×tamp=${timestamp}&sign=${sign}"
>
<span
class=
"left-arrow"
></span>
<span
class=
"menu-txt"
>
数据统计
</span>
</a>
</li>
<li
class=
"review menu-sub-item"
>
<a
href=
"/easy/review/${cmpt.cmptId}?uId=${uId}&cId=${cId}×tamp=${timestamp}&sign=${sign}"
>
<span
class=
"left-arrow"
></span>
<span
class=
"menu-txt"
>
成绩管理
</span>
</a>
</li>
<li
class=
"road menu-sub-item"
>
<a
href=
"/easy/road/${cmpt.cmptId}?uId=${uId}&cId=${cId}×tamp=${timestamp}&sign=${sign}"
>
<span
class=
"left-arrow"
></span>
<span
class=
"menu-txt"
>
路线导入
</span>
</a>
</li>
<li
class=
"menu-sub-item"
>
<a
href=
"/easy/me"
></span><span
class=
"menu-txt"
>
返回赛事
</span></a>
</li>
</ul>
</c:when>
<c:otherwise>
<c:if
test=
"
${
not
empty
sessionScope
.
user
}
"
>
<ul
class=
"list-unstyled"
style=
"margin: 0px;height: 100%;"
>
<li
class=
"main menu-item"
>
<a
href=
"/gk/cmpt/${cmpt.cmptId}?uId=${uId}&cId=${cId}×tamp=${timestamp}&sign=${sign}"
>
...
...
@@ -486,8 +456,7 @@
</li>
</ul>
</ul>
</c:otherwise>
</c:choose>
</c:if>
</nav>
<script>
...
...
src/main/webapp/WEB-INF/views/login.jsp
View file @
fe933bd5
This diff is collapsed.
Click to expand it.
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