在Spring Boot中哪里写授权?在弹簧拦截器或过滤器中?

时间:2019-12-02 00:43:17

标签: java spring-boot authorization

我目前正在使用OAuth作为Spring Boot中的身份验证来开发具有微服务架构的应用程序。由于我的授权服务器是一个单独的微服务,因此我无法对资源服务器中的资源使用spring的基于注释的基于角色的授权。因此,我正在编写自定义实现,以在访问资源之前检查角色及其访问。我有两种选择,可以在拦截器中或在过滤器中进行。 哪个最适合此授权?

1 个答案:

答案 0 :(得分:0)

我认为“过滤器”和“拦截器”之间的最大区别之一是:

过滤器仅在J2EE Web应用程序中起作用,不能在应用程序服务器之外使用,拦截器可以在不同的组件中工作并且不依赖于Web层,因此摘要拦截器比过滤器具有更广阔的领域。如果您打算将某些组件移出容器,则应考虑使用拦截器。

过滤器在请求/响应域中的工作更多,另一方面,拦截器在方法执行域中的工作更多。

如果您需要执行可能会影响应用程序请求或响应的操作(例如日志记录,安全性,审核),或者会影响其上的数据,那么您可以选择过滤器,不要忘记这些提供的插件功能。

ref:Interceptors Or Filters

相关问题