实现/*

  1. /**
  2. * 根据当前的URL返回该url的角色集合。
  3. * 1.如果当前的URL在匿名访问的URL集合当中时,在当前的角色中添加匿名访问的角色(SysRole.ROLE_CONFIG_ANONYMOUS)。
  4. * 2.如果当前系统不存在的情况,给当前用户添加一个公共访问的角色(SysRole.ROLE_CONFIG_PUBLIC)。 3.url
  5. * 和角色映射,url和参数映射,给当前用户添加一个公共的角色(SysRole.ROLE_CONFIG_PUBLIC)。
  6. *
  7. * @param object the object
  8. * @return the attributes
  9. */
  10. public Collection<ConfigAttribute> getAttributes(Object object) {
  11. LOGGER.info("Enter");
  12. Collection<ConfigAttribute> configAttribute = new HashSet<ConfigAttribute>();
  13. FilterInvocation filterInvocation = (FilterInvocation) object;
  14. HttpServletRequest request = filterInvocation.getRequest();
  15. String url = request.getRequestURI();
  16. LOGGER.info("FullUrl="+filterInvocation.getFullRequestUrl());
  17. LOGGER.info("URL="+filterInvocation.getRequestUrl());
  18. LOGGER.info("URI="+request.getRequestURI());
  19. LOGGER.info("CTX="+filterInvocation.getHttpRequest().getContextPath());
  20. String urlNoCtx = removeCtx(url, request.getContextPath());
  21. // 匿名访问的URL
  22. if (anonymousUrls.contains(urlNoCtx)) {
  23. configAttribute.add(RoleConstant.ROLE_ANONYMOUS);
  24. return configAttribute;
  25. }else{
  26. //2016年7月28日15:18:27 匿名访问的匹配规则的实现
  27. for(String anonymouseUrl : anonymousUrls){
  28. if(anonymouseUrl.indexOf("*") > -1){
  29. anonymouseUrl = anonymouseUrl.replace("*",".*");
  30. if(urlNoCtx.matches(anonymouseUrl)){
  31. configAttribute.add(RoleConstant.ROLE_ANONYMOUS);
  32. return configAttribute;
  33. }
  34. }
  35. }
  36. if(urlNoCtx.contains("lms")){
  37. configAttribute.add(RoleConstant.ROLE_LMS_ANONYMOUS);
  38. }else{
  39. configAttribute.add(RoleConstant.ROLE_PUBLIC);
  40. }
  41. }
  42. return configAttribute;
  43. }

在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. [LeetCode] Word Frequency 单词频率

    Write a bash script to calculate the frequency of each word in a text file words.txt. For simplicity ...

  2. [LeetCode] Sqrt(x) 求平方根

    Implement int sqrt(int x). Compute and return the square root of x. 这道题要求我们求平方根,我们能想到的方法就是算一个候选值的平方, ...

  3. 修改 jquery.validate.js 支持非form标签

    尝试使用markdown来写一篇blog,啦啦啦 源代码传送门:github 在特殊情况下我们使用jquery.validate.js对用户输入的内容做验证的时候,表单并不是一定包含在form之中,有 ...

  4. weui 多网页切换效果分析

    weui的文档写的不怎么详尽,简单的来讲WeUI 为微信 Web 服务量身设计的h5框架. WeUI是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户 ...

  5. PRINCE2风险模块

    我们前几个节学习了PRINCE2七大主题的商业论证.组织.质量和计划,今天我们开展对于风险模块的讲解. 风险:目的是识别.评估和控制不确定性,从而提高项目的成功率.PRINCE2对风险登记册进行了详细 ...

  6. MYSQL的大数据量情况下的分页查询优化

    最近做的项目需要实现一个分页查询功能,自己先看了别人写的方法: <!-- 查询 --> <select id="queryMonitorFolder" param ...

  7. 修改.net mvc中前端验证信息的显示方式

    最近一直在学习.net core的用法.想法是通过写一个新闻系统来熟悉一下这个最新的技术.其实,我以前一直对.net技术都是浅尝辄止,最主要原因是没有动力.平时写企业站因为时间原因,不是使用php的框 ...

  8. ERwin入门

    1.菜单介绍 2.选择建模语言符号

  9. cocos2d-x-2.2.6 project-creator文件夹下python.bat

    @echo off set /p projectName=请输入项目名称: if "%projectName%"=="" goto inputError set ...

  10. Shell入门

    前言 日常用Python多一些,不过很多时候shell脚本更简单实用一些,所以有必要熟悉一下shell脚本.当然shell有他特定的一些场景,比方说我曾经改过一个vpn断线自动重连的脚本,简单实用. ...