5 Star 4 Fork 2

JavaObjects / TSMCP

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

腾讯智能制造云平台

开发环境

  1. jdk 1.8

  2. mysql 5.0 +

  3. 阿里云

  4. apache-tomcat-9.0.12

  5. win10/9/8/7

开发工具

  1. IDEA 2019

  2. navicat

  3. PowerDesigner 15

  4. Axure RP 8

  5. Xshell 6

  6. Postman

  7. RedisDesktopManager

版本控制工具

  1. git

使用技术

后端
  1. maven

  2. mybatis逆向工程

  3. springboot + mybatis

  4. spring security权限控制

  5. redis

  6. Lambda

常见问题

运行时redis错误

:[redis]Connection failure occurred. Restarting subscription task after 5000 ms

1.查看SpringBoot配置文件确认本地redis配置是否正确

2.确保redis正确运行在后台

3.缓存已经超出redis服务所规定的订阅缓存限制值,查看redis.conf配置文件:redis.windows.conf。 这一句:client-output-buffer-limit pubsub 32mb 8mb 60 Redis订阅客户端订阅buffer超过32M或持续60秒超过8M,订阅立即被关闭!解决改问题把限制值调大即可解决! 这里设置为:client-output-buffer-limit pubsub 256mb 64mb 60

4.用 redis-server.exe redis.windows.conf 命令启动redis 指定配文件(如果关掉,会出现问题)

Session 共享

一般情况下,一个程序为了保证稳定至少要部署两个,构成集群。那么就牵扯到了 Session 共享的问题,不然用户在 8080 登录成功后,后续访问了 8060 服务器,结果又提示没有登录。

简单实现 Session 共享,采用 Redis 来存储

1.导入redis依赖

  1. application.xml 中新增配置指定 redis 地址以及 session 的存储方式

  2. 为主类添加 @EnableRedisHttpSession 注解

  3. 完成了基于 Redis 的 Session 共享

退出登录

在WebSecurityConfig 的 configure() 方法中,配置

http.logout();

Spring Security 的默认退出配置,Spring Security 在退出时候做了这样几件事:

  1. 使当前的 session 失效
  2. 清除与当前用户有关的 remember-me 记录
  3. 清空当前的 SecurityContext
  4. 重定向到登录页

image text

”/admin“对应权限为admin的用户,“/user”对应用户为user的用户

image text

也可以在控制层使用注解 @PreAuthorize("hasRole('ROLE_XXX')") 来指定这个请求的权限

@PreAuthorize 用于判断用户是否有指定权限,没有就不能访问

修改下要访问的接口,@PreAuthorize("hasPermission('/admin','r')")

参数1指明了访问该接口需要的url,参数2指明了访问该接口需要的权限。 即访问 url 和权限

思路如下:

  1. 通过 Authentication 取出登录用户的所有 Role
  2. 遍历每一个 Role,获取到每个Role的所有 Permission
  3. 遍历每一个 Permission,只要有一个 Permission 的 url 和传入的url相同,且该 Permission 中包含传入的权限,返回 true
  4. 如果遍历都结束,还没有找到,返回false

自定义 UserDetailsService类

CustomUserDetailsService类 继承 UserDetailsService

空文件

简介

springboot + mybatis 腾讯智能制造云平台 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/JavaObjects/TSMCP.git
git@gitee.com:JavaObjects/TSMCP.git
JavaObjects
TSMCP
TSMCP
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891