Как защитить мое веб-приложение на Java?

У меня есть веб-приложение, в котором, когда пользователи входят в систему, они достигают mainjsp.jsp стр.

На этой странице есть несколько текстовых полей для дат и на основе дат и выбора из другого раскрывающегося списка, данные представлены. Эти данные получены servlet и вернул к mainjsp стр.

Моя забота о безопасности. Теперь, когда я копирую вставить mainjsp.jsp URL страницы и вставьте его в любой браузер, эта страница отображается как есть. Я не хочу, чтобы это случилось. Я хочу, чтобы пользователи сначала вошли в систему, и, следовательно, я хочу, чтобы мое веб-приложение было защищено.

Я понятия не имею, как это сделать. Подскажите, пожалуйста, как мне этого добиться?

Также скажите, пожалуйста, как мне добиться этого на любой из страниц веб-приложения. Пользователи не должны иметь доступа к какой-либо странице, если они не вошли в систему.

6 ответов

Вы должны иметь аутентификацию на основе форм. Вот фрагмент, который должен быть добавлен в ваш web.xml

<security-constraint>
    <web-resource-collection>
        <web-resource-name>pagesWitUnrestrictedAccess</web-resource-name>
        <description>No Description</description>
        <url-pattern>*.jsp</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <description>No Description</description>
        <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
</security-constraint>


<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/login.jsp</form-login-page>
        <form-error-page>/loginerror.jsp</form-error-page>
    </form-login-config>
</login-config>

Некоторые ссылки:

Вы можете проверить Широ, чтобы использовать готовую инфраструктуру безопасности и предотвратить сложную безопасность в веб-среде.

Используйте сеансы. Установите переменную сеанса для входа в систему и проверьте, что на каждой странице вы должны быть защищены.

Когда пользователь вводит учетные данные и передает их сервлету входа, добавьте имя пользователя или идентификатор пользователя в сеанс. Проверьте атрибут сеанса в заголовке приложения (так на каждой странице), что имя пользователя или идентификатор пользователя существуют в сеансе? Если да, то перенаправьте его на запрашиваемую страницу, в противном случае перенаправьте пользователя на login.jsp. например:

String var= null;
try {
    var= (String) session.getAttribute("user_name_session");
    if (var== null) {
        response.sendRedirect("/Login.jsp");
        return;
    }
} 
catch (Exception e) {
    System.out.println(e);
}

Вы можете изменить фрагмент в соответствии со своими требованиями, это самый простой способ запретить пользователю переходить на любую страницу путем копирования ссылки в другой браузер.

Spring Security 3 является мощным и простым в настройке

http://static.springsource.org/spring-security/site/docs/3.0.x/reference/ns-config.html

Это действительно лучший способ конвертировать HTTP-запрос в HTTPS-запрос

http://middlewaremagic.com/weblogic/?p=2019

Другие вопросы по тегам