学习 Spring Boot(七):集成 Apache Shiro 安全框架

栏目: 后端 · 发布时间: 6年前

内容简介:学习 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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

软件测试的艺术

软件测试的艺术

梅尔斯 / 机械工业出版社 / 2006年01月 / 22.0

《软件测试的艺术》(原书第2版)成功、有效地进行软件测试的实用策略和技术:    基本的测试原理和策略      验收测试    程序检查和走查         安装测试    代码检查            模块(单元)测试    错误列表            测试规划与控制    同行评分            独立测试机构    黑盒、白盒测试    ......一起来看看 《软件测试的艺术》 这本书的介绍吧!

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具