Рубрики
Без рубрики

Пример пользовательской формы входа в систему Spring Security

– Пример Пользовательской формы входа в систему Spring Security

По умолчанию, если форма входа не указана, Spring Security автоматически создаст форму входа по умолчанию. Пожалуйста, обратитесь к этому – Пример Spring Security hello world .

В этом уроке мы покажем вам, как создать пользовательскую форму входа для Spring Security (пример XML).

Используемые технологии:

  1. Пружина 3.2.8. ОСВОБОЖДЕНИЕ
  2. Защита пружины 3.2.3.ОСВОБОЖДЕНИЕ
  3. Затмение 4.2
  4. JDK 1.6
  5. Мавен 3

1. Демонстрация проекта

2. Структура каталогов

Просмотрите окончательную структуру каталогов этого руководства.

3. Конфигурация безопасности Spring

Определил вашу пользовательскую форму входа в систему в XML-файле Spring. Смотрите объяснение ниже:

  1. вход-страница=”/вход” – Страница для отображения пользовательской формы входа в систему
  2. аутентификация-сбой -url=”/ошибка входа?” – Если аутентификация не удалась, перейдите на страницу /вход в систему? ошибка
  3. выход из системы -успешный -url=”/вход в систему?выход из системы” – В случае успешного выхода из системы перейдите к просмотру /выход из системы
  4. имя пользователя-параметр= “имя пользователя” – имя запроса, которое содержит “имя пользователя”. В HTML это имя входного текста.
  5. – Включите защиту от подделки межсайтовых запросов (CSRF), обратитесь к этой ссылке . В XML по умолчанию защита CSRF отключена.

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



	
		
		
		
		
		
	

	
		
		  
			
		  
		
	


В приведенном выше поздравлении, /администратор и все его подпапки защищены паролем.

4. Пользовательская Форма Входа В Систему

Пользовательская форма входа в систему, соответствующая приведенной выше (шаг 3) Поздравление с весенней безопасностью. Это должно быть само собой разумеющимся.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>


Login Page




	

Spring Security Custom Login Form (XML)

Login with Username and Password

${error}
${msg}
User:
Password:

И две другие страницы JSP, кстати admin.jsp защищен паролем Spring Security.

<%@page session="false"%>


	

Title : ${title}

Message : ${message}

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@page session="true"%>


	

Title : ${title}

Message : ${message}

Welcome : ${pageContext.request.userPrincipal.name} | Logout

5. Пружинный контроллер MVC

Простой контроллер.

package com.mkyong.web.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloController {

	@RequestMapping(value = { "/", "/welcome**" }, method = RequestMethod.GET)
	public ModelAndView welcomePage() {

		ModelAndView model = new ModelAndView();
		model.addObject("title", "Spring Security Custom Login Form");
		model.addObject("message", "This is welcome page!");
		model.setViewName("hello");
		return model;

	}

	@RequestMapping(value = "/admin**", method = RequestMethod.GET)
	public ModelAndView adminPage() {

		ModelAndView model = new ModelAndView();
		model.addObject("title", "Spring Security Custom Login Form");
		model.addObject("message", "This is protected page!");
		model.setViewName("admin");

		return model;

	}

	//Spring Security see this :
	@RequestMapping(value = "/login", method = RequestMethod.GET)
	public ModelAndView login(
		@RequestParam(value = "error", required = false) String error,
		@RequestParam(value = "logout", required = false) String logout) {

		ModelAndView model = new ModelAndView();
		if (error != null) {
			model.addObject("error", "Invalid username and password!");
		}

		if (logout != null) {
			model.addObject("msg", "You've been logged out successfully.");
		}
		model.setViewName("login");

		return model;

	}

}

6. Демонстрация

6.1. Страница приветствия – http://localhost:8080/spring-security-loginform-xml/

6.2 Попытайтесь получить доступ /администратор страница, Spring Security перехватит запрос и перенаправит на /вход , и отобразится ваша пользовательская форма входа в систему.

6.3. Если имя пользователя и пароль неверны, будут отображаться сообщения об ошибках, и Spring перенаправит на этот URL-адрес /логин?ошибка .

6.4. Если имя пользователя и пароль верны, Spring перенаправит на исходный запрошенный URL-адрес и отобразит страницу.

6.5. Попробуйте выйти из системы, он перенаправит на /вход в систему?выход из системы страница.

Скачать Исходный Код

Рекомендации

  1. Пример XML-кода Spring Security Hello World
  2. Создание Пользовательской формы входа в систему
  3. Основные моменты Spring Security 3.2.0.RC1: Защита CSRF

Оригинал: “https://mkyong.com/spring-security/spring-security-form-login-example/”