Spring-security – AccessDecisionVoter-impl不会被调用
我正在尝试创建自定义AccessDecisionVoter,并在调用它时调试它。
我在每种方法中都提出了一个断点,但没有发生任何事情。
弹簧security.xml文件:
IBrandsApi.java
public interface IBrandsApi { IHibernateBean getByPK(Integer id); @Secured({ "ROLE_BRAND_ADMIN" }) IHibernateBean update(IHibernateBean brand); @Secured({ "ROLE_BRAND_ADMIN" }) IHibernateBean insert(IHibernateBean brand); @Secured({ "ROLE_BRAND_ADMIN" }) ResultContainer getAll(IFilter filter); @Secured({ "ROLE_ADMIN" }) Integer delete(IFilter filter); }
VoterTest.java(带有断点的空文件)
public class VoterTest implements AccessDecisionVoter { private IBrandsApi brandsApi; public IBrandsApi getBrandsApi() { return brandsApi; } public void setBrandsApi(IBrandsApi brandsApi) { this.brandsApi = brandsApi; } @Override public boolean supports(ConfigAttribute attribute) { System.out.println("here"); return false; } @Override public boolean supports(Class clazz) { System.out.println("here"); return false; } @Override public int vote(Authentication authentication, Object object, Collection attributes) { System.out.println("here"); return 0; } }
顺便说一下,在app加载/运行期间没有抛出exception谢谢
您需要使用自定义AccessDecisionManager,否则使用默认值。 你可以这样做
请查看文档以获取更多相关信息。
还有一件事:你的选民中的supports()
方法应该返回true
否则不会调用vote()
。