jdk 1.8
mysql 5.0 +
阿里云
apache-tomcat-9.0.12
win10/9/8/7
IDEA 2019
navicat
PowerDesigner 15
Axure RP 8
Xshell 6
Postman
RedisDesktopManager
maven
mybatis逆向工程
springboot + mybatis
spring security权限控制
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 共享的问题,不然用户在 8080 登录成功后,后续访问了 8060 服务器,结果又提示没有登录。
简单实现 Session 共享,采用 Redis 来存储
1.导入redis依赖
application.xml
中新增配置指定 redis 地址以及 session 的存储方式
为主类添加 @EnableRedisHttpSession
注解
完成了基于 Redis 的 Session 共享
在WebSecurityConfig 的 configure() 方法中,配置
http.logout();
Spring Security 的默认退出配置,Spring Security 在退出时候做了这样几件事:
”/admin“对应权限为admin的用户,“/user”对应用户为user的用户
也可以在控制层使用注解 @PreAuthorize("hasRole('ROLE_XXX')") 来指定这个请求的权限
@PreAuthorize
用于判断用户是否有指定权限,没有就不能访问
修改下要访问的接口,@PreAuthorize("hasPermission('/admin','r')")
参数1指明了访问该接口需要的url,参数2指明了访问该接口需要的权限。 即访问 url 和权限。
思路如下:
CustomUserDetailsService类 继承 UserDetailsService
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。