package com.fashion.config;
import com.fashion.security.UrlAntPatchMetadataSource;
import com.fashion.security.UserServiceDetailImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.ObjectPostProcessor;
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.WebSecurityConfigurerAdapter;
import org.springframework.security.config.annotation.web.configurers.UrlAuthorizationConfigurer;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.web.access.intercept.FilterSecurityInterceptor;
/**
* Created with IntelliJ IDEA.
* User: LQ
* Date: 2024/09/10 11:49
* Description: spring security 配置
*/
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
@Autowired
private UrlAntPatchMetadataSource urlAntPatchMetadataSource;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
// 1、获取工厂对象
ApplicationContext applicationContext = http.getSharedObject(ApplicationContext.class);
// 2、设置自定义url 匹配规则
http.apply(new UrlAuthorizationConfigurer<>(applicationContext))
.withObjectPostProcessor(new ObjectPostProcessor<FilterSecurityInterceptor>() {
@Override
public <O extends FilterSecurityInterceptor> O postProcess(O object) {
object.setSecurityMetadataSource(urlAntPatchMetadataSource);
// 如果没有权限是否拒绝
object.setRejectPublicInvocations(true);
return object;
}
});
http.authorizeRequests()
.anyRequest().authenticated()
.and().formLogin()//开启表单登录
.and().csrf().disable();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
spring security 自定义动态权限
共39个文件
class:14个
java:13个
xml:9个
需积分: 3 0 下载量 96 浏览量
2024-09-10
14:57:41
上传
评论
收藏 32KB RAR 举报
温馨提示
当我们配置的 URL 拦截规则请求 URL 所需要的权限都是通过代码来配置的,这样就比较死板,如果想要调整访问某一个 URL 所需要的权限,就需要修改代码。动态管理权限规则就是我们将UR 拦截规则和访问 URI 所需要的权限都保存在数据库中,这样,在不修改源代码的情况下,只需要修改数据库中的数据,就可以对权限进行调整。
资源推荐
资源详情
资源评论
收起资源包目录
spring-security-dynamic-authorize.rar (39个子文件)
spring-security-dynamic-authorize
pom.xml 3KB
src
test
java
main
resources
mybatis
mapper
mysql
AuthorityMenuDao.xml 1KB
AuthorityUserDao.xml 4KB
AuthorityRoleDao.xml 3KB
mybatis-config.xml 349B
application.yml 25B
java
com
fashion
mapper
mysql
AuthorityUserDao.java 583B
AuthorityRoleDao.java 611B
AuthorityMenuDao.java 311B
security
UserDetailInf.java 2KB
UserServiceDetailImpl.java 2KB
UrlAntPatchMetadataSource.java 2KB
SpringSecurityDynamicApplication.java 458B
controller
HelloController.java 774B
service
model
AuthorityRole.java 412B
AuthorityUser.java 566B
AuthorityMenu.java 430B
config
SecurityConfiguration.java 3KB
MysqlDsConfiguration.java 2KB
target
classes
mybatis
mapper
mysql
AuthorityMenuDao.xml 1KB
AuthorityUserDao.xml 4KB
AuthorityRoleDao.xml 3KB
mybatis-config.xml 349B
application.yml 25B
com
fashion
SpringSecurityDynamicApplication.class 774B
mapper
mysql
AuthorityUserDao.class 620B
AuthorityMenuDao.class 377B
AuthorityRoleDao.class 678B
security
UserServiceDetailImpl.class 2KB
UserDetailInf.class 3KB
UrlAntPatchMetadataSource.class 4KB
controller
HelloController.class 958B
model
AuthorityUser.class 3KB
AuthorityRole.class 2KB
AuthorityMenu.class 3KB
config
SecurityConfiguration.class 4KB
MysqlDsConfiguration.class 3KB
SecurityConfiguration$1.class 2KB
generated-sources
annotations
spring-security-dynamic-authorize.iml 81B
共 39 条
- 1
资源评论
星空寻流年
- 粉丝: 1085
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 光伏储能同步发电机VSG并网仿真模型C 光伏阵列搭建的光伏电池模型 光伏:采用扰动观察法最大功率点MPPT跟踪控制 储能:蓄电池
- 光伏MPPT同步发电机(VSG)并网仿真模型 结构:前级光伏板采用扰动观察法最大功率跟踪给定值,然后将该功率通过直流母线电容电压
- 淘小说 10.0.2会员版_暗影.apk
- 基于Java、CSS、JavaScript的菜谱制作与展示设计源码
- 带负载转矩前馈补偿的永磁同步电机无感FOC 1.采用龙伯格负载转矩观测器,可快速准确观测到负载转矩; 2.将观测到的负载转矩用作
- 基于Java语言的学习实践项目设计源码
- 基于Java语言的文件共享与AES加密的Web端设计源码
- 基于Html和JavaScript的图片展示设计源码
- 基于Python开发的智慧养老系统算法端设计源码
- 基于Python和CSS的Chrome插件英雄榜中文说明书设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功