相关疑难解决方法(0)

具有路径变量和ant匹配器的Spring Security自定义方法

我使用java配置的spring boot,web MVC和spring security.我的网址是"RESTful",并希望添加自定义授权方法.

例如:

.antMatchers("/path/*/**").access("@myBean.authorise()")
Run Code Online (Sandbox Code Playgroud)

我希望实现这样的目标:

.antMatchers("/path/{token}/**").access("@myBean.authorise(token)")
Run Code Online (Sandbox Code Playgroud)

我明白我可以通过HttpServletRequest并手动剥离路径,但我想避免这种情况!也不太热衷于方法级别的安全性,宁愿将配置保存在一个地方,因为我有很多控制器.

谢谢!

java spring spring-mvc spring-security

9
推荐指数
1
解决办法
3642
查看次数

基于路径变量的弹簧安全性授权

我的用例是基于@PathVariable参数进行身份验证然后授权用户。我需要执行一些自定义代码来授权主体。我不确定采取的方法-

  1. 我已经实现了用于身份验证的自定义AbstractAuthenticationProcessingFilter&AuthenticationProvider,最终将角色授予主体。我可以检查servlet请求中的路径变量(使用HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE),并将其他权限添加到身份验证令牌。然后,我可以使用内置的hasRole,hasPermission表达式来实现访问控制。

  2. 我可以扩展WebSecurityExpressionRoot并实现自定义AbstractSecurityExpressionHandler并定义我自己的表达式,以在拦截URL访问控制表达式中使用。我不确定在WebSecurityExpressionRoot实现中定义自定义方法时如何访问@PathVariables。

哪种方法更可取,或者有其他方法可以完全做到这一点?

spring spring-security

5
推荐指数
2
解决办法
3100
查看次数

标签 统计

spring ×2

spring-security ×2

java ×1

spring-mvc ×1