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 User を取得するために使用できます。

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 に答える