实现/*

    /**
* 根据当前的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 匿名访问时,匹配规则的变相实现/*的更多相关文章

  1. 如何在web项目中配置Spring的Ioc容器

    在web项目中配置Spring的Ioc容器其实就是创建web应用的上下文(WebApplicationContext) 自定义要使用的IoC容器而不使用默认的XmlApplicationContext ...

  2. 如何在Web项目中配置Spring MVC

    要使用Spring MVC需要在Web项目配置文件中web.xml中配置Spring MVC的前端控制器DispatchServlet <servlet> <servlet-name ...

  3. web项目中 集合Spring&使用junit4测试Spring

    web项目中 集合Spring 问题: 如果将 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(& ...

  4. 06_在web项目中集成Spring

    在web项目中集成Spring 一.使用Servlet进行集成测试 1.直接在Servlet 加载Spring 配置文件 ApplicationContext applicationContext = ...

  5. eclipse中配置spring环境

    初识Spring框架 1.简单使用 eclipse中配置Spring环境,如果是初学的话,只需要在eclipse中引入几个jar包就可以用了, 在普通java project项目目录下,建一个lib文 ...

  6. 在maven项目中 配置代理对象远程调用crm

    1 在maven项目中配置代理对象远程调用crm 1.1 在项目的pom.xml中引入CXF的依赖 <dependency> <groupId>org.apache.cxf&l ...

  7. 如何在maven项目中使用spring

    今天开始在maven项目下加入spring. 边学习边截图. 在这个过程中我新建了一个hellospring的项目.于是乎从这个项目出发开始研究如何在maven项目中使用spring.鉴于网上的学习资 ...

  8. web项目中配置多个数据源

    web项目中配置多个数据源 spring + mybatis 多数据源配置有两种解决方案 1.配置多个不同的数据源,使用一个sessionFactory,在业务逻辑使用的时候自动切换到不同的数据源,  ...

  9. Spring-Boot项目中配置redis注解缓存

    Spring-Boot项目中配置redis注解缓存 在pom中添加redis缓存支持依赖 <dependency> <groupId>org.springframework.b ...

随机推荐

  1. STL bind1st bind2nd详解

    STL bind1st bind2nd详解   先不要被吓到,其实这两个配接器很简单.首先,他们都在头文件<functional>中定义.其次,bind就是绑定的意思,而1st就代表fir ...

  2. [LeetCode] Remove K Digits 去掉K位数字

    Given a non-negative integer num represented as a string, remove k digits from the number so that th ...

  3. [LeetCode] Remove Duplicate Letters 移除重复字母

    Given a string which contains only lowercase letters, remove duplicate letters so that every letter ...

  4. [LeetCode] Reverse Words in a String II 翻转字符串中的单词之二

    Given an input string, reverse the string word by word. A word is defined as a sequence of non-space ...

  5. [LeetCode] Best Time to Buy and Sell Stock III 买股票的最佳时间之三

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...

  6. oracle日常——数据库备份

    1.进入cmd 2.运行命令 exp [scott]/[orcl]@[orcl] file=[d:\oracle_back\scott_orcl.dmp] owner=scott 格式如下: exp ...

  7. Linux Supervisor 守护进程基本配置

    supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控.管理进程.常用于管理与某个用户或项目相关的进程. 组成部分supervisord:服务守护进程supervisorctl ...

  8. 滚来滚去,滚来滚去...Scroller完全解析

    API: 1 mScroller.getCurrX() //获取mScroller当前水平滚动的位置 2 mScroller.getCurrY() //获取mScroller当前竖直滚动的位置 3 m ...

  9. 进度条投票-W

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  10. OBS-Studio二次开发记录

    OBS-Studio 是一款跨平台的,开源的视频直播客户端软件. 公司需要对他进行二次开发,开发的目的是使用它的录屏功能. 开发的要求是:定制全新的界面,所见即所得,window系统兼容要好. 开发步 ...