shiro设置url过滤,不拦截指定的url

  我们用了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”的请求直接放行,可以如下配置:



   
   
   
   
     
          /e74050c07f7d315d3ffc73df398ff9c5 = anon
          /actuator/prometheus = anon
          /login = authc
          /logout = logout
          /static/** = anon
          /register/** = anon
          /admin/** = roles[admin]
          /** = user
     

   


anon表示没有参数,可以直接访问

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

你可能感兴趣的:(java)