2016-10-04 5 views
1

나는보기가 사용자와 암호를 얻고,이 데이터가 liferay의 데이터에서 올바른지 확인합니다. 올바른 경우 올바른 방법 일 때 1을 반환하고,로그인 후크없이 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

liferay에서 사용하는 인증 방법에 대해 portal-src를 파헤 치려고 했습니까? 서버 로그에서 어떤 오류가 발생하고 있습니까? –

답변

1

이것은 당신이 자동 로그인 후크를 필요 경우 것 같다 :하지만 난을 Liferay에 성공적으로 로그인을 만드는 방법을 알고하지 않습니다, 이것은 나의 방법이다.

@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; 
} 

이 솔루션은 또한 유효합니다 https://www.e-systems.tech/blog/-/blogs/autologin-in-liferay-7

토큰과 같이, 사용자 세션 내에서 지표를 사용하고 사용자 정의 로직을 확인할 수 있습니다을 Liferay 7, 당신은 그냥 같은 구성 요소가 필요합니다 LR6의 경우 차이점은 OSGi를 사용하지 않는다는 것입니다. 따라서 SDK를 통해 후크를 만들어야합니다.