SpringSecurity 投票器
访问控制
在现在的一些软件设计操作上,考虑安全性以及操作性的平衡点,所以一般在本地服务器上(你现在使的电脑就是你发布的服务器),
本地服务器可以不受用户登录的限制。
在springSecurity之中提供有一个投票器的概念,投票器有以下几种:
支持:如果在本地,就不受限制
反对:不是在本地,就反对
弃权:一切照旧
范例:实现投票器
package jcn;import java.util.Collection;
import java.util.Iterator;import org.springframework.security.access.AccessDecisionVoter;
import org.springframework.security.access.ConfigAttribute;
import org.springframework.security.core.Authentication;
import org.springframework.security.web.authentication.WebAuthenticationDetails;public class IPAddressVote implements AccessDecisionVoter<Object> {//判断是否支持投票操作@Overridepublic boolean supports(ConfigAttribute attribute) {//有一个属性是"IP_LOCAL_HOST"return attribute.getAttribute() != null && attribute.getAttribute().startsWith("IP_");}//根据类型判断@Overridepublic boolean supports(Class<?> arg0) {return false;}//投票过程@Overridepublic int vote(Authentication aut, Object object,Collection<ConfigAttribute> attributes ){//现在根据ip地址判断,并且项目不是通过WEB认证进行的if (!(aut.getDetails() instanceof WebAuthenticationDetails)) {return AccessDecisionVoter.ACCESS_DENIED; //拒绝你操作}//如果现在是来自WEB的认证授权操作WebAuthenticationDetails datails = (WebAuthenticationDetails) aut.getDetails();String ip = datails.getRemoteAddress();//取得IP地址Iterator<ConfigAttribute> iter = attributes.iterator();while (iter.hasNext()) {ConfigAttribute caAttribute = iter.next();//如果是本地ip地址if ("IP_LOCAL_HOST".equals(caAttribute.getAttribute())) {if ("0:0:0:0:0:0:0:1".equals(ip)) {//是本机的ipreturn AccessDecisionVoter.ACCESS_DENIED;}}}return AccessDecisionVoter.ACCESS_ABSTAIN;}}
在安全框架中配置投票器:
<!-- 定义投票器 -->
<bean id="accessDes" class = "org.springframework.security.access.vote.AffirmativeBased"><property name="decisionVoters"><list><bean class="org.springframework.security.access.vote.RoleVoter"/><bean class="org.springframework.security.access.vote.AuthenticatedVoter"/><bean class="jcn.IPAddressVote"/></list></property>
</bean>
<!-- 启动Spring安全验证 -->
<security:global-method-security jsr250-annotations="enabled"
access-decision-manager-ref="accessDes"/>
此时就可以利用投票器的方式来处理操作。
修改Action程序类,增加本地认证服务:
由于操作者是处于服务器本地ip服务上,所以此时可以直接进行数据的操作。
SpringSecurity 投票器相关推荐
- springsecurity投票器
原文链接:http://blog.csdn.net/jaune161/article/details/18401233 在Spring中引入了投票器(AccessDecisionVoter)的概念,有 ...
- SpringSecurity自定义投票器
拦截URL的时候使用自定义权限判断 1:配置文件指定自定义投票器 <!-- 页面拦截规则 --><http use-expressions="false" acc ...
- sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并自定义子分类器的权重(weights)、计算融合模型的混淆矩阵、可视化混淆矩阵
sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并自定义子分类器的权重(weights).计算融合模型的混淆矩阵.可视化混淆矩阵 目 ...
- sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)
sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并计算融合模型的混淆矩阵.可视化混淆矩阵(confusion matrix) 目录
- sklearn使用投票器VotingClassifier算法构建多模型融合的硬投票器分类器(hard voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)
sklearn使用投票器VotingClassifier算法构建多模型融合的硬投票器分类器(hard voting)并计算融合模型的混淆矩阵.可视化混淆矩阵(confusion matrix) 目录
- PHP+AJAX 投票器功能
终于到AJAX,翻译过来就是"异步Javascript和XML",他可以实现网页内容的部分加载,可提高用户体验.现在有很多网站都有用这技术,反正你知道他能实现网页的异步更新就差不多 ...
- 两个人投票的c语言程序,设计网页投票器(二)《精通Unix下C语言编程与项目实践》之十...
本处设计一个网页投票器,它访问"www.zhiliaowang.com"上的服务程序"/toupiaoceshi.asp",并通过"name" ...
- 如何利用C#编写网页投票器程序 如何使用代理来投票 代理IP来投票
一.前言 看个图,了解下投票的过程. 提交投票信息 投票页 ――――――――>投票信息处理页 反馈投票结果 (请求页)<―――――――(响应页) 一般情况下,填写投票信息,然后点提交按钮发 ...
- (93)多人投票器(N人投票器)
(93)多人投票器(N人投票器) 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)多人投票器(N人投票器) 5)技术交流 6)参考资料 2 FPGA入门与提升课程介绍 ...
最新文章
- Spring Cloud-Honghu Cloud分布式微服务云系统(一)
- Button的使用(二):从资源文件中
- Oracle中比较日期大小
- 【转】解决wine中文乱码的问题
- 处理时间_4_计算时间列所在的周的序号
- Codeforces 835 F Roads in the Kingdom(树形dp)
- 使用Python查看汉诺塔移动详细过程
- Linux工作笔记025---CentOS7.3安装Nginx
- IIS7.5应用程序池集成模式和经典模式的区别介绍
- php编程常用英语词汇,泰牛程序员 PHP编程掌握的英语词汇(3) 韩顺平整理
- 那一年马云34岁,李彦宏30岁,马化腾27岁
- ktv无线服务器,KTV无线网络覆盖方案-无死角WIFI信号全覆盖方法
- uni 页面加载完毕_uniapp小程序如何等待数据回来才加载页面?
- 计算机网络练习3|河工|周老师
- C语言指针详解(补充中)
- VIF-Net:RGB和红外图像融合的无监督框架
- 腾讯云CFS挂载问题
- 【末日时在做什么?有没有空?可以来拯救吗?】Scarborough Fair
- 虚拟机怎样使用桥接模式连接外网!
- 法兰克oitf操作_FANUC Oi-B数控系统操作面板说明