SpringBoot?整合Security權限控制的初步配置
更新時間:2022年11月10日 15:50:20 作者:EdurtIO
這篇文章主要為大家介紹了SpringBoot?整合Security權限控制的初步配置實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
正文
在源碼目錄下新建 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訪問授權
@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()
// 其他路徑需要授權訪問
.anyRequest().authenticated()
// 指定登錄頁面
.and().formLogin().loginPage("/user/login")
// 登錄成功后的默認路徑
.defaultSuccessUrl("/").permitAll()
// 退出登錄后的默認路徑
.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 會自動跳轉到用戶登錄頁面, 輸入賬號和密碼出現(xiàn)賬號密碼校驗頁面
以上就是SpringBoot 整合Security權限控制的初步配置的詳細內容,更多關于SpringBoot整合Security配置的資料請關注腳本之家其它相關文章!
相關文章
創(chuàng)建好SpringBoot項目后但是找不到Maven的解決方法
在使用IDEA專業(yè)版創(chuàng)建好SpringBoot項目后,發(fā)現(xiàn)上方導航欄的運行按鈕是灰色的,而且左側導航欄的pom.xml的圖標顏色也不是正常的,點開右側導航欄的Maven后,發(fā)現(xiàn)Maven找不到,所以本文介紹了創(chuàng)建好SpringBoot項目后但是找不到Maven的解決方法,需要的朋友可以參考下2024-10-10
RabbitMQ消費者限流實現(xiàn)消息處理優(yōu)化
這篇文章主要介紹了RabbitMQ消費者限流實現(xiàn)消息處理優(yōu)化,消費者限流是用于消費者每次獲取消息時限制條數(shù),注意前提是手動確認模式,并且在手動確認后才能獲取到消息,感興趣想要詳細了解可以參考下文2023-05-05
JAVA通過Filter實現(xiàn)允許服務跨域請求的方法
這里的域指的是這樣的一個概念:我們認為若協(xié)議 + 域名 + 端口號均相同,那么就是同域即我們常說的瀏覽器請求的同源策略。這篇文章主要介紹了JAVA通過Filter實現(xiàn)允許服務跨域請求,需要的朋友可以參考下2018-11-11
java中判斷字段真實長度的實例(中文2個字符,英文1個字符)
下面小編就為大家?guī)硪黄猨ava中判斷字段真實長度的實例(中文2個字符,英文1個字符)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
Spring Boot集成Sorl搜索客戶端的實現(xiàn)代碼
本篇文章主要介紹了Spring Boot集成Sorl搜索客戶端的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11

