2

ログイン時にユーザーをチェックするためのフックを作成しています。いくつかのパラメーターに応じて、カスタムページまたは別のページにリダイレクトされます。

私はこれをやっています:

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/pageforexternsinternsますが、ログインすると Cookie エラーとリダイレクト エラーが発生します。

私は何を間違っていますか?

ありがとう

4

1 に答える 1