2013-08-18 3 views
0

Я использую JDBCRealm с tomcat 7. Я хочу создать простую страницу входа. Это мой Войти Форма:Tomcat 7 - JDBCRealm login

Login Form

и мое содержание web.xml является:

<login-config> 
    <auth-method>FORM</auth-method> 
    <form-login-config> 
     <form-login-page>/user/login.jsp</form-login-page> 
     <form-error-page>/user/login-failed.html</form-error-page> 
    </form-login-config> 
</login-config> 

Я хочу, чтобы перенаправить пользователя на какой-то a.jsp странице, как только он был идентифицирован. Как я могу это сделать?

ответ

0

У вас нет. Это не так, как работает проверка подлинности FORM. Пользователь запрашивает страницу. Если для этого требуется аутентификация, они получают страницу входа, а не страницу, которую они запрашивали. Затем они вводят свои учетные данные и, если они действительны, получают страницу, которую они изначально запрашивают.

Если вы настаиваете на неправильном использовании процесса проверки подлинности FORM, вы можете установить атрибут landPage для org.apache.catalina.authenticator.FormAuthenticator. Подробные сведения см. В документах (http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Form_Authenticator_Valve).

1

Вещь Я понял, что вы хотите перенаправить своего пользователя, зависит от роли. Предположим, если пользователь является администратором, тогда он должен быть перенаправлен на admin.jsp (например), и если пользователь находится на роли оператора, и он/она должен быть перенаправлен на manager.jsp.

Предположим, у вас есть две роли администратора и менеджера, определенные в JDBCRealm

Вы можете сделать это путем создания сервлета в проекте, например LoginServlet.java

Так что вы должны установить, являются:

  1. Создайте свой login.jsp и login-failed.html, как вы упомянули.

  2. Создание на две страницы JSP admin.jsp и manager.jsp под любую папку в WebContent динамического веб-проекта говорят:

WebContent/htmlPages/admin.jsp поместить <h4>Welcome Admin</h4> текст в теге тела ,

WebContent/htmlPages/manager.jsp put <h4>Welcome Admin</h4> текст в теге тела.

  1. В LoginServlet.jsp в doGet МЕТОДА поставить этот простой код:

    if(request.isUserInRole("admin")) { response.sendRedirect("htmlPages/admin.jsp");
    } if(request.isUserInRole("manager")){ response.sendRedirect("htmlPages/manager.jsp");
    }

  2. После этого вы должны установить приветственные-файлы в качестве входа servletin web.xml например Предположим, что IN web.XML ваш вход сервлет

    < сервлет > < описание > </описание > < дисплей имя > LoginServlet < имя-дисплей/> < сервлет-имя > LoginServlet/имя сервлета < > < servlet- класс > Полностью классифицированное название LoginServlet </servlet-class >
    </сервлет > < сервлет-отображение > < сервлет-имя > LoginServlet </сервлет-имя > < URL-шаблон >/loginServlet </URL-шаблон > </сервлет-картирование >

Затем получите шаблон url из карт сервлетов и поместите его в список приветственных файлов без косой черты: lik е

< радушны-файл-лист > < радушны-файл > loginServlet </радушны-файл > </радушны-файл-лист >

Убедитесь, что ни одна черта не была включена. Атрибут приветственного файла должен быть без косой черты, поскольку я вставляю код loginServlet.

Запустить этот код. :-) Вы перейдете на соответствующую страницу jsp.