我们用了shiro做权限处理,所以当用户登录或者是调用接口时,都会进入到登录页面,但是现在我需要写一个向外暴露的接口,给前端返回数据。这个时候就需要在shiro-context.xml中配置了。那么先来了解一下权限过滤器及配置的意思。

anon: /static/** = anon 没有参数,表示可以直接访问static目录下的所有文件
authc:  ${adminPath}/login = authc 表示需要认证(登录)才能使用,没有参数
roles(角色): /admins/user/**=roles[admin], 参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,当有多个参数时,例如admins/user/**=roles["admin,guest"],每个参数通过才算通过,相当于hasAllRoles()方法。
perms(权限):  /admins/user/**=perms[user:add:*],参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,例如/admins/user/**=perms["user:add:*,user:modify:*"],当有多个参数时必须每个参数都通过才通过,想当于isPermitedAll()方法。
rest:  /admins/user/**=rest[user],根据请求的方法,相当于/admins/user/**=perms[user:method] ,其中method为post,get,delete等。
port: /admins/user/**=port[8081],当请求的url的端口不是8081是跳转到schemal://serverName:8081?queryString,其中schmal是协议http或https等,serverName是你访问的host,8081是url配置里port的端口,queryString是你访问的url里的?后面的参数。
authcBasic: /admins/user/**=authcBasic没有参数表示httpBasic认证
ssl:例子/admins/user/**=ssl没有参数,表示安全的url请求,协议为https
user:例如/admins/user/**=user没有参数表示必须存在用户,当登入操作时不做检查
————————————————
版权声明:本文为CSDN博主「Emily呀」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhang18330699274/article/details/80386531

不过滤指定url意思就是遇到指定的url直接放行,不跳转到登录页面,比如通过调某一个方法检测服务是否正常就需用用到该配置。

配置方式也比较简单,shiro.xml中添加相应的配置即可

比如遇到path为“/e74050c07f7d315d3ffc73df398ff9c5”的请求直接放行,可以如下配置:

<!-- Shiro Filter -->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
   <property name="securityManager" ref="securityManager" />
   <property name="loginUrl" value="/login" />
   <property name="successUrl" value="/" />
   <property name="filterChainDefinitions">
      <value>
          /e74050c07f7d315d3ffc73df398ff9c5 = anon
          /actuator/prometheus = anon
          /login = authc
          /logout = logout
          /static/** = anon
          /register/** = anon
          /admin/** = roles[admin]
          /** = user
      </value>
   </property>
</bean>
anon表示没有参数,可以直接访问

注意:直接放行的url一定要放到前面,至少要放到/**的前面,因为是从上到下按顺序过滤的。
————————————————
版权声明:本文为CSDN博主「sxlxwyr」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012131610/article/details/100544184

shiro设置url过滤,不拦截指定的url相关推荐

  1. Python+selenium 自动化-获取当前页面的url地址,打开指定的url地址

    非常简单,driver.current_url 就能获取当前页面的 url 地址. # 调用chrome浏览器 driver = webdriver.Chrome() # 打开指定的url地址 dri ...

  2. 更改主机文件引发思考 防火墙URL过滤无奈(转)

    近日,公司的部分用户反映无论访问百度还是谷歌结果都被连接到一个垃圾网站.经过现场查看,我们发现网络连接及DNS配置都没有问题,根据经验判断应该是系统目录下的主机(HOST)文件出了问题.打开该文件,果 ...

  3. 实战ssl-bump,实现squid的url过滤功能

    使用代理服务器squid,想实现url过滤,禁止访问某个url,我们自然就想到了使用url_regex,可以使用正则对url进行过滤 比如说我们要禁止使用百度搜索,可使用下面的过滤 acl deny_ ...

  4. nginx过滤html输入,nginx屏蔽指定接口(URL)的操作方式

    一.前言 有时候,web平台上线后,需要屏蔽某个服务接口,但又不想重新上线,可以采用nginx屏蔽指定平台接口的办法. 二.具体操作 在nginx的配置文件nginx.conf文件的server节点中 ...

  5. url过滤怎么解除_Shiro-实战(四)---过滤器机制

    1 简介 Shiro使用了与Servlet一样的Filter接口进行扩展 1.1 NameableFilter NameableFilter给Filter起个名字,如果没有设置默认就是FilterNa ...

  6. openwrt实现url过滤

    一.介绍 url过滤有多种方式 1.iptables的拓展模块string模块 效率不高,会影响通信速率 2.iptables的拓展模块webstr模块 只对http有效,https不行 3.dns拦 ...

  7. 单页面应用的页面跳转及如何通过url跳转至指定页面

    HTML5为history对象添加了两个新方法,history.pushState()和history.replaceState(),用来在浏览历史中添加和修改记录. 都会改变浏览器标签栏中的URL值 ...

  8. 防火墙实现URL过滤原理

    对于URL过滤:1.HTTP URL过滤 2.https URL过滤 1.HTTP URL过滤 (http请求和服务端口:80) 实现原理:iptables 规则在协议栈中获取到HTTP请求报头中的H ...

  9. 防火墙(ASA)高级配置之URL过滤、日志管理、透明模式

    对于防火墙产品来说,最重要的一个功能就是对事件进行日志记录.本篇博客将介绍如何对ASA进行日志管理与分析.ASA透明模式的原理与配置.利用ASA防火墙的IOS特性实施URL过滤. 一.URL过滤 利用 ...

最新文章

  1. 堆、栈、自由存储区、全局/静态存储区、常量存储区比较
  2. C++ BigInt模板手打
  3. python使用curses库获取控制台的键盘输入(如上下左右)
  4. 神策数据张涛:如何让用户标签价值落地?
  5. nginx配置tomcat负载均衡,nginx.conf配置文件的配置
  6. Java正则表达式应用详解
  7. php mysql 创建数据表_PHP MySQL 创建数据表
  8. U盘autorun病毒清理
  9. shell脚本验证ssh连通性_ssh远程管理服务
  10. C语言终极贪吃蛇代码,直接COPY上手。
  11. 君正T31硬件设计手册
  12. php企业微信获取userid,企业微信端项目登陆、获取用户信息流程等
  13. Exception in thread “main“ org.apache.spark.sql.catalyst.parser.ParseException: extraneous input ‘$
  14. Squid缓存服务器原理与实战演练
  15. EXCEL将网段地址分解成明细地址
  16. Python爬取网易云音乐播放地址
  17. mysql查询大于0的标记,Mysql计数列大于0
  18. 搭积木的诀窍(数学题)
  19. NetCore+Dapper WebApi架构搭建(五):Swagger构建WebApi界面
  20. 西门子1500数据块移动POKE_BLK指令

热门文章

  1. android 报错Undeclared namespace prefix “tools“
  2. React Native集成Touch ID和Face ID
  3. 2019 小红书校招笔试题字符串压缩算法
  4. Vue 深度选择器:deep()与::v-deep详解
  5. java中单精度浮点数和双精度浮点数_什么是浮点型?单精度浮点数(float)和双精度浮点数(double)介绍...
  6. MySQL数据库基础知识,数据类型,常用语法和函数
  7. 7-3 两个有序链表序列的合并 (15 分)
  8. Docker中的Docker volumes与Persistent Volume借鉴
  9. 图片转base64 验证码二维码前端渲染
  10. SpringBoot整合Elasticsearch(一)