我有一个用方面包装的 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/