Springboot安全框架整合SpringSecurity實現(xiàn)方式
1.工業(yè)級安全框架介紹
Spring Security基于Spring開發(fā),項目中如果使用Spring作為基礎,配合Spring Security做權限更加方便,而Shiro需要和Spring進行整合開發(fā)。因此作為spring全家桶中的Spring Security在java領域很常用。
2.建議搭建Spring Security環(huán)境
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創(chuàng)建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創(chuàng)建簡單的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,密碼則隨機生成的這串數(shù)字
3.進階版使用
3.1用戶名和密碼自定義
3.2在config包下創(chuàng)建Encoder進行密碼的校驗和轉(zhuǎn)碼操作
將密碼轉(zhuǎn)成字符串形式,并通過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實現(xiàn)方式的詳細內(nèi)容,更多關于Springboot整合SpringSecurity的資料請關注腳本之家其它相關文章!
相關文章
flowable動態(tài)創(chuàng)建多級流程模板實現(xiàn)demo
這篇文章主要為大家介紹了flowable動態(tài)創(chuàng)建多級流程模板實現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05java數(shù)據(jù)結(jié)構與算法之奇偶排序算法完整示例
這篇文章主要介紹了java數(shù)據(jù)結(jié)構與算法之奇偶排序算法,較為詳細的分析了奇偶算法的原理并結(jié)合完整示例形式給出了實現(xiàn)技巧,需要的朋友可以參考下2016-08-08skywalking分布式服務調(diào)用鏈路追蹤APM應用監(jiān)控
這篇文章主要為大家介紹了skywalking分布式服務調(diào)用鏈路追蹤APM應用監(jiān)控的功能使用說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03Spring事件監(jiān)聽器@EventListener與publishEvent的使用
Spring可以通過事件監(jiān)聽器機制來處理應用程序中的事件,本文主要介紹了Spring事件監(jiān)聽器@EventListener與publishEvent的使用,具有一定的參考價值,感興趣的可以了解一下2024-06-06