刷微信投票的网站刷微信投票的网站

刷微信投票的网站
微信投票点赞购买,如何网上买微信投票

池州市微信投票咨询 SpringSecurity权限管理的投票器与表决机制


松哥转载互联网的SpringBoot视频教程已经杀青,感兴趣的小伙伴戳这里-->SpringBoot+Vue+微人事视频教程今天咱们来聊一聊SpringSecurity中的表决机制与投票器。当用户想访问SpringSecurity中一个受保护的资源时,用户具备一些角色,该资源的访问也需要一些角色,在比对用户具备的角色和资源需要的角色时,就会用到投票器和表决机制。当用户想要访问某一个资源时,投票器根据用户的角色投出赞成或者反对票,表决方式则根据投票器的结果进行表决。在SpringSecurity中,默认提供了三种表决机制,当然,我们也可以不用系统提供的表决机制和投票器,而是完全自己来定义,这也是可以的。本文松哥将和大家重点介绍三种表决机制和默认的投票器。1.投票器先来看投票器。在SpringSecurity中,投票器是由AccessDecisionVoter接口来规范的,我们来看下AccessDecisionVoter接口的实现:可以看到,投票器的实现有好多种,我们可以选择其中一种或多种投票器,也可以自定义投票器,默认的投票器是WebExpressionVoter。我们来看AccessDecisionVoter的定义:public interface AccessDecisionVoter { int ACCESS_GRANTED = 1; int ACCESS_ABSTAIN = 0; int ACCESS_DENIED = -1; boolean supports(ConfigAttribute attribute); boolean supports(Class clazz); int vote(Authentication authentication, S object,   Collection attributes);}我稍微解释下:首先一上来定义了三个常量,从常量名字中就可以看出每个常量的含义,1表示赞成;0表示弃权;-1表示拒绝。两个supports方法用来判断投票器是否支持当前请求。vote则是具体的投票方法。在不同的实现类中实现。三个参数,authentication表示当前登录主体;object是一个ilterInvocation,里边封装了当前请求;attributes表示当前所访问的接口所需要的角色集合。我们来分别看下几个投票器的实现。1.1RoleVoterRoleVoter主要用来判断当前请求是否具备该接口所需要的角色,我们来看下其vote方法:public int vote(Authentication authentication, Object object,  Collection attributes) { if (authentication == null) {  return ACCESS_DENIED; } int result = ACCESS_ABSTAIN; Collection

未经允许不得转载:刷微信投票的网站 » 池州市微信投票咨询 SpringSecurity权限管理的投票器与表决机制
分享到: 更多 (0)

刷微信投票的网站 带给你想要内容

联系我们