内容简介:学习 Spring Boot(七):集成 Apache Shiro 安全框架
Authentication 和 Authorization
Authentication 认证,你是谁???
Authorization 授权,你能做什么???
Apache Shiro
Apache Shiro 是一个简单易用的 Java 安全框架,提供了 认证 、 授权 、 加密 和 会话管理 的功能。
示例
添加依赖
编辑 pom.xml 添加以下依赖:
<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-web</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.3.2</version> </dependency>
shiro-core Shiro 核心库
shiro-web Web 应用支持库
shiro-spring Spring 集成库
配置 Bean
编辑 WebConfiguration.java 文件:
@Configuration public class WebConfiguration { @Bean public ServletListenerRegistrationBean servletListenerRegistrationBean() { ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean(); EnvironmentLoaderListener listener = new EnvironmentLoaderListener(); bean.setListener(listener); return bean; } @Bean public FilterRegistrationBean filterRegistrationBean() { FilterRegistrationBean bean = new FilterRegistrationBean(); ShiroFilter shiroFilter = new ShiroFilter(); bean.setFilter(shiroFilter); return bean; } }
说明:
配置 EnvironmentLoaderListener
监听器, EnvironmentLoaderListener
初始化了一个 WebEnvironment
,使其可以在 ServletContext
中访问
配置 ShiroFilter
过滤器, ShiroFilter
会使用 WebEnvironment
对所有过滤的请求执行必要的安全操作
编辑 ShiroConfiguration.java 文件:
@Configuration public class ShrioConfiguration { @Bean public SecurityManager securityManager() { WebIniSecurityManagerFactory securityManagerFactory = new WebIniSecurityManagerFactory(); return securityManagerFactory.getInstance(); } @Bean public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() { return new LifecycleBeanPostProcessor(); } }
说明:
通过工厂类 WebIniSecurityManagerFactory
构建一个适用于 Web 基于 ini 配置的 SecurityManager
实例
通过 LifecycleBeanPostProcessor
自动调用 Spring 中 Shiro Bean 的 init 方法和 destroy 方法
配置 shiro.ini
编辑 shiro.ini
[main] [users] admin = admin, admin [roles] admin = * [urls] /api/** = authcBasic
[main]
定义了 SecurityManager 的配置
[users]
定义了用户名、密码和角色
[roles]
定义了角色和权限
[urls]
定义了 URL 过滤器
参考: https://shiro.apache.org/configuration.html
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- express项目集成mocha测试框架
- Springboot Application 集成 OSGI 框架开发
- 禅道 12.3.stable 版本发布,全面集成八种单元测试框架,打通持续集成闭环
- Chef 15.0.118 发布,系统集成框架
- Chef 15.0.118 发布,系统集成框架
- 微服务框架 Micronaut 集成 Kafka、GraphQL 实战
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Cracking the Coding Interview
Gayle Laakmann McDowell / CareerCup / 2015-7-1 / USD 39.95
Cracking the Coding Interview, 6th Edition is here to help you through this process, teaching you what you need to know and enabling you to perform at your very best. I've coached and interviewed hund......一起来看看 《Cracking the Coding Interview》 这本书的介绍吧!