如何安装与使用Spring Boot 2.2.x、Spring Framework 5.2.x与Apache Shiro 1.7进行高效开发

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
性能测试 PTS,5000VUM额度
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 【7月更文第1天】在现代Java Web开发领域,Spring Boot以其简化配置、快速开发的特点备受青睐。结合Spring Framework的成熟与Apache Shiro的强大权限控制能力,我们可以轻松构建安全且高效的Web应用。本篇文章将指导你如何安装并使用Spring Boot 2.2.x、Spring Framework 5.2.x以及Apache Shiro 1.7来构建一个具备基础权限管理功能的项目。

在现代Java Web开发领域,Spring Boot以其简化配置、快速开发的特点备受青睐。结合Spring Framework的成熟与Apache Shiro的强大权限控制能力,我们可以轻松构建安全且高效的Web应用。本篇文章将指导你如何安装并使用Spring Boot 2.2.x、Spring Framework 5.2.x以及Apache Shiro 1.7来构建一个具备基础权限管理功能的项目。

1. 环境准备

1.1 Java Development Kit (JDK)

确保你的开发环境已安装JDK 8或更高版本。请参照前文提供的JDK安装指南进行安装与配置。

1.2 安装Spring Boot CLI

虽然不是必须,但安装Spring Boot CLI可以方便地创建新项目。访问Spring Boot官网下载页面,根据操作系统选择对应版本安装。

1.3 安装IDE

推荐使用IntelliJ IDEA或Eclipse,这两个IDE都对Spring Boot有很好的支持。安装并配置好Java开发环境。

2. 创建Spring Boot项目

2.1 使用Spring Initializr

访问Spring Initializr网站(https://start.spring.io/) ,选择项目类型为“Maven Project”,Java版本为8或更高,Spring Boot版本选择2.2.x。在Dependencies栏添加“Spring Web”以启用Web功能。

2.2 下载并导入项目

生成项目后下载ZIP文件,解压后用IDE导入。以IntelliJ IDEA为例,选择“Open”然后找到解压后的项目目录打开。

3. 添加Spring Framework 5.2.x依赖

Spring Boot 2.2.x默认集成了Spring Framework 5.2.x,因此无需额外操作,Spring Boot的Starter POMs已经包含了必要的依赖。

4. 集成Apache Shiro

4.1 添加Shiro依赖

打开pom.xml文件,在dependencies标签内添加Apache Shiro的依赖:

<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-spring</artifactId>
    <version>1.7.1</version>
</dependency>

4.2 配置Shiro

  • src/main/resources目录下创建shiro.ini文件,用于配置Shiro的基本规则。
  • 在Spring Boot主类中添加Shiro的配置类,实现WebSecurityConfigurerAdapter接口,配置ShiroFilterFactoryBean以整合Shiro与Spring Boot。

4.3 示例配置

[main]
# 定义Realm
myRealm = com.example.security.MyRealm

# 安全管理器
securityManager.realm = $myRealm

[urls]
# 所有请求都需要认证
/** = authc
@Configuration
public class ShiroConfig {

    @Bean
    public SecurityManager securityManager(MyRealm myRealm) {
        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
        securityManager.setRealm(myRealm);
        return securityManager;
    }

    @Bean
    public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
        ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean();
        factoryBean.setSecurityManager(securityManager);
        Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>();
        filterChainDefinitionMap.put("/**", "authc");
        factoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
        return factoryBean;
    }
    
    // 配置Realm
    @Bean
    public MyRealm myRealm() {
        return new MyRealm();
    }
}

5. 实现自定义Realm

创建一个继承AuthorizingRealm的类,如上例中的MyRealm,实现doGetAuthenticationInfodoGetAuthorizationInfo方法,分别用于认证与授权。

6. 测试Shiro功能

  • 创建一些简单的登录、授权测试页面或API。
  • 启动应用,通过浏览器或Postman测试登录功能,观察Shiro对权限的控制效果。

结语

通过上述步骤,我们成功集成了Spring Boot 2.2.x、Spring Framework 5.2.x与Apache Shiro 1.7,搭建了一个具有基本权限管理功能的应用框架。Shiro的灵活配置和强大的认证授权机制,配合Spring Boot的便捷性,为开发安全的Web应用提供了坚实的基础。接下来,你可以根据实际需求进一步完善权限控制逻辑,开发出更加丰富和安全的功能。

目录
相关文章
|
20天前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
36 4
|
24天前
|
安全 Java 数据库
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
这篇文章是关于Apache Shiro权限管理框架的详细学习指南,涵盖了Shiro的基本概念、认证与授权流程,并通过Spring Boot测试模块演示了Shiro在单应用环境下的使用,包括与IniRealm、JdbcRealm的集成以及自定义Realm的实现。
34 3
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
|
13天前
|
XML Java 数据格式
提升效率!Spring Boot 开发中的常见失误轻松规避
本文深入探讨了在 Spring Boot 开发中常见的失误,包括不当使用注解、不良异常处理、低效日志记录等,提供了有效的规避策略,帮助开发者提升代码质量和系统性能,构建更健壮、高效的应用程序。
|
22天前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
47 2
|
22天前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
45 1
|
22天前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
17 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
22天前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
20 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
22天前
|
Java 测试技术 Spring
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
这篇文章介绍了Spring Boot中配置文件的语法、如何读取配置文件以及如何通过静态工具类读取配置文件。
29 0
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
|
2天前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
19 0
|
23天前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
22 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。

推荐镜像

更多