3

我想从过滤器类访问 liferay 远程用户 ID。

@Override
public void doFilter(ServletRequest request, 
                     ServletResponse response,
                     FilterChain chain) throws IOException, ServletException {
    try {
        HttpServletRequest httpServletRequest =  (HttpServletRequest) request;
        User user = (User)request.getAttribute(WebKeys.USER);

        System.out.println("User ID :" + user.getUserId());
        System.out.println("User ID :" + httpServletRequest.getRemoteUser());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

输出

User :null
java.lang.NullPointerException

请告诉我如何获取远程用户 ID 表格HttpServletRequest

4

1 回答 1

3

您可以使用com.liferay.portal.util.PortalUtil.getUser(HttpServletRequest request)获取 Liferay 用户。

public void doFilter(ServletRequest request, 
            ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
    try {
        HttpServletRequest httpServletRequest = (HttpServletRequest) request;   
        User user = PortalUtil.getUser(request);    
        System.out.println("User ID :" + user.getUserId());
    } catch (Exception e) {
        e.printStackTrace();
    }
}
于 2013-10-09T12:24:39.663 回答