728x90
반응형
설정
security-context.xml
- security:form-login에 login-page 설정 추가
<security:http>
<security:form-login login-page="/customLogin" />
</security:http>
직접 특정 URI를 지정하는데, 이 때 반드시 GET 방식으로 접근하는 URI여야 한다.
src/main/java/(__.__.controller 패키지)/MemberLoginController.java
package com.spring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import lombok.extern.log4j.Log4j;
@Controller
@Log4j
public class MemberLoginController {
@GetMapping("/login")
public void loginInput(String error, String logout, Model model) {
log.info("error: " + error);
log.info("logout: " + logout);
if(error != null) {
model.addAttribute("error", "Login Error Check Your Account");
}
if(logout != null) {
model.addAttribute("logout", "Logout!!");
}
}
}
WEB-INF/views/login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Custom Login Page</h1>
<h2><c:out value="${error }"/></h2>
<h2><c:out value="${logout }"/></h2>
<form method='post' name='username' value='admin'>
<div>
<input type='text' name='username' value='admin'>
</div>
<div>
<input type='password' name='password' value='admin'>
</div>
<div>
<input type='submit'>
</div>
<input type="hidden" name="${_csrf.parameterName }" value="${_csrf.token }"/>
</form>
</body>
</html>
form의 action 속성값이 /login이다.
실제 로그인 처리 작업은 '/login'을 통해 이뤄지는데, 반드시 POST 방식으로 데이터 전송해야 한다.
<input> name 속성은 기본적으로 username과 password 이용
그리고 hidden 타입에 있는 csrf는 다음 포스팅에서 설명하겠다.
728x90
반응형
'Spring > Spring Security' 카테고리의 다른 글
[Spring Security] 4. LogoutSuccessHandler 구현 (0) | 2020.06.18 |
---|---|
[Spring Security] 3. AuthenticationSuccessHandler 구현 (0) | 2020.06.18 |
[Spring Security] 1. Spring Web Security 개념과 설정 (0) | 2020.06.17 |