package com.example.shirodemo.config;
import com.example.shirodemo.filter.MyFilter;
import net.sf.ehcache.CacheManager;
import org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.apache.shiro.web.servlet.SimpleCookie;
import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.cache.ehcache.EhCacheManagerFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import javax.servlet.Filter;
import java.util.LinkedHashMap;
import java.util.Map;
@Configuration
public class ShiroConfig {
@Bean(name = "shiroFilter")
public ShiroFilterFactoryBean getShiroFilterFactoryBean(@Qualifier("securityManager") DefaultWebSecurityManager defaultWebSecurityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
//注入核心安全管理器
shiroFilterFactoryBean.setSecurityManager(defaultWebSecurityManager);
//注入拦截器
Map<String, Filter> filters = new LinkedHashMap<>();
filters.put("authc", new MyFilter());
shiroFilterFactoryBean.setFilters(filters);
//配置拦截链
Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>();
filterChainDefinitionMap.put("/user/add", "authc");
filterChainDefinitionMap.put("/user/update", "authc");
//设置登录的请求
shiroFilterFactoryBean.setLoginUrl("/login");
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
return shiroFilterFactoryBean;
}
@Bean(name = "securityManager")
public DefaultWebSecurityManager getDefaultWebSecurityManager(@Qualifier("userRealm") UserRealm userRealm) {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(userRealm);
securityManager.setSessionManager(sessionManager());
//securityManager.setCacheManager(cacheManager());
return securityManager;
}
/**
* 会话管理
* 默认使用容器session,这里改为自定义session
* session的全局超时时间默认是30分钟
*
* @return
*/
@Bean
public DefaultWebSessionManager sessionManager() {
DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
// sessionId cookie
SimpleCookie cookie = new SimpleCookie();
cookie.setName("sid");
// 设置cookie的存活时间为30分钟,与session timeout时间一致
cookie.setMaxAge(1800);
cookie.setHttpOnly(true);
sessionManager.setSessionIdCookie(cookie);
sessionManager.setSessionIdCookieEnabled(true);
//默认使用MemerySessionDao,设置为EnterpriseCacheSessionDAO以配合ehcache实现分布式集群缓存支持
sessionManager.setSessionDAO(new EnterpriseCacheSessionDAO());
return sessionManager;
}
/**
* 缓存管理器
* 配合session dao实现分布式集群session,用于进程内缓存session
*
* @return
*/
// @Bean(name = "ehCacheManager")
// public CacheManager cacheManager(EhCacheManagerFactoryBean bean) {
// return bean.getObject();
// }
// @Bean
// public EhCacheManagerFactoryBean ehCacheManagerFactoryBean() {
// EhCacheManagerFactoryBean cacheManagerFactoryBean = new EhCacheManagerFactoryBean();
// cacheManagerFactoryBean.setConfigLocation(new ClassPathResource("myEhcache.xml"));
// cacheManagerFactoryBean.setShared(true);
// // 设置完属性后,cacheManagerFactoryBean会执行afterProertiesSet()方法,
// // 所以不能在这里直接执行cacheManagerFactoryBean.getObject(),直接执行的话,因为在afterPropertiesSet()方法之前执行,
// // 所以:getObject()会得到null值
// return cacheManagerFactoryBean;
// }
//创建realm对象,需要自定义
@Bean
public UserRealm userRealm() {
return new UserRealm();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
shiro demoshiro demoshiro demo
共136个文件
xml:95个
class:12个
java:12个
需积分: 9 0 下载量 17 浏览量
2022-12-02
18:27:36
上传
评论
收藏 141KB ZIP 举报
温馨提示
shiro demoshiro demoshiro demo
资源推荐
资源详情
资源评论
收起资源包目录
shiro demoshiro demoshiro demo (136个子文件)
MyController.class 3KB
ShiroConfig.class 3KB
UserRealm.class 2KB
UserServiceImpl.class 1KB
MyFilter.class 1KB
Permission.class 1KB
ShirodemoApplicationTests.class 1KB
Role.class 974B
User.class 965B
ShirodemoApplication.class 882B
UserService.class 605B
UserMapper.class 602B
mvnw.cmd 7KB
.gitignore 395B
index.html 1KB
index.html 1KB
login.html 212B
login.html 212B
register.html 132B
register.html 132B
shirodemo.iml 11KB
maven-wrapper.jar 57KB
ShiroConfig.java 4KB
MyController.java 3KB
UserRealm.java 1KB
MyFilter.java 925B
UserServiceImpl.java 925B
Permission.java 802B
ShirodemoApplicationTests.java 586B
User.java 579B
Role.java 534B
ShirodemoApplication.java 486B
UserService.java 384B
UserMapper.java 380B
HELP.md 1KB
mvnw 10KB
maven-wrapper.properties 233B
application.properties 165B
application.properties 165B
workspace.xml 62KB
pom.xml 3KB
UserMapper.xml 1KB
UserMapper.xml 1KB
Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_4.xml 736B
Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_2_1.xml 730B
Maven__org_thymeleaf_extras_thymeleaf_extras_java8time_3_0_4_RELEASE.xml 725B
Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_7_6.xml 713B
compiler.xml 709B
Maven__org_springframework_boot_spring_boot_starter_thymeleaf_2_7_6.xml 706B
Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml 700B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_4.xml 695B
Maven__org_springframework_boot_spring_boot_starter_logging_2_7_6.xml 692B
Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_2_1.xml 688B
Maven__org_springframework_boot_spring_boot_starter_tomcat_2_7_6.xml 685B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_4.xml 681B
Maven__org_springframework_boot_spring_boot_autoconfigure_2_7_6.xml 678B
Maven__org_springframework_boot_spring_boot_starter_cache_2_7_6.xml 678B
Maven__org_springframework_boot_spring_boot_starter_json_2_7_6.xml 671B
Maven__org_springframework_boot_spring_boot_starter_jdbc_2_7_6.xml 671B
Maven__org_springframework_boot_spring_boot_starter_test_2_7_6.xml 671B
Maven__org_springframework_boot_spring_boot_starter_web_2_7_6.xml 664B
Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_69.xml 660B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_4.xml 651B
Maven__org_springframework_spring_context_support_5_3_24.xml 644B
Maven__com_fasterxml_jackson_core_jackson_databind_2_13_4_2.xml 644B
Maven__org_thymeleaf_thymeleaf_spring5_3_0_11_RELEASE.xml 641B
Maven__org_springframework_boot_spring_boot_starter_2_7_6.xml 636B
Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml 633B
Maven__org_junit_platform_junit_platform_commons_1_8_2.xml 633B
Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml 633B
Maven__org_junit_platform_junit_platform_engine_1_8_2.xml 626B
Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_69.xml 625B
Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml 615B
Maven__org_springframework_boot_spring_boot_test_2_7_6.xml 615B
Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml 615B
Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_69.xml 611B
Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml 611B
Maven__org_springframework_spring_expression_5_3_24.xml 609B
Maven__org_apache_logging_log4j_log4j_to_slf4j_2_17_2.xml 608B
Maven__com_fasterxml_jackson_core_jackson_core_2_13_4.xml 602B
Maven__org_mockito_mockito_junit_jupiter_4_5_1.xml 598B
Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml 594B
Maven__commons_beanutils_commons_beanutils_1_8_3.xml 594B
Maven__org_attoparser_attoparser_2_0_5_RELEASE.xml 589B
Maven__org_springframework_spring_context_5_3_24.xml 588B
Maven__net_bytebuddy_byte_buddy_agent_1_12_19.xml 585B
Maven__org_thymeleaf_thymeleaf_3_0_15_RELEASE.xml 585B
Maven__org_springframework_spring_webmvc_5_3_24.xml 581B
Maven__org_springframework_boot_spring_boot_2_7_6.xml 580B
Maven__org_unbescape_unbescape_1_1_6_RELEASE.xml 578B
Maven__ch_qos_logback_logback_classic_1_2_11.xml 575B
Maven__mysql_mysql_connector_java_5_1_44.xml 574B
Maven__org_springframework_spring_beans_5_3_24.xml 574B
Maven__org_apache_logging_log4j_log4j_api_2_17_2.xml 573B
Maven__org_apiguardian_apiguardian_api_1_1_2.xml 572B
Maven__org_springframework_spring_test_5_3_24.xml 567B
Maven__org_springframework_spring_jdbc_5_3_24.xml 567B
Maven__org_springframework_spring_core_5_3_24.xml 567B
Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml 566B
Maven__org_springframework_spring_web_5_3_24.xml 560B
共 136 条
- 1
- 2
资源评论
lsunwing
- 粉丝: 71
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功