Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
软件工程实践2022年春W班
Followers
Project_Team4
提交
a0b71c98
P
Project_Team4
项目概览
软件工程实践2022年春W班
/
Followers
/
Project_Team4
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Project_Team4
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
a0b71c98
编写于
4月 29, 2022
作者:
IIIllI
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
拦截器
上级
01e91fcc
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
86 addition
and
10 deletion
+86
-10
backend/src/main/java/com/nav/common/api/CommonResult.java
backend/src/main/java/com/nav/common/api/CommonResult.java
+8
-0
backend/src/main/java/com/nav/common/api/ResultCode.java
backend/src/main/java/com/nav/common/api/ResultCode.java
+2
-1
backend/src/main/java/com/nav/common/config/WebMvcConfig.java
...end/src/main/java/com/nav/common/config/WebMvcConfig.java
+36
-0
backend/src/main/java/com/nav/common/log/LogAspect.java
backend/src/main/java/com/nav/common/log/LogAspect.java
+1
-0
backend/src/main/java/com/nav/common/security/LoginInterceptor.java
...c/main/java/com/nav/common/security/LoginInterceptor.java
+32
-1
backend/src/main/java/com/nav/utils/JwtUtils.java
backend/src/main/java/com/nav/utils/JwtUtils.java
+7
-8
未找到文件。
backend/src/main/java/com/nav/common/api/CommonResult.java
浏览文件 @
a0b71c98
...
...
@@ -98,6 +98,13 @@ public class CommonResult<T> {
/**
* 未登录返回结果
*/
public
static
<
T
>
CommonResult
<
T
>
nologgedin
(
T
data
)
{
return
new
CommonResult
<
T
>(
ResultCode
.
NOT_LOGGIN_IN
.
getCode
(),
ResultCode
.
NOT_LOGGIN_IN
.
getMessage
(),
data
);
}
/**
* token过期返回结果
*/
public
static
<
T
>
CommonResult
<
T
>
unauthorized
(
T
data
)
{
return
new
CommonResult
<
T
>(
ResultCode
.
UNAUTHORIZED
.
getCode
(),
ResultCode
.
UNAUTHORIZED
.
getMessage
(),
data
);
}
...
...
@@ -109,6 +116,7 @@ public class CommonResult<T> {
return
new
CommonResult
<
T
>(
ResultCode
.
FORBIDDEN
.
getCode
(),
ResultCode
.
FORBIDDEN
.
getMessage
(),
data
);
}
public
long
getCode
()
{
return
code
;
}
...
...
backend/src/main/java/com/nav/common/api/ResultCode.java
浏览文件 @
a0b71c98
...
...
@@ -10,7 +10,8 @@ public enum ResultCode implements IErrorCode {
SUCCESS
(
200
,
"操作成功"
),
FAILED
(
500
,
"操作失败"
),
VALIDATE_FAILED
(
404
,
"参数检验失败"
),
UNAUTHORIZED
(
401
,
"暂未登录或token已经过期"
),
UNAUTHORIZED
(
401
,
"token已经过期"
),
NOT_LOGGIN_IN
(
401
,
"暂未登录"
),
FORBIDDEN
(
403
,
"没有相关权限"
);
private
long
code
;
...
...
backend/src/main/java/com/nav/common/config/WebMvcConfig.java
0 → 100644
浏览文件 @
a0b71c98
package
com.nav.common.config
;
import
com.nav.common.security.LoginInterceptor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.servlet.config.annotation.CorsRegistry
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
/**
* @ClassName WebMvcConfig
* @Description: mvc配置类
* @Author lyc
* @Date 2022/4/29 21:25
*/
@Configuration
public
class
WebMvcConfig
implements
WebMvcConfigurer
{
@Autowired
private
LoginInterceptor
loginInterceptor
;
@Override
public
void
addCorsMappings
(
CorsRegistry
registry
)
{
registry
.
addMapping
(
"/**"
)
.
allowedOrigins
(
"http://localhost:8087"
)
.
allowedOrigins
(
"http://47.95.151.202:8087"
);
}
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
registry
.
addInterceptor
(
loginInterceptor
)
.
addPathPatterns
(
"/**"
)
.
excludePathPatterns
(
"/login"
)
.
excludePathPatterns
(
"/register"
);
}
}
backend/src/main/java/com/nav/common/log/LogAspect.java
浏览文件 @
a0b71c98
...
...
@@ -8,4 +8,5 @@ package com.nav.common.log;
*/
public
class
LogAspect
{
}
backend/src/main/java/com/nav/common/security/LoginInterceptor.java
浏览文件 @
a0b71c98
package
com.nav.common.security
;
import
com.alibaba.fastjson.JSON
;
import
com.nav.common.api.CommonResult
;
import
com.nav.common.api.ResultCode
;
import
com.nav.utils.JwtUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.method.HandlerMethod
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.Map
;
/**
* @ClassName LoginInterceptor
...
...
@@ -10,5 +21,25 @@ import org.springframework.stereotype.Component;
*/
@Component
public
class
LoginInterceptor
{
public
class
LoginInterceptor
implements
HandlerInterceptor
{
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
throws
Exception
{
if
(!(
handler
instanceof
HandlerMethod
))
{
return
true
;
}
String
token
=
request
.
getHeader
(
"Authorization"
);
if
(
StringUtils
.
isBlank
(
token
))
{
response
.
setContentType
(
"application/json;charset=utf-8"
);
response
.
getWriter
().
print
(
JSON
.
toJSONString
(
CommonResult
.
failed
(
ResultCode
.
NOT_LOGGIN_IN
)));
return
false
;
}
Map
<
String
,
Object
>
tokenMap
=
JwtUtils
.
verifyToken
(
token
);
if
(
tokenMap
.
containsKey
(
"tokenException"
))
{
return
false
;
}
return
true
;
}
}
backend/src/main/java/com/nav/utils/JwtUtils.java
浏览文件 @
a0b71c98
package
com.nav.utils
;
import
io.jsonwebtoken.Jwt
;
import
io.jsonwebtoken.JwtBuilder
;
import
io.jsonwebtoken.Jwts
;
import
io.jsonwebtoken.SignatureAlgorithm
;
import
io.jsonwebtoken.*
;
import
java.util.Date
;
import
java.util.HashMap
;
...
...
@@ -41,16 +38,18 @@ public class JwtUtils {
/**
* 校验token
*
* @param token
* @return
*/
public
static
Map
<
String
,
Object
>
verifyToken
(
String
token
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
try
{
Jwt
parse
=
Jwts
.
parser
().
setSigningKey
(
sign
).
parse
(
token
);
return
(
Map
<
String
,
Object
>)
parse
.
getBody
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
(
);
map
=
(
Map
<
String
,
Object
>)
parse
.
getBody
();
}
catch
(
Jwt
Exception
e
)
{
map
.
put
(
"tokenException"
,
e
.
getMessage
()
);
}
return
null
;
return
map
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录