我正在执行业务验证:当前用户是否有权访问数据库中的特定数据集。为此,我需要登录用户的用户名。
下面的示例工作正常,在 Controller /拦截器中成功进行身份验证后,“userName”参数将在从 Controller 到服务层的所有调用中传递。
@Service
public class MyServiceImpl implements MyService {
@Autowired
private MyDAO myDAO;
public String getData(String userName) {
return myDAO.getData(userName);
}
}
用户信息从 Controller 传递到服务,然后传递到我想避免的 DAO。
我有自己的机制来处理身份验证和授权。我需要非常简单的解决方案,以便在每次调用 Service/DAO 层的某个上下文中包含这个额外的参数。
注意:我需要一个简单的解决方案,并且不想使用 spring-security 等框架。
提前谢谢
最佳答案
希望您使用线程上下文,您可以轻松地在上下文中设置参数并在应用程序内的任何位置使用它。 (很像 session 变量)。
可以引用这个link寻求帮助。
如果您已经在使用 Spring session ,那么您可以在 session 中设置变量并使用它。
关于java - Spring - 在每次调用 Service/DAO 层时包含当前用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58677704/