spring-boot集成shiro+jwt框架(下载项目能直接用,简单易懂,里面惊喜多多)

项目大体框架

项目整体框架使用springboot + mybatis-plus + shiro +jwt,实现了简单的htpp传输加密,日志,防止xss攻击(没啥用),令牌桶,参数验证,统一异常处理。

shiro+jwt

具体实现请看代码,这里就不做截图了:
1.唯一注意的是shiroRealm里面注入的对象要么使用springApplicaionContext直接获取,使用@Autowired注入一定要使用懒加载,不然会出现事务失效,缓存失效,AOP失效问题,原因二次代理问题。
2.这里反向操作,filter里面所有接口全都拦截,添加@pass注解的接口不需要token验证。具体实现请看代码。
3.加密这里建议使用更好点的,公私钥啊这种,具体实现看个人。我这里用的AES麻烦在APPSCAN每次扫描都说加密太简单,贼烦。
4.令牌桶用的是guava里面的,使用和实现简单,至于为啥写到常量类,哎 sonar扫描说不规范,逼着修改,这个令牌桶不支持集群部署,如果集群部署估计要用到redis或者中间键吧。。
5.ErrorController的作用是拦截filter里面的异常,让异常按照指定格式返回,统一异常处理器在filetr里面不生效,具体请百度。
6.单点登录这里没实现,具体实现也简单,通过redis存token,就能实现,写个拦截器或者直接在过滤器里面写都行,登录账号当键,token当值,直接判断就好了,注意的是由于拦截器和过滤器都是在容器初始话之前执行,@Autowired注入的redistemplated对象会为空,可以使用util中的springApplicaionContext获取。网上还有其他办法,都行。

装饰器模式实现整体aop切面操作

一样如上,代码就不截图了,因为使用了http传输加密,只能在service做参数验证,这里参数验证使用AOP,为啥直接丢注解不行呢,因为协议不支持,只支持在controller,具体请百度。

文件上传使用FastDFS

接口已经实现,请自行部属,修改下配置文件地址就好了。

swagger

配置了,能直接用。

工具类

找了点蛮好用的工具类放里面的,可以用的,很多不放主要是sonar和APPSCAN,哎

项目地址

https://github.com/zhangtaodashabi/spring-boot-shiro-jwt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值