package com.web.admin.shiro;
import com.web.common.utils.SysConstant;
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.session.mgt.SessionManager;
import org.apache.shiro.spring.LifecycleBeanPostProcessor;
import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.RedisSerializer;
import javax.servlet.Filter;
import java.time.Duration;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
@Configuration
public class ShiroConfig {
@Bean("sessionManager")
public SessionManager sessionManager() {
DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
sessionManager.setSessionValidationSchedulerEnabled(true);
sessionManager.setSessionIdCookieEnabled(true);
return sessionManager;
}
@Bean("securityManager")
public SecurityManager securityManager(ShiroRealm shiroRealm, SessionManager sessionManager,RedisConnectionFactory redisConnectionFactory) {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(shiroRealm);
securityManager.setSessionManager(sessionManager);
securityManager.setCacheManager(shiroCacheManager(redisConnectionFactory));
return securityManager;
}
@Bean("shiroFilter")
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
shiroFilter.setSecurityManager(securityManager);
Map<String, Filter> filters = new HashMap<>();
filters.put("filter", new ShiroFilters());
shiroFilter.setFilters(filters);
Map<String, String> filterMap = new LinkedHashMap<>();
filterMap.put("/sysUser/login", "anon");
filterMap.put("/sysUser/logout", "anon");
filterMap.put("/static/**", "anon");
filterMap.put("/upload/**", "anon");
filterMap.put("/*.html", "anon");
filterMap.put("/**", "filter");
shiroFilter.setFilterChainDefinitionMap(filterMap);
return shiroFilter;
}
@Bean("lifecycleBeanPostProcessor")
public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
return new LifecycleBeanPostProcessor();
}
@Bean
public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
DefaultAdvisorAutoProxyCreator proxyCreator = new DefaultAdvisorAutoProxyCreator();
proxyCreator.setProxyTargetClass(true);
return proxyCreator;
}
@Bean
public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {
AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();
advisor.setSecurityManager(securityManager);
return advisor;
}
@Bean
public ShiroCacheManager shiroCacheManager(RedisConnectionFactory redisConnectionFactory) {
ShiroCacheManager shiroCacheManager = new ShiroCacheManager();
shiroCacheManager.setCacheManager(redisCacheManager(redisConnectionFactory));
return shiroCacheManager;
}
@Bean
public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectionFactory) {
//初始化一个RedisCacheWriter
RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory);
//设置CacheManager的值序列化方式为json序列化
RedisSerializer<Object> jsonSerializer = new GenericJackson2JsonRedisSerializer();
RedisSerializationContext.SerializationPair<Object> pair = RedisSerializationContext.SerializationPair
.fromSerializer(jsonSerializer);
RedisCacheConfiguration defaultCacheConfig=RedisCacheConfiguration.defaultCacheConfig()
.serializeValuesWith(pair);
//设置过期时间
defaultCacheConfig.entryTtl(Duration.ofMillis(SysConstant.LOGIN_EXPIRE_TIME));
//初始化RedisCacheManager
return new RedisCacheManager(redisCacheWriter, defaultCacheConfig);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于spring boot + element-ui的后台管理系统源码+项目说明.zip
共104个文件
java:72个
xml:11个
sql:8个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 183 浏览量
2024-01-08
22:41:48
上传
评论
收藏 89KB ZIP 举报
温馨提示
【资源说明】 1、基于spring boot + element-ui的后台管理系统源码+项目说明.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于spring boot + element-ui的后台管理系统源码+项目说明.zip # 基于spring boot + element-ui的后台管理系统:后端篇 > 技术栈:springboot + mybatis-plus + mysql + redis + shiro * 集成fastjson消息转换器,格式化响应报文 * 自定义业务异常,捕获并响应统一数据格式 * 集成shiro权限管理,基于redis缓存权限 * 预设模块:用户管理、角色管理、权限管理 * ...
资源推荐
资源详情
资源评论
收起资源包目录
基于spring boot + element-ui的后台管理系统源码+项目说明.zip (104个子文件)
.gitignore 356B
.gitignore 356B
.gitignore 356B
.gitignore 72B
test.html 127B
ShiroConfig.java 5KB
SysUserServiceImpl.java 5KB
CodeGenerator.java 4KB
SysUserController.java 4KB
ShiroFilters.java 3KB
CustomExceptionHandler.java 3KB
ResOssController.java 3KB
SysRoleServiceImpl.java 3KB
RedisConfig.java 3KB
FastJsonConfiguration.java 3KB
ShiroRealm.java 3KB
ResOssServiceImpl.java 2KB
SysUserTokenServiceImpl.java 2KB
SysMenuController.java 2KB
FileUtils.java 2KB
ShiroCache.java 2KB
SysRoleController.java 2KB
SysMenuServiceImpl.java 2KB
SysRoleMenuServiceImpl.java 2KB
ResGroupServiceImpl.java 2KB
PublicController.java 2KB
ResGroupController.java 2KB
SpringContextUtil.java 1KB
SysUserRoleServiceImpl.java 1KB
ResponseData.java 1KB
AdminApplication.java 1KB
TokenGenerator.java 1KB
SysMenu.java 1KB
ShiroCacheManager.java 1KB
SysUser.java 1019B
AssertUtil.java 931B
SysUserDTO.java 889B
PageWrapper.java 887B
SysUserService.java 885B
ResOss.java 857B
ResOssService.java 847B
ResGroupService.java 812B
SysConstant.java 798B
FeedbackController.java 788B
MyMetaObjectHandler.java 704B
WebException.java 699B
SysRole.java 690B
FeedbackServiceImpl.java 674B
Feedback.java 672B
ResGroup.java 627B
BaseModel.java 625B
SysRoleService.java 595B
SysMenuService.java 563B
SysMenuMapper.java 557B
SysUserToken.java 554B
SysUserMapper.java 539B
SysRoleMapper.java 533B
MybatisPlusConfig.java 520B
SysRoleMenu.java 500B
SysUserRole.java 500B
SysUserRoleService.java 494B
SysRoleMenuService.java 486B
SysRoleMenuMapper.java 480B
SysUserRoleMapper.java 455B
ShiroToken.java 452B
SysUserTokenService.java 452B
UserLoginDTO.java 357B
AdminApplicationTests.java 329B
SysUserTokenMapper.java 328B
MoveGroupDTO.java 307B
ResGroupMapper.java 283B
ResOssMapper.java 282B
FeedbackMapper.java 270B
BaseController.java 259B
PasswordDTO.java 243B
ResOssDTO.java 234B
FeedbackService.java 220B
READM1E.md 371B
preview.png 27KB
application.properties 1KB
application-prod.properties 33B
application-dev.properties 27B
application.properties 1B
application.properties 1B
application-test.properties 0B
sys_permission.sql 4KB
sys_user_token.sql 2KB
sys_user.sql 2KB
sys_role_permission.sql 2KB
res_oss.sql 1KB
sys_role.sql 1KB
res_group.sql 1KB
sys_user_role.sql 1KB
pom.xml 3KB
pom.xml 3KB
SysUserMapper.xml 2KB
logback.xml 2KB
SysMenuMapper.xml 2KB
SysRoleMapper.xml 2KB
SysRoleMenuMapper.xml 972B
共 104 条
- 1
- 2
资源评论
土豆片片
- 粉丝: 1518
- 资源: 5643
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功