Spring security 未动态计算SPEL表达式

Spring security 未动态计算SPEL表达式,spring-security,spring-el,Spring Security,Spring El,我正在尝试使用spring安全性过滤URL。以下是筛选的定义: URL是基于名为file_path的文件的存在而受到限制的 如果加载spring配置文件时存在文件_路径,则提供访问权限。如果文件路径是在加载后创建的,则不提供访问权限。我希望每次请求/page时都对表达式求值&而不仅仅是在编译表达式时 试图设置系统属性-Dspring.expression.compiler.mode=MIXED,但没有效果 有人能帮我吗?这是正确的,因为您使用了配置时间表达式({…})。要实现这些要求,您应该使

我正在尝试使用spring安全性过滤URL。以下是筛选的定义:

URL是基于名为file_path的文件的存在而受到限制的

如果加载spring配置文件时存在文件_路径,则提供访问权限。如果文件路径是在加载后创建的,则不提供访问权限。我希望每次请求/page时都对表达式求值&而不仅仅是在编译表达式时

试图设置系统属性-Dspring.expression.compiler.mode=MIXED,但没有效果


有人能帮我吗?

这是正确的,因为您使用了
配置时间
表达式(
{…}
)。要实现这些要求,您应该使用以下内容:

<http use-expressions="true">
    <intercept-url pattern="/admin*"
           access="hasRole('admin') and hasIpAddress('192.168.1.0/24')"/>
</http>
<http use-expressions="true">
    <intercept-url pattern="/page" access="new java.io.File('file_path').exists()"/>
</http>

看。因此,在您的情况下,它可以是这样的:

<http use-expressions="true">
    <intercept-url pattern="/admin*"
           access="hasRole('admin') and hasIpAddress('192.168.1.0/24')"/>
</http>
<http use-expressions="true">
    <intercept-url pattern="/page" access="new java.io.File('file_path').exists()"/>
</http>