将属性文件或xml文件中的属性值注入预授权(…)java注释(未解析)
我在之前的帖子中问过这个问题:。但这还没有解决。我想将xml配置或外部文件中的值注入到将属性文件或xml文件中的属性值注入预授权(…)java注释(未解析),java,spring,spring-security,spring-annotations,spring-el,Java,Spring,Spring Security,Spring Annotations,Spring El,我在之前的帖子中问过这个问题:。但这还没有解决。我想将xml配置或外部文件中的值注入到@PreAuthorize(…)注释中。它不像使用@Value注释进行注入那样容易 为了回顾这个问题,我提供了以下信息 我有以下xml配置文件(example.xml),它 具有属性并初始化其相应的值 我有以下外部属性文件 (例如.properties)位于/WEB-INF文件夹中。此文件是一个 上述XML配置文件的备选方案 user.id = 33 customer.id =33 我的applicat
@PreAuthorize(…)
注释中。它不像使用@Value
注释进行注入那样容易
为了回顾这个问题,我提供了以下信息
user.id = 33
customer.id =33
User
和Customer
公共类用户{
私有int用户id;
public int getUserId(){
返回用户标识;
}
}
公共类客户{
私人int客户ID;
public int getCustomerId(){
返回客户ID;
}
}
@PreAuthorize
注释执行'edit'
方法
限制
:允许该方法(授权执行)
当且仅当'userId'
和'customerId'
的计算结果相等
为了实现这一限制,我想考虑两种方式:
'userId'
和'customerId'
值注入下面的表达式1。我在英语中使用的表达方式
这是Rob Winch建议的(谢谢Rob!)。然而,春天
无法计算表达式的值'userId'
和'customerId'
值注入表达式2中
在下面类似地,spring也不能计算这个表达式
@服务(“..”)或@Controller
公共类MyMainClass{
//表达式1
@预授权(“@userBean.userId==@customerBean.customerId”)
公共布尔编辑(用户用户、客户客户){
返回true;
}
//表达式2
////我也尝试过其他方法,但最终也有类似的例外
@预授权(${user.id}=${customer.id}”)
公共布尔编辑(用户、客户){
返回true;
}
}
@PreAuthorize(…)
表达式中,我必须在@PreAuthorize
注释中放入哪些正确的表达式,然后才能轻松地对其进行计算
问题2。如果我犯了表达以外的错误,请告诉我
第三季度。这对我来说就像是一个价值1000000.00美元的问题,因为我已经厌倦了解决这个问题!!!。所以请尽你所能帮助我 如果您正在使用属性文件,并且希望在控制器类中访问它们,则必须在servlet上下文xml文件中添加
,然后可以使用@Value注释来获取该属性的值。例如
my.properties
文件包含some.userid=33
,因此您可以使用以下方法访问此属性:
@Value("${some.userid}")
private int someId;
但为了确保测试的目的,我会将IgnoreUnsolvablePlaceholders设置为false,如果它无法解析属性文件,我会知道错误的来源
希望有帮助。您的第二个表达式只在
@Value
注释中起作用,因为这些注释指的是占位符,而不是表达式。你能发布/添加完整的stacktrace吗。