为了账号安全,请及时绑定邮箱和手机立即绑定

Spring - 在每次调用 Service/DAO 层时包含当前用户

Spring - 在每次调用 Service/DAO 层时包含当前用户

森林海 2024-01-25 21:28:10
我正在执行业务验证:当前用户是否有权访问数据库中的特定数据集。为此,我需要登录用户的用户名。下面的示例工作正常,在控制器/拦截器中成功进行身份验证后,“userName”参数将在从控制器到服务层的所有调用中传递。@Service public class MyServiceImpl implements MyService {    @Autowired    private MyDAO myDAO;    public String getData(String userName) {          return myDAO.getData(userName);    }}用户信息从控制器传递到服务,然后传递到我想避免的 DAO。我有自己的机制来处理身份验证和授权。我需要非常简单的解决方案,以便在每次调用 Service/DAO 层的某些上下文中包含这个额外的参数。注意:我需要一个简单的解决方案,并且不想使用 spring-security 等框架。
查看完整描述

2 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

希望您使用线程上下文,您可以轻松地在上下文中设置参数并在应用程序内的任何位置使用它。(很像会话变量)。

如果您已经在使用 Spring 会话,那么您可以在会话中设置变量并使用它。

查看完整回答
反对 回复 2024-01-25
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

也许你可以考虑使用ThreadLocal。认证后将用户名设置为ThreadLocal,并获取Service类中的值。



查看完整回答
反对 回复 2024-01-25
  • 2 回答
  • 0 关注
  • 24 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信