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

标签 java spring rest spring-mvc

我正在执行业务验证:当前用户是否有权访问数据库中的特定数据集。为此,我需要登录用户的用户名。

下面的示例工作正常,在 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/

相关文章:

java - 如何在 Xbox 上获取 Java

java - 在 firebase 中使用 ids 检索嵌套数据?

java - JAX-RS:提供 "default"子资源定位器

c# - Web API Controller 不适用于 ASP.NET Web 窗体中的 POST/PUT/DELETE

web-services - Java中的 Restful Web服务可为基于回合的iOS和Android游戏提供支持

java - 在 Java Swing 中嵌入 Firefox 浏览器

java - 如何只获得类型为 XMLGregorianCalendar 的年份

java - Spring容器配置中的JPA提供者与方言与供应商

java - MapSqlParameterSource 无法与存储过程的 NamedParameterJdbcTemplate 正确映射

java - 带有多个文件的 Spring 3 @ImportResource