package com.tech.security.securityservice.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.config.annotation.authentication.configuration.AuthenticationConfiguration;
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.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.access.AccessDeniedHandler;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
/**
* @author sl
*/
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
@Configuration
public class SecurityConfig {
@Autowired
private JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter;
@Autowired
private AuthenticationEntryPoint authenticationEntryPoint;
@Autowired
private AccessDeniedHandler accessDeniedHandler;
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
@Bean
public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception {
return authenticationConfiguration.getAuthenticationManager();
}
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {
httpSecurity.csrf().disable();
httpSecurity.authorizeRequests()
.antMatchers("/user/login").anonymous()
// 基于配置的权限处理
// .antMatchers("/audit").hasAuthority("audit")
.anyRequest().authenticated()
.and()
.formLogin();
// 在UsernamePasswordAuthenticationFilter之前添加自定义token前置过滤器
httpSecurity.addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
// 自定义认证失败和权限处理失败处理器
httpSecurity.exceptionHandling().authenticationEntryPoint(authenticationEntryPoint).accessDeniedHandler(accessDeniedHandler);
// 允许跨越
httpSecurity.cors();
return httpSecurity.build();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
spring security 认证授权实现
共25个文件
java:21个
xml:2个
yml:1个
需积分: 5 0 下载量 84 浏览量
2023-10-14
23:43:16
上传
评论
收藏 23KB ZIP 举报
温馨提示
项目包含认证实现和jwt结合内容 项目使用redis cluster 和mybatis-plus 技术 项目包含建库脚本,一键使用,现成的认证授权框架 本项目不包含oauth2.0开放授权的内容
资源推荐
资源详情
资源评论
收起资源包目录
security-service.zip (25个子文件)
security-service
pom.xml 3KB
src
test
java
com
tech
security
securityservice
SecurityServiceApplicationTests.java 243B
main
resources
mapper
PermMapper.xml 661B
templates
static
application.yml 545B
java
com
tech
security
securityservice
mapper
UserMapper.java 329B
PermMapper.java 391B
controller
LoginController.java 797B
TestSecurityAccessController.java 1KB
SecurityServiceApplication.java 550B
service
UserService.java 239B
impl
SecurityUserDetailServiceImpl.java 2KB
UserServiceImpl.java 2KB
AuthenticationEntryPointImpl.java 1KB
AccessDeniedHandlerImpl.java 1KB
model
LoginUser.java 2KB
Role.java 594B
Perm.java 624B
User.java 442B
util
WebUtils.java 692B
JwtTokenUtils.java 2KB
config
SecurityConfig.java 3KB
MyAccessHandler.java 875B
JwtAuthenticationTokenFilter.java 2KB
result
Result.java 695B
security_db
security_db.sql 3KB
共 25 条
- 1
资源评论
小趴菜不能喝
- 粉丝: 94
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现夜间车牌识别程序(1).rar
- 基于matlab实现图像处理,本程序使用背景差分法对来往车辆进行检测和跟踪.rar
- 基于matlab实现视频监控中车型识别代码,自己写的,希望和大家多多交流.rar
- sdk.config
- 基于matlab实现配电网三相潮流计算方法,对几种常用的配电网潮流计算方法进行了对比分析.rar
- 基于matlab实现配电网潮流 经典33节点 前推回代法潮流计算 回代电流 前推电压 带注释.rar
- 基于matlab实现模拟退火遗传算法的车辆调度问题研究,用MATLAB语言加以实现.rar
- 基于matlab实现蒙特卡洛的的移动传感器节点定位算法仿真代码.rar
- 华中数控系统818用户说明书
- 基于matlab实现卡尔曼滤波器完成多传感器数据融合 对多个机器人的不同传感器数据进行融合估计足球精确位置.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功