Как защитить мое веб-приложение на 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-запрос