Spring Security學習筆記(一)
介紹
這里學習SpringSecurity,對SpringSecurity進行學習。
基本用法
添加依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
添加接口
package com.example.demo.web;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/test")
public class Test {
@RequestMapping("/test")
public String test(){
return "test";
}
}
啟動項目
可以看到日志中,已經(jīng)有了密碼

訪問接口,此時已經(jīng)有了登錄頁面

輸入用戶名和密碼
用戶名: user
密碼 984cccf2-ba82-468e-a404-7d32123d0f9c

此時已經(jīng)登錄成功
配置用戶名和密碼
在配置文件中,進行配置
spring:
security:
user:
name: ming
password: 123456
roles: admin
輸入用戶名和密碼,可以正常登錄
基于內(nèi)存的認證
需要自定義類繼承 WebSecurityConfigurerAdapter
實現(xiàn)自定義的配置
這里基于內(nèi)存的配置,如下
package com.example.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
@Configuration
public class MyWebSecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
PasswordEncoder passwordEncoder(){
return NoOpPasswordEncoder.getInstance();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("admin").password("123").roles("admin");
}
}
這里基于內(nèi)存的配置
HttpSecurity
這里對某些方法進行攔截
package com.ming.demo.interceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
//基于內(nèi)存的用戶存儲
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("itguang").password("123456").roles("USER").and()
.withUser("admin").password("{noop}" + "123456").roles("ADMIN");
}
//請求攔截
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().permitAll()
.and()
.formLogin()
.permitAll()
.and()
.logout()
.permitAll();
}
}
這里成功完成了post請求進行登錄驗證。
以上就是Spring Security學習筆記(一)的詳細內(nèi)容,更多關(guān)于Spring Security的資料請關(guān)注腳本之家其它相關(guān)文章!
- 詳解springSecurity之java配置篇
- Java開發(fā)之spring security實現(xiàn)基于MongoDB的認證功能
- java中Spring Security的實例詳解
- Java中SpringSecurity密碼錯誤5次鎖定用戶的實現(xiàn)方法
- java中自定義Spring Security權(quán)限控制管理示例(實戰(zhàn)篇)
- JavaWeb開發(fā)之Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基礎(chǔ)框架
- Spring Security+Spring Data Jpa如何進行安全管理
- Spring Security 將用戶數(shù)據(jù)存入數(shù)據(jù)庫
- Spring Security OAuth2 授權(quán)碼模式的實現(xiàn)
- Spring Security基于數(shù)據(jù)庫實現(xiàn)認證過程解析
- SpringBoot整合Spring Security的詳細教程
- 手把手帶你入門 Spring Security的具體流程
相關(guān)文章
Android應用開發(fā)的一般文件組織結(jié)構(gòu)講解
這篇文章主要介紹了Android應用開發(fā)的一般文件組織結(jié)構(gòu)講解,同時附帶介紹了一個獲取Android的文件列表的方法,需要的朋友可以參考下2015-12-12
Apache Commons fileUpload文件上傳多個示例分享
這篇文章主要為大家分享了Apache Commons fileUpload文件上傳4個示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-10-10
Spring中InitializingBean的使用詳細解析
這篇文章主要介紹了Spring中InitializingBean的使用詳細解析,InitializingBean是Spring提供的拓展性接口,提供了屬性初始化后的處理方法,它只有一個afterPropertiesSet方法,凡是繼承該接口的類,在bean的屬性初始化后都會執(zhí)行該方法,需要的朋友可以參考下2024-02-02
SpringBoot?+?Disruptor實現(xiàn)特快高并發(fā)處理及使用Disruptor高速實現(xiàn)隊列的過程
Disruptor是一個開源的Java框架,它被設(shè)計用于在生產(chǎn)者—消費者(producer-consumer problem,簡稱PCP)問題上獲得盡量高的吞吐量(TPS)和盡量低的延遲,這篇文章主要介紹了SpringBoot?+?Disruptor?實現(xiàn)特快高并發(fā)處理,使用Disruptor高速實現(xiàn)隊列,需要的朋友可以參考下2023-11-11
SpringBoot集成MybatisPlus報錯的解決方案
這篇文章主要介紹了SpringBoot集成MybatisPlus報錯的解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-12-12

