Spring Security 匹配Restful url

简介: Spring Security 匹配Restful url

Spring Security 匹配Restful url

由于项目中使用到了restful风格的url,url中的变量问题,导致权限校验这里变得棘手起来

这里介绍两种方案

  • 方案一
    这里刚刚开始使用的方案,方法是利用String的正则匹配,将带有变量的url以正则的形式存放起来,当有请求时,使用该带有正则表达式的url去匹配请求的url。
  • 方案二
    这是我更改后的解决方案,主要是用到SpringMvc的HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE
    但是由于spring security的filter执行在springmvc之前,因而在spring security里头的filter无法获取BEST_MATCHING_PATTERN_ATTRIBUTE
    所以我们需要先从RequestMappingHandlerMapping入手,获取handler。
    首先在类中注入RequestMappingHandlerMapping

java

  • 01
  • 02
@Autowired
RequestMappingHandlerMapping handlerMapping;

接着,我们便可以使用一下代码获取urlPattern

java

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
try {
            handlerMapping.getHandler(request);
        } catch (Exception e) {
            e.printStackTrace();
        }
        StringurlPattern= (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);

我们会得到一个这样的urlPatternlocalhost:8080/user/{name}

至此,便大功告成了

目录
相关文章
|
JSON 安全 Java
什么是JWT?如何使用Spring Boot Security实现它?
什么是JWT?如何使用Spring Boot Security实现它?
2365 5
|
12月前
|
数据采集 人工智能 Java
1天消化完Spring全家桶文档!DevDocs:一键深度解析开发文档,自动发现子URL并建立图谱
DevDocs是一款基于智能爬虫技术的开源工具,支持1-5层深度网站结构解析,能将技术文档处理时间从数周缩短至几小时,并提供Markdown/JSON格式输出与AI工具无缝集成。
524 1
1天消化完Spring全家桶文档!DevDocs:一键深度解析开发文档,自动发现子URL并建立图谱
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
475 4
|
Java API 数据库
如何使用Spring Boot构建RESTful API,以在线图书管理系统为例
【10月更文挑战第9天】本文介绍了如何使用Spring Boot构建RESTful API,以在线图书管理系统为例,从项目搭建、实体类定义、数据访问层创建、业务逻辑处理到RESTful API的实现,详细展示了每个步骤。通过Spring Boot的简洁配置和强大功能,开发者可以高效地开发出功能完备、易于维护的Web应用。
481 3
|
安全 Java 数据安全/隐私保护
使用Spring Security实现细粒度的权限控制
使用Spring Security实现细粒度的权限控制
|
安全 Java 数据库
实现基于Spring Security的权限管理系统
实现基于Spring Security的权限管理系统
|
安全 Java 数据安全/隐私保护
解析Spring Security中的权限控制策略
解析Spring Security中的权限控制策略
|
Java Spring
成功解决Initialization failed for ‘https://start.spring.io‘ Please check URL, network and proxy settings
这篇文章提供了解决Spring Initializr网站初始化失败问题的方法,包括检查URL、网络和代理设置。
成功解决Initialization failed for ‘https://start.spring.io‘ Please check URL, network and proxy settings
|
缓存 Java 应用服务中间件
随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架
【9月更文挑战第6天】随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架。Nginx作为高性能的HTTP反向代理服务器,常用于前端负载均衡,提升应用的可用性和响应速度。本文详细介绍如何通过合理配置实现Spring Boot与Nginx的高效协同工作,包括负载均衡策略、静态资源缓存、数据压缩传输及Spring Boot内部优化(如线程池配置、缓存策略等)。通过这些方法,开发者可以显著提升系统的整体性能,打造高性能、高可用的Web应用。
283 2
|
安全 Java 数据安全/隐私保护
Spring 安全配置中拦截 URL 的顺序重要性
【8月更文挑战第21天】
283 1

热门文章

最新文章