ログイン時にユーザーをチェックするためのフックを作成しています。いくつかのパラメーターに応じて、カスタムページまたは別のページにリダイレクトされます。
私はこれをやっています:
Portal.properties
#Gestion evento login
login.events.post=com.liferay.portal.events.AccionLogin
auth.forward.by.last.path=true
アクション クラス
public class AccionLogin extends Action {
@Override
public void run(HttpServletRequest request, HttpServletResponse response) throws ActionException {
try {
doRun(request, response);
} catch (Exception e) {
throw new ActionException(e);
}
}
protected void doRun(HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession sesion = request.getSession();
User usuarioLogin = PortalUtil.getUser(request);
// Recupero la lista de roles
ArrayList<Role> roles = UtilRoles.getIntExtRol();
// Compruebo si el usuario pertenece al grupo
if (UtilLdap.esGrupo(request, usuarioLogin.getScreenName())) {
Constantes._log.info("El usuario es Interno en el Ldap vector. Gestiono su rol");
UtilRoles.setRoleIfNotHave(usuarioLogin, roles, Constantes.INTERNOS);
sesion.setAttribute(WebKeys.LAST_PATH, UtilUrls.generaLasthPath(request, Constantes.INTERNOS));
} else {
Constantes._log.info("El usuario es externo en el Ldap vector. Gestiono su rol");
UtilRoles.setRoleIfNotHave(usuarioLogin, roles, Constantes.EXTERNOS);
sesion.setAttribute(WebKeys.LAST_PATH, UtilUrls.generaLasthPath(request, Constantes.EXTERNOS));
}
}
}
この方法:
sesion.setAttribute(WebKeys.LAST_PATH, UtilUrls.generaLasthPath(request, Constantes.EXTERNOS));
やれ:
return new LastPath(StringPool.BLANK,Constantes.GROUPINTRANET+Constantes.SEPARADOR+Constantes.INICIOINTERNOS,
new HashMap<String, String[]>());
を生成group/intranet/pageforexterns
しinterns
ますが、ログインすると Cookie エラーとリダイレクト エラーが発生します。
私は何を間違っていますか?
ありがとう