我有一个经典的分层服务器应用程序。这些图层是:
我主要进行异常管理和登录服务层。
用户提供由身份验证逻辑针对数据库或其他Web服务进行检查的凭据对象。 权限由用户为成员的组管理,权限基本上只是一个分配给组的布尔值的ID。
我的问题是,我应该在服务层或逻辑层上进行身份验证和授权检查吗?
答案 0 :(得分:0)
作为Web应用程序的一般做法(我假设您的是Web应用程序),授权检查在API层完成,就像用户无法访问特定服务一样,您甚至不希望他去那里。其他可能的优势可能是,当您使用Junits测试服务层时,您不需要编写填充安全上下文的逻辑。在某种程度上,我同意授权检查是业务逻辑的一部分,控制器不应该混淆业务逻辑,但现在使用像Spring这样的框架,只需简单地添加注释,这样仍可保持代码的可读性
但很多人都有意见将安全性推向尽可能低的层次。