问题标签 [spring-el]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-security - @PreAuthorize:实现类中的引用属性
我有服务接口
和抽象实现
的每个实现都Compound
需要它自己的扩展服务接口CompoundService
和它自己的扩展服务类CompoundServiceImpl
。
我现在想在CompoundService
. 据我了解,我必须将它们添加到接口而不是实际实现中。由于用户可以针对不同的实现具有不同的角色Compound
,因此我必须考虑到这一点。意思是@PreAuthorize
我想获得Compound
实现的名称,例如。compoundClass.getSimpleName()
. 所以我得到类似的东西:
这基本上就是这里提到的:
https://jira.springsource.org/browse/SEC-1640
但是没有示例,我并没有真正得到解决方案。那我应该用this
吗?或如上#root.this
?
我的第二个问题是,因为这是在一个将由代理(来自 spring)实现的接口中,所以 experession 是否会this.compoundClass
正确评估?
最后但并非最不重要的一点是,我该如何实际测试呢?*
* 我实际上并没有创建一个完成的应用程序,而是一些可配置的东西,比如用于特定类型数据库搜索的框架。这意味着大多数授权和身份验证的东西必须来自实施者。
spring-el - 用于 ThymeLeaf 的自定义 SpEL 函数
ThymeLeaf newb 问题在这里:我想注册一个自定义 SpEL 实用程序对象以提供一些自定义格式。Spring EL 文档说我应该使用StandardEvaluationContext.registerFunction() 来执行此操作,这很好,但我希望它可用于我的 ThymeLeaf 模板中的所有 SpEL 函数。我认为这是在 servlet 上下文 XML 中完成的,但我不知道如何去做,也找不到解释如何去做的 ThymeLeaf 文档。
java - FullAjaxExceptionhandler 只捕获 javax.el.ELException 或 java.lang.Throwable
FullAjacExceptionHandler 只能捕获 javax.el.ELException 或 java.lang.Throwable。Throwable 也优先于 javax.el.ELException。我需要显式捕获托管 bean 抛出的特定异常。但是,ELException 显然包含了根本原因异常(即 LoginFailedException)。
我正在使用 JSF 2 (MyFaces 2.1.10)、Spring EL resolver (Spring managed beans)、el-api-2.2 和 glassfish el-impl-2.2。
这是错误:
LoginFailedException 是一个简单的自定义异常。我将不胜感激任何帮助。提前致谢。
编辑:实验完成:
我创建了 3 个错误页面,以查看在引发 LoginFailedException 时将调用/使用哪个错误页面。XHTML 错误页面包含完全相同的代码,但标头 String 标识哪个是哪个。这是 web.xml 错误条目:
将使用 catchAllThrowable.xhtml。如果我删除(在 web.xml 上注释掉) Throwable ,将使用 ELException.xhtml。如果我删除 ELException,异常将由容器(tomcat)而不是 loginError.xhtml 处理。
希望这能澄清我的情况。
更新:
我现在使用 AJAX 调用来提交表单(我想这是处理程序的用途),所有 3 个错误处理程序页面都在 web.xml 上处于活动状态(Throwable、ELException、LoginFailedException):
Throwable 已被跳过,并且 ELException 已匹配(呈现 elException.xhtml)。仍然无法将 LoginFailedException 归零。
java - Linux 中的 Spring PropertyPlaceholderConfigurer
在 applicationContext.xml 中配置:
我已经在我的用户和 root 的 .bashrc 文件中设置了环境变量,就像这样
在启动 tomcat 时出现错误
我也试过这样:
这次我得到了错误
这意味着 SpEL 在 applicationContext.xml 中可以正常工作,但无法从系统环境中获取变量。
为了检查值是否设置正确,我运行echo ${WEB_ENVIRONMENT}
并正确返回了值。因此,要检查 java 是否能够从我运行的环境中获取值
这也正确返回了“prod”
两个版本都在 Windows 中运行,但不在 Amazon EC2 的 Linux AMI中。
接下来我应该怎么做才能让它工作?
java - . bean 名称中的字符并在 SpEL 中使用
我有一个简单的弹簧上下文文件如下:
当我初始化上述上下文时,出现以下错误:
当我将acl.provider
bean 名称更改为aclprovider
(删除.
字符)时,一切正常。
我的问题是:为什么.
字符在 bean 名称中使用并在中使用SpEL
?
java - Spring Security 方法规则:返回值包含一个 Collection
在 Spring Security 中,我想保护一个包含返回值并使用@PostAuthorize
.
我想添加一个约束,不允许一个用户访问他们不是所有者的资源。我面临的问题是我想根据一组值检查主体 ID。
设想:
域对象:
服务:
当然,这个 Spel 表达式不起作用。
我还没有看到任何适用于 Collection 的示例。 这个未解决的问题类似,但我不知道是否符合我的特定情况。有可能做这样的事情吗?这是做我想做的事情的另一种方式吗?
java - 评估 Spring Expression Lang (SpEL) 中的属性
我们的服务有一个根据属性文件安排的进程,读取属性refreshIntervalMillis。它的值通过以下配置直接注入到 Quartz 触发器中:
但是,安装此服务的管理员会考虑小时/天数,因此为了让他们更轻松,我们将其更改为:
- 将refreshIntervalMillis重命名为refreshIntervalMinutes
- 将上面的代码更改为以下内容:
注意:属性对象公开为名为“configurationProperties”的 bean
是否有更简单的语法来完成相同的操作?
谢谢,
java - Spring EL:带地图访问的安全导航
我正在使用 Spring EL 从一组相当复杂的嵌套映射和列表中提取值。我希望能够使用类似的表达式
除了那[9]['firstSubKey']
可能是空的。我不知道如何正确使用安全导航:我试过了
和
并且都返回了某种解析错误。我最终通过使用它来工作
但这感觉很俗气。有没有更好的方法或者这只是 SpringEL 没有的功能?我正在使用 Spring 3.1.3。
相关地,如果我有一个未知数量元素的列表/数组,有没有办法安全地检查它?IE 如果我有一个包含 4 个元素的数组,我想[5]
返回 null。照原样,它抛出一个SpelEvaluationException
.
spring - 等效于 \r、\n、\t 等的 Spring 表达式语言
我正在使用 Spring 集成。我得到一个字符串(有效负载),如下所示:
我需要测试上面的字符串<Element><Sub-Element>
是否以实际 开头<Element>\r\n <Sub-Element>.
理想情况下,第一个路由器应该通过测试,但在这种情况下它失败了。谁能帮我找出 SpEL 等价于 \r \n 等?
spring - SpEL 使用函数
我将下一个 bean 添加到我的 xml 中:
现在,当我运行应用程序时,它处于循环状态:
没有那个bean,它就可以正常工作。