访问Spring的安全上下文的最佳实践

时间:2015-04-16 02:26:17

标签: spring web-services security spring-security

我正在开发具有分层架构的应用程序:

演示 - 服务 - 数据访问

此服务层的许多模块需要访问当前登录的用户。让这些模块直接访问安全上下文以获取UserDetails对象是不是一个好主意?

我认为如果将来服务层的模块需要作为Web服务公开给其他应用程序,那么获取安全上下文可能无效。

1 个答案:

答案 0 :(得分:1)

您需要更具体,但通常不应该让整个堆栈直接访问身份验证信息。相反,如果是使用面向方面的方法安全性不适用的操作,则将用户信息作为普通方法参数传递给服务层。使用适当的机制(例如@AuthenticationPrincipal)向顶层外观(Web层或您拥有的内容)干净地提供身份验证信息。