从Spring Security Expressions调用静态方法?

dsekswqp  于 2023-05-27  发布在  Spring
关注(0)|答案(1)|浏览(158)

我正在寻找一种扩展Spring Security Expressions以支持现有安全基础设施的方法。我知道你可以像这里描述的那样扩展MethodSecurityExpressionRoot,但我也发现reference可以通过Spring Expression Language(Spring EL或SpEL)直接调用静态方法。不幸的是,Spring Expression方法上的official page并没有直接描述如何做到这一点。
如何通过Spring Expression方法调用静态方法?

0sgqnhkj

0sgqnhkj1#

使用T(fully.qualified.name).methodName()语法:
您可以使用特殊的T运算符来指定java.lang.Class(类型)的示例。静态方法也可以使用此操作符调用。StandardEvaluationContext使用TypeLocator查找类型,StandardTypeLocator(可以替换)是在理解java.lang包的情况下构建的。这意味着T()java.lang中的类型的引用不需要完全限定,但所有其他类型引用必须完全限定。
T元素返回对类型的引用,而不是示例。例如,Collections.singleton("Hello")的等效值为

T(java.util.Collections).singleton('Hello')

相关问题