SpringBoot?整合Security權(quán)限控制的初步配置
正文
在源碼目錄下新建 config 目錄, 在該目錄下新建 WebSecurityConfig 類文件
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.edurt.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.encoding.Md5PasswordEncoder;
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.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
/**
* WebSecurityConfig <br/>
* 描述 : WebSecurityConfig <br/>
* 作者 : qianmoQ <br/>
* 版本 : 1.0 <br/>
* 創(chuàng)建時間 : 2018-03-15 下午3:18 <br/>
* 聯(lián)系作者 : <a href="mailTo:shichengoooo@163.com" rel="external nofollow" >qianmoQ</a>
*/
@Configuration
// 開啟security訪問授權(quán)
@EnableWebSecurity
// 開啟security注解模式
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
@Override
protected AuthenticationManager authenticationManager() throws Exception {
return super.authenticationManager();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
// 允許直接訪問/路徑
http.authorizeRequests().antMatchers("/").permitAll()
// 其他路徑需要授權(quán)訪問
.anyRequest().authenticated()
// 指定登錄頁面
.and().formLogin().loginPage("/user/login")
// 登錄成功后的默認(rèn)路徑
.defaultSuccessUrl("/").permitAll()
// 退出登錄后的默認(rèn)路徑
.and().logout().logoutSuccessUrl("/user/login").permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
// 配置用戶登錄檢索策略
auth.userDetailsService(userDetailsService())
// 配置密碼策略
.passwordEncoder(passwordEncoder());
// auth.inMemoryAuthentication().withUser("user").password("123456").roles("USER")
// .and().withUser("admin").password("123456").roles("ADMIN");
}
@Bean
public Md5PasswordEncoder passwordEncoder() {
return new Md5PasswordEncoder();
}
@Bean
public UserDetailsService userDetailsService() {
InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
// 創(chuàng)建模擬用戶
manager.createUser(User.withUsername("user").password("123456").roles("USER").build());
manager.createUser(User.withUsername("admin").password("123456").roles("ADMIN").build());
return manager;
}
}瀏覽器打開 http://localhost:8080/home 會自動跳轉(zhuǎn)到用戶登錄頁面, 輸入賬號和密碼出現(xiàn)賬號密碼校驗(yàn)頁面
以上就是SpringBoot 整合Security權(quán)限控制的初步配置的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot整合Security配置的資料請關(guān)注腳本之家其它相關(guān)文章!
- Spring gateway配置Spring Security實(shí)現(xiàn)統(tǒng)一權(quán)限驗(yàn)證與授權(quán)示例源碼
- 解決Spring Security的權(quán)限配置不生效問題
- 關(guān)于SpringSecurity配置403權(quán)限訪問頁面的完整代碼
- SpringBoot--- SpringSecurity進(jìn)行注銷權(quán)限控制的配置方法
- spring security動態(tài)配置url權(quán)限的2種實(shí)現(xiàn)方法
- Spring Security基于HttpRequest配置權(quán)限示例詳解
相關(guān)文章
創(chuàng)建好SpringBoot項(xiàng)目后但是找不到Maven的解決方法
在使用IDEA專業(yè)版創(chuàng)建好SpringBoot項(xiàng)目后,發(fā)現(xiàn)上方導(dǎo)航欄的運(yùn)行按鈕是灰色的,而且左側(cè)導(dǎo)航欄的pom.xml的圖標(biāo)顏色也不是正常的,點(diǎn)開右側(cè)導(dǎo)航欄的Maven后,發(fā)現(xiàn)Maven找不到,所以本文介紹了創(chuàng)建好SpringBoot項(xiàng)目后但是找不到Maven的解決方法,需要的朋友可以參考下2024-10-10
RabbitMQ消費(fèi)者限流實(shí)現(xiàn)消息處理優(yōu)化
這篇文章主要介紹了RabbitMQ消費(fèi)者限流實(shí)現(xiàn)消息處理優(yōu)化,消費(fèi)者限流是用于消費(fèi)者每次獲取消息時限制條數(shù),注意前提是手動確認(rèn)模式,并且在手動確認(rèn)后才能獲取到消息,感興趣想要詳細(xì)了解可以參考下文2023-05-05
JAVA通過Filter實(shí)現(xiàn)允許服務(wù)跨域請求的方法
這里的域指的是這樣的一個概念:我們認(rèn)為若協(xié)議 + 域名 + 端口號均相同,那么就是同域即我們常說的瀏覽器請求的同源策略。這篇文章主要介紹了JAVA通過Filter實(shí)現(xiàn)允許服務(wù)跨域請求,需要的朋友可以參考下2018-11-11
java中判斷字段真實(shí)長度的實(shí)例(中文2個字符,英文1個字符)
下面小編就為大家?guī)硪黄猨ava中判斷字段真實(shí)長度的實(shí)例(中文2個字符,英文1個字符)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
Spring Boot集成Sorl搜索客戶端的實(shí)現(xiàn)代碼
本篇文章主要介紹了Spring Boot集成Sorl搜索客戶端的實(shí)現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
java的Jackson將json字符串轉(zhuǎn)換成泛型List
這篇文章主要介紹了java的Jackson將json字符串轉(zhuǎn)換成泛型List ,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。2017-02-02

