Springboot安全框架整合SpringSecurity实现方式
1.工业级安全框架介绍
Spring Security基于Spring开发,项目中如果使用Spring作为基础,配合Spring Security做权限更加方便,而Shiro需要和Spring进行整合开发。因此作为spring全家桶中的Spring Security在java领域很常用。
2.建议搭建Spring Security环境
2.1在pom.xml中添加相关依赖
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>springsecurityReview</artifactId> <version>1.0-SNAPSHOT</version> <parent> <artifactId>spring-boot-dependencies</artifactId> <groupId>org.springframework.boot</groupId> <version>2.5.4</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies> </project>
2.2创建Handler类
package com.example.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class Handler { @GetMapping("/index") public String index(){ return "index"; } }
2.3创建简单的html和配置相关thymeleaf的路径
2.4最后再加个启动类,那么我们的整合测试就完成勒
package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }
2.5成果展示 用户名默认user,密码则随机生成的这串数字
3.进阶版使用
3.1用户名和密码自定义
3.2在config包下创建Encoder进行密码的校验和转码操作
将密码转成字符串形式,并通过match方法惊醒校验。
3.3赋予账号角色权限
package com.example.config; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { //角色和资源的关系 @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests().antMatchers("/admin").hasRole("ADMIN") .antMatchers("/index").access("hasRole('ADMIN') or hasRole('USER') ") .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .permitAll() .and() .logout() .permitAll() .and() .csrf() .disable(); } @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication().passwordEncoder(new MyPasswordEncoder()) .withUser("user").password(new MyPasswordEncoder() .encode("000")).roles("USER") .and() .withUser("admin").password(new MyPasswordEncoder() .encode("123")).roles("ADMIN","USER"); } }
最后达到admin账号能访问admin.html和index.html
user只能访问index.html的操作
以上就是Springboot安全框架整合SpringSecurity实现方式的详细内容,更多关于Springboot整合SpringSecurity的资料请关注脚本之家其它相关文章!
- springboot整合security和vue的实践
- springboot整合springsecurity与mybatis-plus的简单实现
- SpringBoot如何整合Springsecurity实现数据库登录及权限控制
- SpringBoot整合SpringSecurityOauth2实现鉴权动态权限问题
- Springboot详解整合SpringSecurity实现全过程
- SpringBoot整合SpringSecurity实现JWT认证的项目实践
- SpringBoot整合Security权限控制登录首页
- SpringBoot整合Spring Security过滤器链加载执行流程源码分析(最新推荐)
- SpringBoot整合SpringSecurity和JWT和Redis实现统一鉴权认证
- SpringBoot整合SpringSecurity认证与授权
- SpringBoot整合Spring Security构建安全的Web应用
相关文章
Java模拟rank/over函数实现获取分组排名的方法详解
这篇文章主要为大家详细介绍了Java模拟rank()、over()函数获取分组排名的方法设计及实现,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下2023-04-04springboot项目整合mybatis并配置mybatis中间件的实现
这篇文章主要介绍了springboot项目整合mybatis并配置mybatis中间件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-04-04SpringBoot(cloud)自动装配bean找不到类型的问题
这篇文章主要介绍了SpringBoot(cloud)自动装配bean找不到类型的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-02-02springboot3.x版本集成log4j遇到Logging system failed to initial
使用Springboot 3.x集成Log4j时可能会遇到版本冲突的问题,这通常可以通过检查Maven依赖树来识别,一旦发现冲突,将Log4j的版本统一更新到最新的兼容版本,例如2.21.1,即可解决问题,此方法有效解决了日志打印错误,是处理类似问题的一个实用参考2024-09-09
最新评论