Gla*_*ino 5 java spring spring-security
我想在Spring应用程序的授权过程中添加一些业务逻辑,我认为实现自定义AccessDecisionVoter是最佳解决方案.
这将是伟大的,但我没有找到任何方法将这个新的选民添加到授权过程而不完全重新定义AccessDecisionManager bean.这非常不方便,因为我的业务逻辑应该透明地添加,并且不需要任何特定的决策管理器.相反,它应该只告诉他的意见(投票)并让封闭的应用程序应用自己的授权策略.
即使是spring security的建议示例(https://spring.io/blog/2009/01/03/spring-security-customization-part-2-adjusting-secured-session-in-real-time)也使用这种方法.
我在http://forum.spring.io/forum/spring-projects/security/109476-how-to-add-voters-to-the-default-accessdecisionmanager?p=570570#post570570找到了一个有希望的解决方案,这可能会使用bean后处理器向任何AbstractAccessDecisionManager添加额外的选民,但方法setDecisionVoters(这种解决方案的关键)已被弃用,因此它是不可能的.
所以,我想知道是否有某种方法可以将我的选民添加到当前的AccessDecisionManager而无需处理它.有什么想法吗?
chi*_*ndo -1
AfirmativeBean 扩展了 AbstractAccessDecisionManager。只需使用 getDecisionVoters() 并将其添加到列表中
AfirmativeBean afirmativeBean = (AfirmativeBean)bean);
afirmativeBean.getDecisionVoters().add(yourvoter);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1047 次 |
最近记录: |