2011-05-09 4 views
0

В настоящее время вы играете с liferay, и я хочу получить имя пользователя и пароль.Расшифровать пароли для лифтов

я могу получить имя пользователя и encrpyted пароль, так что мне нужно, чтобы расшифровать пароль - я думал, что я мог бы сделать это с помощью:

Company company; 
    try { 
     company = CompanyUtil.findByPrimaryKey(user.getCompanyId()); 
     password = Encryptor.decrypt(company.getKeyObj(), password); 
    } catch (NoSuchCompanyException e) { 
     e.printStackTrace(); 
    } catch (SystemException e) { 
     e.printStackTrace(); 
    } catch (EncryptorException e) { 
     e.printStackTrace(); 
    } 

Это, однако, возвращается с encryptorexception, который:

com.liferay.util.EncryptorException: com.liferay.util.EncryptorException: javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher 

Я также разместил на форумах liferay, но надеялся, что кто-то здесь также сможет помочь - я в настоящее время пытаюсь сделать это в форме крюка, может ли портлет быть лучшей идеей?

Большое спасибо

ответ

0

я думал (или) надеялся Liferay использует хеширование для шифрования паролей. В этом случае вам нужно будет зашифровать данный пароль с использованием того же метода и проверить его на сохраненный.

В чем заключается ваша цель дешифрования пароля? Это определяет, в каком месте вы будете реализовывать это - крючок или портлет.

+0

Я хочу получить его, чтобы я мог разобрать его на своих кеберосах для кеберизированного SSO. – odtf

+0

В этом случае я думаю, что путь, который будет идти, будет забирать пароль, введенный пользователем, и аутентифицироваться на сервере Kerberos. Не пытайтесь расшифровывать эти пароли. Вы должны иметь возможность реализовать свой собственный класс AutoLogin и подключить его к цепочке аутентификации LR. (Как вы сказали, вы только начали играть с Liferay: у вас есть существующая инфраструктура, которая опирается на Kerberos? В противном случае я бы рекомендовал попробовать CAS или любую другую технологию SSO, которая уже поддерживается Liferay). – Dirk

+0

yes У меня сейчас есть инфраструктура, которая опирается на Kerberos - я попытался и не смог попытаться получить пароль, введенный пользователем ... возможно, я делаю это неправильно - любые идеи/справочники для этого? приветствует вас за помощь – odtf

1

Liferay - хеширующие пароли, поэтому нет понятия «расшифровать» пароль: это технически невозможно. Вы можете переборщить несколько подходящих частей, но не просто расшифровать их.

См. Более глубокое обсуждение in the Liferay message boards. (Это слишком много, чтобы скопировать/вставить здесь)

Если вы также разместили свой вопрос там, пожалуйста, разместите ссылку от вашего сообщения к этому сообщению (и/или вице-версии), если ваш поток добавит значение обсуждению

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