728x90
SECURITY AJAX바닐라 방식일떄
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>미누천사</h1>
<form action="/sec/logout" method="post">
<sec:csrfInput/>
<button>로그아웃 이지용!!</button>
</form>
<input type="text" id="bj" value="범진 메롱"><br>
<button onclick="fAjax()">아작스 전송</button>
<script>
//csrf 토큰은 get방식에는 안 보내도 됨!
//서버에서 발행된 헤더네임과 토큰갑사 저장
var header = '${_csrf.headerName}';
var token = '${_csrf.token}';
var myBJ = document.querySelector("#bj")
function fAjax(){
console.log(myBJ.value)
let xhr = new XMLHttpRequest();
xhr.open("post","/sec/angma/seoju",true);
//바닐라 자바스크립트 사용시 AJAX send 전에 헤더값 세팅 필요
xhr.setRequestHeader(header,token);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status ==200){
console.log(xhr.responseText)
}
}
xhr.send(myBJ.value)
}
</script>
</body>
</html>
요소에 보면 header와 token이 변형된걸 볼 수 있다
이걸 꼭 항상 확인하고 넘어가야함!!
시큐리티가 정말 꼴보기 싫다하면
security-context.xml에
이거 추가해주면 됨
<!-- <security:csrf disabled="true"/> -->
로그인 페이지 만들어주는것이 아닌 내가 만든 것을 쓰고 싶다하면
auto-config="true"지워주고
<security:form-login login-page="/mylogin" /> 를 넣어줌
ㄴ이거는 controller경로를 찾아가서 처리할 그에 맞는 url로 지정해줌
그리고 컨트롤러 생성
그럼이제 jsp생성
mylogin.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>WelCom Please Login</h1>
<form action="/sec/login" method="post">
<sec:csrfInput/>
ID<input type="text" name="username" value=""><br>
PASSWORD<input type="password" name="password" value=""><br>
<input type="submit" value="Login">
</form>
<hr>
<h1>Good bye Logout</h1>
<form action="/sec/logout" method="post">
<sec:csrfInput/>
<input type="submit" value="Logout">
</form>
</body>
</html>
실행해보면 내가 설정한 화면 나옴
'Spring > Spring 기초' 카테고리의 다른 글
e7e샘의 시큐리티 설정3 (0) | 2023.08.30 |
---|---|
e7e샘의 시큐리티 설정2(멀티) (0) | 2023.08.30 |
e7e샘의 시큐리티 설정 (0) | 2023.08.29 |
Sweetalert 사용방법(Alert창 꾸미기) (0) | 2023.08.28 |
e7e샘의 파일 업로드 및 다운로드!!(유용) (0) | 2023.08.28 |