shiro拦截restful的api
时间: 2023-11-16 19:07:06 浏览: 90
要使用Shiro拦截RESTful API,可以使用Shiro的Filter机制来实现。以下是基本的步骤:
1. 创建一个类,继承Shiro的AuthenticatingFilter或AuthorizationFilter类,用于拦截RESTful API请求。
2. 在该类中实现doFilterInternal方法,该方法会在请求被拦截后被调用。在该方法中可以实现用户认证、权限验证等逻辑。
3. 在Shiro的配置文件中配置该Filter,并配置该Filter拦截的URL路径。例如:
```
[filters]
authc = com.example.MyAuthenticatingFilter
[urls]
/api/** = authc
```
以上代码表示使用MyAuthenticatingFilter拦截/api/路径下的所有请求。
4. 在RESTful API的Controller中,可以通过Shiro的SecurityUtils.getSubject()方法获取当前用户的Subject对象,从而获取用户信息、角色、权限等。
需要注意的是,Shiro的Filter机制只会拦截HTTP请求,而不会拦截Java方法调用。如果需要在Java方法中使用Shiro进行权限验证,可以使用注解方式来实现。具体可以参考Shiro的注解支持文档。
阅读全文