java - POST : Accessing the HTTPRequest to find the logged on user 周围的 Spring 方面

标签 java spring rest spring-3

我有一个用方面包装的 Restful 服务接口(interface)。

@Path("/rs-service/")
public interface ServiceRSI 
{
  @Override
  @POST
  @Path("/lookupParam/")
  @Produces(MediaType.APPLICATION_XML)
  ParamValue getParamValue(GetParamValue request);
}

然后是我的 XML 方面..

<aop:config>
    <aop:aspect id="auditLoggingAspect" ref="auditLogging">
        <aop:pointcut id="aspectA" expression="execution(* com.ServiceRSI.*(..))" />
               <aop:around pointcut-ref="aspectA" method="logRequest" />
             />
    </aop:aspect>
</aop:config>

我想要/需要做的是登录经过身份验证以发出此请求的用户的方面。 我使用 MessageDigest 作为身份验证的一部分。

通常情况下,我会访问 HTTPRequest 以找出调用时经过身份验证的用户,但在本例中,该用户不会传递给该方法,因此我无法在方面拦截此内容。

任何人都可以建议一种从 restufull 调用的某个方面访问经过身份验证的用户的方法吗?

谢谢

最佳答案

如果您可以从 HttpServletRequest 访问所需的信息,那么您可以使用 RequestContextHolder Spring 来获取此信息。

ServletRequestAttributes t = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();  
HttpServletRequest req = t.getRequest();

有帮助吗?

关于java - POST : Accessing the HTTPRequest to find the logged on user 周围的 Spring 方面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17344857/

相关文章:

javascript - Ajax 调用 URL 在 Spring 服务器上找不到 @RequestMapping 值

java - 如何在 JAX-RS/Jersey REST 应用程序中实际实现分页​​/排序/过滤?

java - 使用 jax-rs 发送临时文件

Java 在单独的方法中重复处理异常

java - 多态性的例子? (替换原理和后期动态绑定(bind))

java - 如何使用okhttp上传文件?

java - 在 Spring(数据库)中将相似的行合并为一个实体

java - Hibernate 使用 OneToMany 添加模型

api - 获取有关工件的信息,无需版本号

java - 在 WebSphere 8.5 中覆盖 EJB 绑定(bind)名称