我正在使用spring security并且有一个auth-ref-handler。在它内部我需要获得一个属性,但该属性没有设置。如果我在我的spring MVC控制器REST处理程序方法中执行相同的代码,它可以工作吗?
弹簧security.xml文件
<context:property-placeholder location="file:/TcatServer6/myapp/properties/myapp/myapp.properties" />
<beans:bean id="adsh" class="com.mycompany.security.ADAuthenticationSuccessHandler"/>
<http auto-config="true">
<intercept-url pattern="/agent/**" access="ROLE_AGENT" />
<intercept-url pattern="/supervisor/**" access="ROLE_SUPERVISOR" />
<form-login
login-page="/r/views/login.html"
authentication-failure-url="/r/views/loginfailed.html"
authentication-success-handler-ref="adsh"
/>
<logout logout-success-url="/logout" />
</http>
在ADAuthenticationSuccessHandler中:
@Autowired
@Value("${acr_url}")
private String acrURL;
我的一个弹簧MVC控制器中有完全相同的代码,它可以工作!在我的AuthenticationSuccessHandler中,它总是为空? Spring正在变成一个配置噩梦,所有这些事情都不一致。
更新:根据反馈和我的测试,我认为这可能是Spring中的一个错误。亲自试试吧。只是尝试使用spring-security.xml中的Spring AuthenticationSuccessHandler中的@Autowire或@Value注释从属性文件中获取属性...是否有其他人可以尝试它并查看它们是否得到类似的结果?