在JaveWeb项目中配置Spring 匿名访问时,匹配规则的变相实现/*
实现/*
/**
* 根据当前的URL返回该url的角色集合。
* 1.如果当前的URL在匿名访问的URL集合当中时,在当前的角色中添加匿名访问的角色(SysRole.ROLE_CONFIG_ANONYMOUS)。
* 2.如果当前系统不存在的情况,给当前用户添加一个公共访问的角色(SysRole.ROLE_CONFIG_PUBLIC)。 3.url
* 和角色映射,url和参数映射,给当前用户添加一个公共的角色(SysRole.ROLE_CONFIG_PUBLIC)。
*
* @param object the object
* @return the attributes
*/
public Collection<ConfigAttribute> getAttributes(Object object) {
LOGGER.info("Enter");
Collection<ConfigAttribute> configAttribute = new HashSet<ConfigAttribute>();
FilterInvocation filterInvocation = (FilterInvocation) object;
HttpServletRequest request = filterInvocation.getRequest();
String url = request.getRequestURI();
LOGGER.info("FullUrl="+filterInvocation.getFullRequestUrl());
LOGGER.info("URL="+filterInvocation.getRequestUrl());
LOGGER.info("URI="+request.getRequestURI());
LOGGER.info("CTX="+filterInvocation.getHttpRequest().getContextPath());
String urlNoCtx = removeCtx(url, request.getContextPath());
// 匿名访问的URL
if (anonymousUrls.contains(urlNoCtx)) {
configAttribute.add(RoleConstant.ROLE_ANONYMOUS);
return configAttribute;
}else{
//2016年7月28日15:18:27 匿名访问的匹配规则的实现
for(String anonymouseUrl : anonymousUrls){
if(anonymouseUrl.indexOf("*") > -1){
anonymouseUrl = anonymouseUrl.replace("*",".*");
if(urlNoCtx.matches(anonymouseUrl)){
configAttribute.add(RoleConstant.ROLE_ANONYMOUS);
return configAttribute;
}
}
}
if(urlNoCtx.contains("lms")){
configAttribute.add(RoleConstant.ROLE_LMS_ANONYMOUS);
}else{
configAttribute.add(RoleConstant.ROLE_PUBLIC);
}
}
return configAttribute;
}
在JaveWeb项目中配置Spring 匿名访问时,匹配规则的变相实现/*的更多相关文章
- 如何在web项目中配置Spring的Ioc容器
在web项目中配置Spring的Ioc容器其实就是创建web应用的上下文(WebApplicationContext) 自定义要使用的IoC容器而不使用默认的XmlApplicationContext ...
- 如何在Web项目中配置Spring MVC
要使用Spring MVC需要在Web项目配置文件中web.xml中配置Spring MVC的前端控制器DispatchServlet <servlet> <servlet-name ...
- web项目中 集合Spring&使用junit4测试Spring
web项目中 集合Spring 问题: 如果将 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(& ...
- 06_在web项目中集成Spring
在web项目中集成Spring 一.使用Servlet进行集成测试 1.直接在Servlet 加载Spring 配置文件 ApplicationContext applicationContext = ...
- eclipse中配置spring环境
初识Spring框架 1.简单使用 eclipse中配置Spring环境,如果是初学的话,只需要在eclipse中引入几个jar包就可以用了, 在普通java project项目目录下,建一个lib文 ...
- 在maven项目中 配置代理对象远程调用crm
1 在maven项目中配置代理对象远程调用crm 1.1 在项目的pom.xml中引入CXF的依赖 <dependency> <groupId>org.apache.cxf&l ...
- 如何在maven项目中使用spring
今天开始在maven项目下加入spring. 边学习边截图. 在这个过程中我新建了一个hellospring的项目.于是乎从这个项目出发开始研究如何在maven项目中使用spring.鉴于网上的学习资 ...
- web项目中配置多个数据源
web项目中配置多个数据源 spring + mybatis 多数据源配置有两种解决方案 1.配置多个不同的数据源,使用一个sessionFactory,在业务逻辑使用的时候自动切换到不同的数据源, ...
- Spring-Boot项目中配置redis注解缓存
Spring-Boot项目中配置redis注解缓存 在pom中添加redis缓存支持依赖 <dependency> <groupId>org.springframework.b ...
随机推荐
- 前端之ajax
前端之ajax 本节内容 ajax介绍 原生js实现ajax jquery实现ajax json 跨域请求 1. ajax介绍 AJAX(Asynchronous Javascript And XML ...
- PCD文件去除曲率的脚本
在写一个重建算法的时候需要用到点坐标和法向的数据文件,于是向利用pcl中的法向计算模块来生成法向.输出后法向文件中包含曲率信息,但是这是不需要的.于是自己写了一个python小脚本实现格式转换. #- ...
- redis 学习笔记(7)-cluster 客户端(jedis)代码示例
上节学习了cluster的搭建及redis-cli终端下如何操作,但是更常用的场景是在程序代码里对cluster读写,这需要redis-client对cluster模式的支持,目前spring-dat ...
- 实现数据库的跨库join
功能需求 首先要理解原始需求是什么,为什么要跨库join.举个简单的例子,在日志数据库log_db有一份充值记录表pay_log,里面的用户信息只有一个userid:而用户的详细信息放在主库main_ ...
- XMind共享未保存的思维导图的教程
我们在XMind 6对导图进行局域网共享时,一般都是对XMind文件先进行保存再共享,那样是忘记保存呢,该如何共享.局域网共享功能是XMind 6特有的功能之一,自是较为完善,性能强大的功能,当然有办 ...
- weak和nonull
weak和nonull是相互排斥的,所以weak和null不能同时使用,如下图:
- 【BZOJ-3270】博物馆 高斯消元 + 概率期望
3270: 博物馆 Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 292 Solved: 158[Submit][Status][Discuss] ...
- 将文件移出版本控制 (Revision Control)
两条重要的 Git 命令: git rm -r -n --cached /path/to/the/directory git rm -r --cached /path/to/the/directory ...
- zookeeper原理解析-服务器端处理流程
1)处理器链 这部分内容我们主要讲解zookeeper请求在zookeeper server端的处理流程,对于不同角色的zookeeper具有不同的处理流程, ZookeepeerServer的sta ...
- JMeter 集合点
JMeter也有像LR中的集合点,本篇就来介绍下JMeter的集合点如何去实现. JMeter里面的集合点通过添加定时器来完成. 注意:集合点的位置一定要在Sample之前. 集合点:简单来理解一下, ...