Springboot安全框架整合SpringSecurity实现方式

这篇文章主要介绍了Spring全家桶中Springboot安全框架整合SpringSecurity的实现方式,有需要的朋友可以借鉴参考下,希望可以有所帮助

1.工业级安全框架介绍

Spring Security基于Spring开发,项目中如果使用Spring作为基础,配合Spring Security做权限更加方便,而Shiro需要和Spring进行整合开发。因此作为spring全家桶中的Spring Security在java领域很常用。

2.建议搭建Spring Security环境         

2.1在pom.xml中添加相关依赖

   4.0.0org.examplespringsecurityReview1.0-SNAPSHOT spring-boot-dependenciesorg.springframework.boot2.5.4  org.springframework.bootspring-boot-starter-web org.springframework.bootspring-boot-starter-security org.springframework.bootspring-boot-starter-thymeleaf

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的资料请关注0133技术站其它相关文章!

以上就是Springboot安全框架整合SpringSecurity实现方式的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java