我试图通过属性文件启用或禁用授权。但是以下不起作用
<global-method-security pre-post-annotations="${enabled}" />
xml验证失败
此行找到多个注释: - cvc-enumeration-valid:Value&#39; $ {enabled}&#39;对于枚举&#39; [已禁用,已启用]&#39;而言,这不是方面有效的。它必须是来自的价值 枚举。
有人可以建议我这样做的正确方法吗?
答案 0 :(得分:2)
不幸的是,Spring Security XSD对该(和其他)属性IIRC的可能值进行了硬编码:
<xs:attributeGroup name="global-method-security.attlist">
<xs:attribute name="pre-post-annotations">
<xs:annotation>
<xs:documentation>Specifies whether the use of Spring Security's pre and post invocation annotations
(@PreFilter, @PreAuthorize, @PostFilter, @PostAuthorize) should be enabled for this
application context. Defaults to "disabled".
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="disabled"/>
<xs:enumeration value="enabled"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
...
如果您希望XML验证成功(因为XML验证不了解Spring的替换令牌),则无法进行属性替换。