Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
寒風冷度夜雨
youle-pet-shop
提交
ab9d570f
Y
youle-pet-shop
项目概览
寒風冷度夜雨
/
youle-pet-shop
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
youle-pet-shop
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ab9d570f
编写于
9月 24, 2023
作者:
寒風冷度夜雨
🈴
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
message:宠物商城项目
desc:商品模块 author:王荣力 time:20230919
上级
669cf6d5
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
202 addition
and
37 deletion
+202
-37
src/main/java/cn/youle/pet/shop/controller/PetProductController.java
...va/cn/youle/pet/shop/controller/PetProductController.java
+6
-4
src/main/java/cn/youle/pet/shop/service/IPetProductService.java
...in/java/cn/youle/pet/shop/service/IPetProductService.java
+4
-2
src/main/java/cn/youle/pet/shop/service/impl/PetAdminsServiceImpl.java
.../cn/youle/pet/shop/service/impl/PetAdminsServiceImpl.java
+7
-0
src/main/java/cn/youle/pet/shop/service/impl/PetProductServiceImpl.java
...cn/youle/pet/shop/service/impl/PetProductServiceImpl.java
+34
-19
src/main/java/cn/youle/pet/shop/shiro/JwtFilter.java
src/main/java/cn/youle/pet/shop/shiro/JwtFilter.java
+90
-0
src/main/java/cn/youle/pet/shop/shiro/MyRealm.java
src/main/java/cn/youle/pet/shop/shiro/MyRealm.java
+16
-7
src/main/java/cn/youle/pet/shop/shiro/ShiroConfig.java
src/main/java/cn/youle/pet/shop/shiro/ShiroConfig.java
+10
-1
src/main/java/cn/youle/pet/shop/shiro/auth/ResultVO.java
src/main/java/cn/youle/pet/shop/shiro/auth/ResultVO.java
+28
-0
src/main/java/cn/youle/pet/shop/utils/JWTUtil.java
src/main/java/cn/youle/pet/shop/utils/JWTUtil.java
+1
-0
src/main/resources/application-dev.properties
src/main/resources/application-dev.properties
+1
-4
src/main/resources/application.properties
src/main/resources/application.properties
+5
-0
未找到文件。
src/main/java/cn/youle/pet/shop/controller/PetProductController.java
浏览文件 @
ab9d570f
...
...
@@ -17,6 +17,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
/**
* <p>
* 商品表 前端控制器
...
...
@@ -26,7 +28,7 @@ import org.springframework.web.bind.annotation.RestController;
* @since 2023-09-19
*/
@RestController
@RequestMapping
(
"/api/pet-product
"
)
@RequestMapping
(
value
=
"/api/pet-product"
,
produces
=
"application/json;charset=UTF-8
"
)
public
class
PetProductController
{
@Autowired
...
...
@@ -39,13 +41,13 @@ public class PetProductController {
* @return 商品id
*/
@PostMapping
(
"/create"
)
public
JsonResponse
create
(
@RequestBody
ProductSaveDTO
productSaveDTO
)
{
public
JsonResponse
create
(
@RequestBody
ProductSaveDTO
productSaveDTO
,
HttpServletRequest
request
)
{
try
{
String
id
=
""
;
if
(
productSaveDTO
.
getProductId
()
==
null
)
{
id
=
petProductService
.
create
(
productSaveDTO
);
id
=
petProductService
.
create
(
productSaveDTO
,
request
);
}
else
{
id
=
petProductService
.
update
(
productSaveDTO
);
id
=
petProductService
.
update
(
productSaveDTO
,
request
);
}
return
JsonResponse
.
ok
(
id
);
}
catch
(
Exception
e
)
{
...
...
src/main/java/cn/youle/pet/shop/service/IPetProductService.java
浏览文件 @
ab9d570f
...
...
@@ -8,6 +8,8 @@ import cn.youle.pet.shop.pojo.vo.product.ProductDetailVO;
import
cn.youle.pet.shop.pojo.vo.product.ProductListVO
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
javax.servlet.http.HttpServletRequest
;
/**
* <p>
* 商品表 服务类
...
...
@@ -24,7 +26,7 @@ public interface IPetProductService extends IService<PetProduct> {
* @param productSaveDTO 前端输入
* @return 商品id
*/
String
create
(
ProductSaveDTO
productSaveDTO
);
String
create
(
ProductSaveDTO
productSaveDTO
,
HttpServletRequest
request
);
/**
* 修改商品
...
...
@@ -32,7 +34,7 @@ public interface IPetProductService extends IService<PetProduct> {
* @param productSaveDTO 前端输入
* @return 商品id
*/
String
update
(
ProductSaveDTO
productSaveDTO
);
String
update
(
ProductSaveDTO
productSaveDTO
,
HttpServletRequest
request
);
/**
* 查询商品详情
...
...
src/main/java/cn/youle/pet/shop/service/impl/PetAdminsServiceImpl.java
浏览文件 @
ab9d570f
...
...
@@ -19,6 +19,9 @@ import com.alibaba.fastjson.JSON;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.SecurityUtils
;
import
org.apache.shiro.authc.AuthenticationToken
;
import
org.apache.shiro.subject.Subject
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
...
...
@@ -139,6 +142,10 @@ public class PetAdminsServiceImpl extends ServiceImpl<PetAdminsMapper, PetAdmins
BeanUtils
.
copyProperties
(
tokenVO
,
loginResVO
);
loginResVO
.
setJwt
(
token
);
// Subject subject = SecurityUtils.getSubject();
// AuthenticationToken authenticationToken = new JWTToken(token);
// subject.login(authenticationToken);
log
.
info
(
"登录成功,返回前端:"
+
JSON
.
toJSONString
(
loginResVO
));
return
loginResVO
;
}
...
...
src/main/java/cn/youle/pet/shop/service/impl/PetProductServiceImpl.java
浏览文件 @
ab9d570f
...
...
@@ -14,6 +14,7 @@ import cn.youle.pet.shop.pojo.vo.product.ProductListVO;
import
cn.youle.pet.shop.service.IPetProductService
;
import
cn.youle.pet.shop.shiro.auth.TokenVO
;
import
cn.youle.pet.shop.utils.GetUserInfoUtils
;
import
cn.youle.pet.shop.utils.JWTUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
...
...
@@ -25,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -52,7 +54,7 @@ public class PetProductServiceImpl extends ServiceImpl<PetProductMapper, PetProd
* @return 商品id
*/
@Override
public
String
create
(
ProductSaveDTO
productSaveDTO
)
{
public
String
create
(
ProductSaveDTO
productSaveDTO
,
HttpServletRequest
request
)
{
log
.
info
(
"=========================开始添加商品获取前端输入:{}========================="
,
JSON
.
toJSONString
(
productSaveDTO
));
if
(
productSaveDTO
==
null
)
{
log
.
error
(
"@@@@@@@@@@@@@@@@@@@@@前端输入为空@@@@@@@@@@@@@@@@@@@@@"
);
...
...
@@ -61,8 +63,8 @@ public class PetProductServiceImpl extends ServiceImpl<PetProductMapper, PetProd
long
snowflakeNextId
=
IdUtil
.
getSnowflakeNextId
();
PetProduct
petProduct
=
new
PetProduct
();
BeanUtils
.
copyProperties
(
productSaveDTO
,
petProduct
);
TokenVO
userInfo
=
getUserInfo
();
BeanUtils
.
copyProperties
(
productSaveDTO
,
petProduct
);
TokenVO
userInfo
=
getUserInfo
(
request
);
petProduct
.
setId
(
snowflakeNextId
);
petProduct
.
setCreatedBy
(
userInfo
.
getName
());
petProduct
.
setCreatedTime
(
LocalDateTimeUtil
.
now
());
...
...
@@ -84,11 +86,11 @@ public class PetProductServiceImpl extends ServiceImpl<PetProductMapper, PetProd
* @return 商品id
*/
@Override
public
String
update
(
ProductSaveDTO
productSaveDTO
)
{
public
String
update
(
ProductSaveDTO
productSaveDTO
,
HttpServletRequest
request
)
{
log
.
info
(
"=========================开始更新商品获取前端输入:{}========================="
,
JSON
.
toJSONString
(
productSaveDTO
));
PetProduct
petProduct
=
checkProduct
(
productSaveDTO
.
getProductId
());
BeanUtils
.
copyProperties
(
productSaveDTO
,
petProduct
);
TokenVO
userInfo
=
getUserInfo
();
BeanUtils
.
copyProperties
(
productSaveDTO
,
petProduct
);
TokenVO
userInfo
=
getUserInfo
(
request
);
petProduct
.
setUpdatedBy
(
userInfo
.
getName
());
petProduct
.
setUpdatedTime
(
LocalDateTimeUtil
.
now
());
...
...
@@ -99,13 +101,13 @@ public class PetProductServiceImpl extends ServiceImpl<PetProductMapper, PetProd
return
petProduct
.
getId
()
+
""
;
}
private
PetProduct
checkProduct
(
Long
id
){
if
(
id
==
null
)
{
private
PetProduct
checkProduct
(
Long
id
)
{
if
(
id
==
null
)
{
log
.
error
(
"@@@@@@@@@@@@@@@@@@@@@id为空@@@@@@@@@@@@@@@@@@@@@"
);
throw
new
PetShopException
(
"没有对应的商品编码"
);
}
PetProduct
petProduct
=
petProductMapper
.
selectById
(
id
);
if
(
petProduct
==
null
)
{
if
(
petProduct
==
null
)
{
log
.
error
(
"@@@@@@@@@@@@@@@@@@@@@没有对应的商品@@@@@@@@@@@@@@@@@@@@@"
);
throw
new
PetShopException
(
"没有对应的商品"
);
}
...
...
@@ -123,9 +125,9 @@ public class PetProductServiceImpl extends ServiceImpl<PetProductMapper, PetProd
log
.
info
(
"=========================开始查询商品详情获取前端输入:{}========================="
,
JSON
.
toJSONString
(
productDetailDTO
));
PetProduct
petProduct
=
checkProduct
(
productDetailDTO
.
getId
());
ProductDetailVO
productDetailVO
=
new
ProductDetailVO
();
BeanUtils
.
copyProperties
(
petProduct
,
productDetailVO
);
BeanUtils
.
copyProperties
(
petProduct
,
productDetailVO
);
log
.
info
(
"=========================查询商品详情成功,即将返回:{}========================="
,
JSON
.
toJSONString
(
productDetailVO
));
log
.
info
(
"=========================查询商品详情成功,即将返回:{}========================="
,
JSON
.
toJSONString
(
productDetailVO
));
return
productDetailVO
;
}
...
...
@@ -141,7 +143,7 @@ public class PetProductServiceImpl extends ServiceImpl<PetProductMapper, PetProd
log
.
info
(
"=========================开始查询商品列表获取前端输入:{}========================="
,
JSON
.
toJSONString
(
productListDTO
));
ProductListVO
productListVO
=
new
ProductListVO
();
List
<
PetProduct
>
petProducts
=
petProductMapper
.
selectByListDto
(
productListDTO
);
if
(
CollectionUtils
.
isEmpty
(
petProducts
))
{
if
(
CollectionUtils
.
isEmpty
(
petProducts
))
{
log
.
error
(
"@@@@@@@@@@@@@@@@@@@@@没有对应的数据@@@@@@@@@@@@@@@@@@@@@"
);
throw
new
PetShopException
(
"没有对应的数据"
);
}
...
...
@@ -151,7 +153,7 @@ public class PetProductServiceImpl extends ServiceImpl<PetProductMapper, PetProd
List
<
ProductDetailVO
>
productDetailVOList
=
new
ArrayList
<>();
for
(
PetProduct
petProduct
:
collect
)
{
ProductDetailVO
productDetailVO
=
new
ProductDetailVO
();
BeanUtils
.
copyProperties
(
petProduct
,
productDetailVO
);
BeanUtils
.
copyProperties
(
petProduct
,
productDetailVO
);
productDetailVOList
.
add
(
productDetailVO
);
}
...
...
@@ -159,7 +161,7 @@ public class PetProductServiceImpl extends ServiceImpl<PetProductMapper, PetProd
productListVO
.
setProductDetailVOList
(
productDetailVOList
);
productListVO
.
setCurrentPage
(
productListDTO
.
getCurrentPage
());
productListVO
.
setPageSize
(
productListDTO
.
getPageSize
());
log
.
info
(
"=========================查询商品列表成功,即将返回:{}========================="
,
JSON
.
toJSONString
(
productListDTO
));
log
.
info
(
"=========================查询商品列表成功,即将返回:{}========================="
,
JSON
.
toJSONString
(
productListDTO
));
return
productListVO
;
}
...
...
@@ -172,7 +174,7 @@ public class PetProductServiceImpl extends ServiceImpl<PetProductMapper, PetProd
*/
@Override
public
int
delete
(
ProductDetailDTO
productDetailDTO
)
{
log
.
info
(
"===============准备开始删除获取前端输入:{}==============="
,
JSON
.
toJSONString
(
productDetailDTO
));
log
.
info
(
"===============准备开始删除获取前端输入:{}==============="
,
JSON
.
toJSONString
(
productDetailDTO
));
PetProduct
petProduct
=
checkProduct
(
productDetailDTO
.
getId
());
TokenVO
userInfo
=
GetUserInfoUtils
.
getUserInfo
();
...
...
@@ -197,10 +199,23 @@ public class PetProductServiceImpl extends ServiceImpl<PetProductMapper, PetProd
log
.
info
(
"=========================开始更新商品状态获取前端输入:{}========================="
,
JSON
.
toJSONString
(
productDetailDTO
));
}
private
TokenVO
getUserInfo
(){
Subject
subject
=
SecurityUtils
.
getSubject
();
TokenVO
tokenVO
=
(
TokenVO
)
subject
.
getPrincipal
();
if
(
tokenVO
==
null
){
/**
* 发送验证码
*
* @return
*/
private
String
sendMessage
()
{
return
null
;
}
private
TokenVO
getUserInfo
(
HttpServletRequest
request
)
{
String
authorization
=
request
.
getHeader
(
"Authorization"
);
TokenVO
tokenVO
=
JWTUtil
.
parseToken
(
authorization
);
// Subject subject = SecurityUtils.getSubject();
// log.info("获取登录信息:{}",subject);
// log.info("获取登录后信息:{}",subject.getPrincipal());
// TokenVO tokenVO = (TokenVO) subject.getPrincipal();
if
(
tokenVO
==
null
)
{
throw
new
PetShopException
(
"请先登录"
);
}
return
tokenVO
;
...
...
src/main/java/cn/youle/pet/shop/shiro/JwtFilter.java
0 → 100644
浏览文件 @
ab9d570f
package
cn.youle.pet.shop.shiro
;
import
cn.youle.pet.shop.shiro.auth.ResultVO
;
import
cn.youle.pet.shop.utils.JWTToken
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.serializer.SerializerFeature
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.authc.AuthenticationException
;
import
org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
javax.servlet.Filter
;
import
javax.servlet.ServletRequest
;
import
javax.servlet.ServletResponse
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
@Slf4j
public
class
JwtFilter
extends
BasicHttpAuthenticationFilter
implements
Filter
{
/**
* 执行登录
* @param request
* @param response
* @return
* @throws Exception
*/
@Override
protected
boolean
executeLogin
(
ServletRequest
request
,
ServletResponse
response
)
throws
Exception
{
HttpServletRequest
httpServletRequest
=
(
HttpServletRequest
)
request
;
String
token
=
httpServletRequest
.
getHeader
(
"Authorization"
);
JWTToken
jwtToken
=
new
JWTToken
(
token
);
// 提交给realm进行登入,如果错误他会抛出异常并被捕获
try
{
getSubject
(
request
,
response
).
login
(
jwtToken
);
// 如果没有抛出异常则代表登入成功,返回true
return
true
;
}
catch
(
AuthenticationException
e
)
{
//SerializerFeature.WriteMapNullValue为了null属性也输出json的键值对
HttpServletResponse
res
=
(
HttpServletResponse
)
response
;
Object
o
=
JSONObject
.
toJSONString
(
new
ResultVO
().
setMsg
(
"无访问权限,原因是:"
+
e
.
getMessage
()).
setCode
(
401
),
SerializerFeature
.
WriteMapNullValue
);
res
.
setStatus
(
401
);
res
.
setCharacterEncoding
(
"utf-8"
);
res
.
getWriter
().
print
(
o
);
return
false
;
}
}
/**
* 执行登录认证
*
* @param request
* @param response
* @param mappedValue
* @return
*/
@Override
protected
boolean
isAccessAllowed
(
ServletRequest
request
,
ServletResponse
response
,
Object
mappedValue
)
{
try
{
return
executeLogin
(
request
,
response
);
}
catch
(
Exception
e
)
{
log
.
error
(
"JwtFilter过滤验证失败!"
);
return
false
;
}
}
/**
* 对跨域提供支持
* @param request
* @param response
* @return
* @throws Exception
*/
@Override
protected
boolean
preHandle
(
ServletRequest
request
,
ServletResponse
response
)
throws
Exception
{
HttpServletRequest
httpServletRequest
=
(
HttpServletRequest
)
request
;
HttpServletResponse
httpServletResponse
=
(
HttpServletResponse
)
response
;
httpServletResponse
.
setHeader
(
"Access-control-Allow-Origin"
,
httpServletRequest
.
getHeader
(
"Origin"
));
httpServletResponse
.
setHeader
(
"Access-Control-Allow-Methods"
,
"GET,POST,OPTIONS,PUT,DELETE"
);
httpServletResponse
.
setHeader
(
"Access-Control-Allow-Headers"
,
httpServletRequest
.
getHeader
(
"Access-Control-Request-Headers"
));
// 跨域时会首先发送一个option请求,这里我们给option请求直接返回正常状态
if
(
httpServletRequest
.
getMethod
().
equals
(
RequestMethod
.
OPTIONS
.
name
()))
{
httpServletResponse
.
setStatus
(
HttpStatus
.
OK
.
value
());
return
false
;
}
return
super
.
preHandle
(
request
,
response
);
}
}
src/main/java/cn/youle/pet/shop/shiro/MyRealm.java
浏览文件 @
ab9d570f
...
...
@@ -4,6 +4,7 @@ import cn.youle.pet.shop.exception.PetShopException;
import
cn.youle.pet.shop.mapper.*
;
import
cn.youle.pet.shop.pojo.entity.*
;
import
cn.youle.pet.shop.shiro.auth.TokenVO
;
import
cn.youle.pet.shop.utils.JWTToken
;
import
cn.youle.pet.shop.utils.JWTUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -50,6 +51,11 @@ public class MyRealm extends AuthorizingRealm {
@Autowired
private
PetRolePermissionMapper
petRolePermissionMapper
;
@Override
public
boolean
supports
(
AuthenticationToken
token
)
{
return
token
instanceof
JWTToken
;
}
/**
* 授权
*
...
...
@@ -116,8 +122,8 @@ public class MyRealm extends AuthorizingRealm {
SimpleAuthorizationInfo
info
=
new
SimpleAuthorizationInfo
();
log
.
info
(
"==================授权成功=================="
);
info
.
addStringPermissions
(
permissions
);
info
.
addRoles
(
roles
);
//
info.addStringPermissions(permissions);
//
info.addRoles(roles);
return
info
;
}
...
...
@@ -130,24 +136,27 @@ public class MyRealm extends AuthorizingRealm {
log
.
info
(
"==================开始认证=================="
);
if
(
authenticationToken
==
null
)
{
// 报错
throw
new
PetShop
Exception
(
"没有需要认证的数据"
);
throw
new
Authentication
Exception
(
"没有需要认证的数据"
);
}
log
.
info
(
"用户输入的内容:{},{}"
,
authenticationToken
.
getCredentials
(),
authenticationToken
.
getPrincipal
());
String
token
=
(
String
)
authenticationToken
.
getCredentials
();
if
(
token
==
null
)
{
throw
new
AuthenticationException
(
"token为空"
);
}
// 解析token
TokenVO
tokenVO
=
JWTUtil
.
parseToken
(
token
);
if
(
tokenVO
==
null
)
{
throw
new
PetShop
Exception
(
"解析token出错"
);
throw
new
Authentication
Exception
(
"解析token出错"
);
}
// 解密获取username,用于和数据库进行对比
String
count
=
tokenVO
.
getCount
();
List
<
PetAdmins
>
petAdmins
=
petAdminsMapper
.
selectList
(
new
LambdaQueryWrapper
<
PetAdmins
>().
eq
(
PetAdmins:
:
getCount
,
count
));
if
(
CollectionUtils
.
isEmpty
(
petAdmins
))
{
// 报错
throw
new
PetShop
Exception
(
"没有该用户"
);
throw
new
Authentication
Exception
(
"没有该用户"
);
}
PetAdmins
admins
=
petAdmins
.
get
(
0
);
SimpleAuthenticationInfo
info
=
new
SimpleAuthenticationInfo
(
admins
.
getName
(),
admins
.
getPassword
()
,
getName
());
SimpleAuthenticationInfo
info
=
new
SimpleAuthenticationInfo
(
tokenVO
,
token
,
getName
());
log
.
info
(
"==================认证成功=================="
);
return
info
;
...
...
src/main/java/cn/youle/pet/shop/shiro/ShiroConfig.java
浏览文件 @
ab9d570f
...
...
@@ -3,11 +3,13 @@ package cn.youle.pet.shop.shiro;
import
org.apache.shiro.mgt.DefaultSecurityManager
;
import
org.apache.shiro.mgt.SecurityManager
;
import
org.apache.shiro.spring.web.ShiroFilterFactoryBean
;
import
org.apache.shiro.web.filter.authc.FormAuthenticationFilter
;
import
org.apache.shiro.web.mgt.DefaultWebSecurityManager
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
javax.servlet.Filter
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
...
...
@@ -33,11 +35,18 @@ public class ShiroConfig {
map
.
put
(
"/api/pet-admins/login"
,
"anon"
);
map
.
put
(
"/api/pet-admins/register"
,
"anon"
);
map
.
put
(
"/api/pet-admins/checkLogin"
,
"anon"
);
map
.
put
(
"/api/pet-product/*"
,
"a
uthc
"
);
map
.
put
(
"/api/pet-product/*"
,
"a
non
"
);
map
.
put
(
"/common/upload"
,
"anon"
);
map
.
put
(
"/common/download"
,
"anon"
);
// Map<String, Filter> filterMap = new LinkedHashMap<>();
// filterMap.put("authc",new FormAuthenticationFilter());
// filterMap.put("jwt",new JwtFilter());
// shiroFilterFactoryBean.setFilters(filterMap);
// 对所有用户认证
map
.
put
(
"/**"
,
"authc"
);
// map.put("/api/**","jwt");
shiroFilterFactoryBean
.
setFilterChainDefinitionMap
(
map
);
return
shiroFilterFactoryBean
;
...
...
src/main/java/cn/youle/pet/shop/shiro/auth/ResultVO.java
0 → 100644
浏览文件 @
ab9d570f
package
cn.youle.pet.shop.shiro.auth
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
@Data
@AllArgsConstructor
@Accessors
(
chain
=
true
)
public
class
ResultVO
<
T
>
{
private
Integer
code
;
private
String
msg
;
private
T
data
;
public
ResultVO
(){
}
public
ResultVO
(
int
code
,
String
msg
,
T
obj
){
this
.
code
=
code
;
this
.
msg
=
msg
;
this
.
data
=
obj
;
}
}
src/main/java/cn/youle/pet/shop/utils/JWTUtil.java
浏览文件 @
ab9d570f
...
...
@@ -68,6 +68,7 @@ public class JWTUtil {
* @return
*/
public
static
TokenVO
parseToken
(
String
jwt
)
{
log
.
info
(
"获取的token数据:{}"
,
jwt
);
TokenVO
tokenVO
=
new
TokenVO
();
try
{
Claims
body
=
Jwts
.
parser
().
setSigningKey
(
KEY
).
parseClaimsJws
(
jwt
).
getBody
();
...
...
src/main/resources/application-dev.properties
浏览文件 @
ab9d570f
spring.datasource.url
=
jdbc:mysql://localhost:3306/pets?characterEncoding=UTF-8&useSSL=false&useUnicode=true&serverTimezone=UTC
spring.datasource.username
=
root
spring.datasource.password
=
root
spring.datasource.type
=
com.alibaba.druid.pool.DruidDataSource
logging.level.cn.youle.pet.shop
=
trace
...
...
src/main/resources/application.properties
浏览文件 @
ab9d570f
...
...
@@ -9,3 +9,8 @@ mybatis-plus.mapper-locations=classpath:/mapper/*.xml
server.servlet.encoding.force
=
true
server.servlet.encoding.charset
=
UTF-8
spring.datasource.url
=
jdbc:mysql://localhost:3306/pets?characterEncoding=UTF-8&useSSL=false&useUnicode=true&serverTimezone=UTC
spring.datasource.username
=
root
spring.datasource.password
=
root
spring.datasource.type
=
com.alibaba.druid.pool.DruidDataSource
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录