0 Replies Latest reply on Dec 30, 2010 11:38 AM by Hugo Martinez

    The Session that I set in the valve  is the same or can be shared with the portletSession with ApplicationScope?

    Hugo Martinez Newbie

      The problem that I have is that I want  to display some content.in the header layouts of my portal page.according the usergroup.


      This is the following snippet:

          public void invoke(Request request, Response response) throws IOException, ServletException {


              if (productCodes != null) {
                     if(authenticateProducts(request, response, productCodes)) {

                        String locationId = authHelper.obtainAuthorizedLocationId(request, productCodes);

                        getUserPreferences(Request request, String locationId)


           public Map<String, Object> getUserPreferences(Request request, String locationId) {
              Session session = request.getSessionInternal(true);
               Map<String, Object> preferences = (Map<String, Object>)  session.getSession().getAttribute(USER_GROUP_PREFERENCES);
              if (preferences == null || preferences.isEmpty()) {
                  preferences = retrieveUserGroupPreferences(locationId);
                  session.getSession().setAttribute(USER_GROUP_PREFERENCES, preferences);
              return preferences;


      I tried to get the preferences from the map in a portlet as follows:


           Map<String, Object> preferences = (Map<String, Object>) portletSession.getAttribute(USER_GROUP_PREFERENCES,


      But I got preferences = null


      I  also tried a ServletFitler and I CAN share the HTTPSession with the  PortletSession,  but it seems that the layout is being executed before  the filter (which is very strange to me), so I found that the valve is  executed before anything but now that I can successfully invoke the  valve before the layout.jsp, I cannot access the attribute from the  portletsession, do you guys have any idea, I'm stuck!