Spring Security學(xué)習(xí)筆記(一)
介紹
這里學(xué)習(xí)SpringSecurity,對(duì)SpringSecurity進(jìn)行學(xué)習(xí)。
基本用法
添加依賴(lài)
<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";
}
}
啟動(dòng)項(xiàng)目
可以看到日志中,已經(jīng)有了密碼

訪(fǎng)問(wèn)接口,此時(shí)已經(jīng)有了登錄頁(yè)面

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

此時(shí)已經(jīng)登錄成功
配置用戶(hù)名和密碼
在配置文件中,進(jìn)行配置
spring:
security:
user:
name: ming
password: 123456
roles: admin
輸入用戶(hù)名和密碼,可以正常登錄
基于內(nèi)存的認(rèn)證
需要自定義類(lèi)繼承 WebSecurityConfigurerAdapter
實(shí)現(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
這里對(duì)某些方法進(jìn)行攔截
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)存的用戶(hù)存儲(chǔ)
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("itguang").password("123456").roles("USER").and()
.withUser("admin").password("{noop}" + "123456").roles("ADMIN");
}
//請(qǐng)求攔截
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().permitAll()
.and()
.formLogin()
.permitAll()
.and()
.logout()
.permitAll();
}
}
這里成功完成了post請(qǐng)求進(jìn)行登錄驗(yàn)證。
以上就是Spring Security學(xué)習(xí)筆記(一)的詳細(xì)內(nèi)容,更多關(guān)于Spring Security的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 詳解springSecurity之java配置篇
- Java開(kāi)發(fā)之spring security實(shí)現(xiàn)基于MongoDB的認(rèn)證功能
- java中Spring Security的實(shí)例詳解
- Java中SpringSecurity密碼錯(cuò)誤5次鎖定用戶(hù)的實(shí)現(xiàn)方法
- java中自定義Spring Security權(quán)限控制管理示例(實(shí)戰(zhàn)篇)
- JavaWeb開(kāi)發(fā)之Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基礎(chǔ)框架
- Spring Security+Spring Data Jpa如何進(jìn)行安全管理
- Spring Security 將用戶(hù)數(shù)據(jù)存入數(shù)據(jù)庫(kù)
- Spring Security OAuth2 授權(quán)碼模式的實(shí)現(xiàn)
- Spring Security基于數(shù)據(jù)庫(kù)實(shí)現(xiàn)認(rèn)證過(guò)程解析
- SpringBoot整合Spring Security的詳細(xì)教程
- 手把手帶你入門(mén) Spring Security的具體流程
相關(guān)文章
Java利用位運(yùn)算實(shí)現(xiàn)加減運(yùn)算詳解
這篇文章主要為大家介紹了如何使用位運(yùn)算來(lái)實(shí)現(xiàn)加減功能,也就是在整個(gè)運(yùn)算過(guò)程中不能出現(xiàn)加減符號(hào)。文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-12-12
Android應(yīng)用開(kāi)發(fā)的一般文件組織結(jié)構(gòu)講解
這篇文章主要介紹了Android應(yīng)用開(kāi)發(fā)的一般文件組織結(jié)構(gòu)講解,同時(shí)附帶介紹了一個(gè)獲取Android的文件列表的方法,需要的朋友可以參考下2015-12-12
java實(shí)現(xiàn)發(fā)送郵件的示例代碼
這篇文章主要介紹了java如何實(shí)現(xiàn)發(fā)送郵件,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
Apache Commons fileUpload文件上傳多個(gè)示例分享
這篇文章主要為大家分享了Apache Commons fileUpload文件上傳4個(gè)示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
Spring中InitializingBean的使用詳細(xì)解析
這篇文章主要介紹了Spring中InitializingBean的使用詳細(xì)解析,InitializingBean是Spring提供的拓展性接口,提供了屬性初始化后的處理方法,它只有一個(gè)afterPropertiesSet方法,凡是繼承該接口的類(lèi),在bean的屬性初始化后都會(huì)執(zhí)行該方法,需要的朋友可以參考下2024-02-02
Restful之通用返回格式類(lèi)設(shè)計(jì)
這篇文章主要介紹了Restful之通用返回格式類(lèi)設(shè)計(jì),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
SpringBoot?+?Disruptor實(shí)現(xiàn)特快高并發(fā)處理及使用Disruptor高速實(shí)現(xiàn)隊(duì)列的過(guò)程
Disruptor是一個(gè)開(kāi)源的Java框架,它被設(shè)計(jì)用于在生產(chǎn)者—消費(fèi)者(producer-consumer problem,簡(jiǎn)稱(chēng)PCP)問(wèn)題上獲得盡量高的吞吐量(TPS)和盡量低的延遲,這篇文章主要介紹了SpringBoot?+?Disruptor?實(shí)現(xiàn)特快高并發(fā)處理,使用Disruptor高速實(shí)現(xiàn)隊(duì)列,需要的朋友可以參考下2023-11-11
SpringBoot集成MybatisPlus報(bào)錯(cuò)的解決方案
這篇文章主要介紹了SpringBoot集成MybatisPlus報(bào)錯(cuò)的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
掌握模塊化開(kāi)發(fā)Spring Boot子模塊使用技巧
這篇文章主要為大家介紹了掌握模塊化開(kāi)發(fā)Spring Boot子模塊使用技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06

