2016-10-04 7 views
1

У меня проблема, я получаю пользователь и пароль представления, и я проверяю, верны ли эти данные в данных liferay, когда это правильно, мой метод возвращает 1, если проверка правильная, но я не знаю, как сделать успешную регистрацию в Liferay, это мой метод:аутентификация в liferay без логина.

try { 
     long companyId = PortalUtil.getDefaultCompanyId(); 
     System.out.println(companyId + " id company"); 
     User user1; 
     try { 
      user1 = UserLocalServiceUtil.getUserByEmailAddress(companyId,  name); 
      long cmp = user1.getCompanyId(); 
      Company company = CompanyLocalServiceUtil.getCompany(cmp); 
      int a =  UserLocalServiceUtil.authenticateByUserId(company.getCompanyId(), user.getId(), pass, null, 
        null, null); 
      if (a == 1) { 

       System.out.println("Log in successful"); 

      } 
     } catch (PortalException e) { 
      e.printStackTrace(); 
     } catch (SystemException e) { 
      e.printStackTrace(); 
     } 
    } catch (Exception e) { 
     System.out.println("algo salio mal"); 
    } 
+0

Вы пытались прорваться через портал-src для методов аутентификации, используемых liferay? Какие ошибки вы сталкиваетесь с журналами сервера –

ответ

1

Это, кажется, тот случай, когда вам нужно будет авто-входа в систему крюк. В Liferay 7, вам просто необходимы компоненты, как в: https://www.e-systems.tech/blog/-/blogs/autologin-in-liferay-7

Вы можете использовать индикатор в пользовательской сессии, как знак, и проверить его в пользовательской логики:

@Override 
protected String[] doLogin(final HttpServletRequest request, final HttpServletResponse response) throws Exception { 

    final long companyId = portal.getCompanyId(request); 
    final HttpSession session = request.getSession(); 

     // code your logic here.. 

    final String[] credentials = new String[3]; 

    credentials[0] = String.valueOf(user.getUserId()); 
    credentials[1] = user.getPassword(); 
    credentials[2] = Boolean.FALSE.toString(); 

    return credentials; 
} 

Это решение справедливо для LR6 разница в том, что вы не используете OSGi там, поэтому вам нужно создать крючок через SDK.

 Смежные вопросы

  • Нет связанных вопросов^_^