springboot整合shiro
来源:互联网 发布:linux vim和vi的区别 编辑:程序博客网 时间:2024/05/20 09:46
项目启动后输入:http://localhost/
该项目中, 增加了对url的拦截URLPermissionsFilter,
用admin/123456,拥有index权限reports未任何权限, lance/123456尚未分配任何权限.
该项目中, 增加了对url的拦截URLPermissionsFilter,
用admin/123456,拥有index权限reports未任何权限, lance/123456尚未分配任何权限.
1.Pom依赖
- <shiro.version>1.2.5</shiro.version>
- <dependency>
- <groupId>org.apache.shiro</groupId>
- <artifactId>shiro-core</artifactId>
- <version>${shiro.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.shiro</groupId>
- <artifactId>shiro-web</artifactId>
- <version>${shiro.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.shiro</groupId>
- <artifactId>shiro-ehcache</artifactId>
- <version>${shiro.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.shiro</groupId>
- <artifactId>shiro-spring</artifactId>
- <version>${shiro.version}</version>
- </dependency>
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>1.3.5.RELEASE</version>
- </parent>
2.Shiro配置
- @Configuration
- public class ShiroConfig {
- /**
- * FilterRegistrationBean
- * @return
- */
- @Bean
- public FilterRegistrationBean filterRegistrationBean() {
- FilterRegistrationBean filterRegistration = new FilterRegistrationBean();
- filterRegistration.setFilter(new DelegatingFilterProxy("shiroFilter"));
- filterRegistration.setEnabled(true);
- filterRegistration.addUrlPatterns("/*");
- filterRegistration.setDispatcherTypes(DispatcherType.REQUEST);
- return filterRegistration;
- }
- /**
- * @see org.apache.shiro.spring.web.ShiroFilterFactoryBean
- * @return
- */
- @Bean(name = "shiroFilter")
- public ShiroFilterFactoryBean shiroFilter(){
- ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
- bean.setSecurityManager(securityManager());
- bean.setLoginUrl("/login");
- bean.setUnauthorizedUrl("/unauthor");
- Map<String, Filter>filters = Maps.newHashMap();
- filters.put("perms", urlPermissionsFilter());
- filters.put("anon", new AnonymousFilter());
- bean.setFilters(filters);
- Map<String, String> chains = Maps.newHashMap();
- chains.put("/login", "anon");
- chains.put("/unauthor", "anon");
- chains.put("/logout", "logout");
- chains.put("/base/**", "anon");
- chains.put("/css/**", "anon");
- chains.put("/layer/**", "anon");
- chains.put("/**", "authc,perms");
- bean.setFilterChainDefinitionMap(chains);
- return bean;
- }
- /**
- * @see org.apache.shiro.mgt.SecurityManager
- * @return
- */
- @Bean(name="securityManager")
- public DefaultWebSecurityManager securityManager() {
- DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
- manager.setRealm(userRealm());
- manager.setCacheManager(cacheManager());
- manager.setSessionManager(defaultWebSessionManager());
- return manager;
- }
- /**
- * @see DefaultWebSessionManager
- * @return
- */
- @Bean(name="sessionManager")
- public DefaultWebSessionManager defaultWebSessionManager() {
- DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
- sessionManager.setCacheManager(cacheManager());
- sessionManager.setGlobalSessionTimeout(1800000);
- sessionManager.setDeleteInvalidSessions(true);
- sessionManager.setSessionValidationSchedulerEnabled(true);
- sessionManager.setDeleteInvalidSessions(true);
- return sessionManager;
- }
- /**
- * @see UserRealm--->AuthorizingRealm
- * @return
- */
- @Bean
- @DependsOn(value="lifecycleBeanPostProcessor")
- public UserRealm userRealm() {
- UserRealm userRealm = new UserRealm();
- userRealm.setCacheManager(cacheManager());
- return userRealm;
- }
- @Bean
- public URLPermissionsFilter urlPermissionsFilter() {
- return new URLPermissionsFilter();
- }
- @Bean
- public EhCacheManager cacheManager() {
- EhCacheManager cacheManager = new EhCacheManager();
- cacheManager.setCacheManagerConfigFile("classpath:ehcache.xml");
- return cacheManager;
- }
- @Bean
- public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
- return new LifecycleBeanPostProcessor();
- }
- }
3.完整项目参考
https://github.com/leelance/spring-boot-all/tree/master/spring-boot-shiro
阅读全文
0 0
- springboot shiro 整合
- springboot shiro 整合
- springboot整合shiro
- SpringBoot整合Shiro
- SpringBoot整合shiro框架
- springboot 整合shiro
- Springboot + shiro 整合之Url拦截设置
- springboot(十四):springboot整合shiro-登录认证和权限管理
- springboot(十四):springboot整合shiro-登录认证和权限管理
- springboot(十四):springboot整合shiro-登录认证和权限管理
- SpringBoot学习-(十七)SpringBoot整合Shiro
- springboot(十四):springboot整合shiro-登录认证和权限管理
- springboot(十四):springboot整合shiro-登录认证和权限管理
- springboot(十四):springboot整合shiro-登录认证和权限管理
- SpringBoot+shiro整合学习之登录认证和权限控制
- SpringBoot+shiro整合学习之登录认证和权限控制
- SpringBoot学习:整合shiro(rememberMe记住我功能)
- IDEA上搭建maven项目整合springboot+mybatis+shiro
- linux中使用select和epoll确定异步connect连接是否成功 标签: 网络编程服务器异步connectSO_ERRORsocket 2016-07-31 23:07 1008人阅读 评
- 【建模必备】遗传算法的基本原理与步骤(变异)
- Laravel 5
- C#——语言基础——数组
- c#多线程中Lock()关键字的用法小结
- springboot整合shiro
- How a CPU Works ?
- 查询两个表中字段相同的数据
- 惠安惠达sql优化:已出车后,待命车数量明细中该车最好显示为0,用户体验较好
- hive执行语句oom
- 更新GitHub上自己 Fork 的代码与原作者的项目进度一致
- 解决IDEA插件jreble热部署失效问题
- Windows下如何将cmd命令添加到右键菜单
- 开发者所需要知道的 iOS 11 SDK 新特性