Во-первых, в ATG пароль профиля хэшируется, чтобы любой злоумышленник не смог прочитать его в открытом виде. В зависимости от вашей версии ATG он будет хеширован с помощью MD5 или SHA-1 плюс немного соли, поэтому вы НЕ сможете увидеть пароль в открытом виде.
Во-вторых, зачем вам нужен доступ к паролю? Если у вас есть особые требования, такие как вход пользователя в систему, опубликуйте его, и я смогу помочь.
Тем не менее, если предположить, что у вас есть допустимый сценарий, в котором вам нужно получить доступ к хешированному паролю, то, как это сделать, зависит от того, нужен ли вам просто пароль пользователя, который вошел в систему, или какого-либо другого пользователя.
Для текущего пользователя, вошедшего в систему, вам просто нужно разрешить компонент /atg/userprofiling/Profile и выполнить
String password = (String) profile.getPropertyValue("password");
Очевидно, что строка «пароль» должна быть заменена константой или менеджером свойств профиля, в зависимости от методов кодирования вашего проекта.
Если вы хотите получить доступ к паролю (помните, вы не можете получить доступ к открытому текстовому паролю, только к его хешированной версии) любого другого пользователя, вам нужно сначала найти пользователя. У компонента /atg/userprofiling/ProfileItemFinder есть инструменты, которые помогут вам в этом, поэтому вам придется внедрить его в любой компонент, который вы пишете:
RepositoryItem user = profileItemFinder.findByEmail("[email protected]", "user")[0];
String password = (String) user.getPropertyValue("password");
Надеюсь это поможет.
Изменить Если у вас есть только идентификатор профиля, вы можете использовать следующий фрагмент после внедрения компонента /atg/userprofiling/ProfileTools:
Profile user = profileTools.findProfile("profile id");
String password = (String) user.getPropertyValue("password");
person
Gustavo Recio
schedule
22.05.2014