shiro配置文件的路径授权更换成后台数据库配置实现

1.shiro之所以能对请求进行拦截判断,是因为shiro配置文件配置需要拦截的路径,以及对应的认证授权bean如下:

shiro配置文件的路径授权更换成后台数据库配置实现

2.随着项目的日渐庞大,配置文件中需要配置的过滤器越来越多(不同路径访问控制权限不同),就需要把同类过滤的配置到数据库中,我是用的拦截器当然可以使用过滤器(因为我需要在某些拦截器之后执行获取必要参数)。

在springMVC配置文件中配置拦截器:拦截所有请求,下面配置是放行部分请求

shiro配置文件的路径授权更换成后台数据库配置实现

3.拦截器代码如下:

shiro配置文件的路径授权更换成后台数据库配置实现

通过request 获取所需路径进行判断,下面给大家附上request获取各种路径的方法:

1、request.getRequestURL()

返回的是完整的url,包括Http协议,端口号,servlet名字和映射路径,但它不包含请求参数。
2、request.getRequestURI()

得到的是request URL的部分值,并且web容器没有decode过的

3、request.getContextPath() 
返回 the context of the request.

4、request.getServletPath() 
返回调用servlet的部分url.

5、request.getQueryString() 
返回url路径后面的查询字符串

示例:

当前url:http://localhost:8080/CarsiLogCenter_new/idpstat.jsp?action=idp.sptopn

request.getRequestURL()-----http://localhost:8080/CarsiLogCenter_new/idpstat.jsp
request.getRequestURI()----- /CarsiLogCenter_new/idpstat.jsp
request.getContextPath()----/CarsiLogCenter_new
request.getServletPath()---- /idpstat.jsp

request.getQueryString()---action=idp.sptopn

如有其它更好建议或者不同意见欢迎留言或者入群探讨:

shiro配置文件的路径授权更换成后台数据库配置实现