【发布时间】:2013-01-27 05:46:29
【问题描述】:
- 在 spring 控制器中获取主体作为参数
Principal principal然后将其传递给服务层而不是通过SecurityContextHolder.getContext().getAuthentication().getPrincipal()立即在服务层中获取主体有什么优势? - 在不检查
getAuthentication()和getPrincipal()对象的 null 处(类似于自定义包装器)的情况下,在服务层获取主要详细信息的最佳方法是什么?
【问题讨论】:
-
您可能会发现this question 的答案很有用。 This answer 也很有用。
-
使用静态方法的抽象类是否是一个很好的解决方案,我可以在其中放置
SecurityContextHolder.getContext().getAuthentication().getPrincipal()?之后我可以在服务层使用它。 -
再次阅读我给你的第二个链接。没有什么可以阻止您在服务中使用这种方法,如果您使用接口,也可以将其换出以进行测试。
-
感谢您的解决方案。但是通过使用接口和实现,我需要将其注入到几乎每个服务中,或者可能注入到基础服务类中。使用静态方法怎么样(来自我上面的评论)?什么更好?
标签: java spring spring-mvc spring-security