http
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.addFilter(corsFilter)
.formLogin().disable()
.httpBasic().disable()
jwt 사용을 위해서는 위와같이 SessionCreationPolicy.STATELESS를 통해 session을 사용하지 않고, formLogin()과 httpBasic()를 비활성화 시킨다.
addfilter는 모든 요청이 CorsFilter를 타서 크로스오리진 요청이 와도 다 허용할 수 있게 만들었다.
spring security에는 기본적인 시큐리티 filter와 내가 만들수 있는 커스텀 filter가 있다. jwt에서 인증절차를 구현하기위해 filter를 만들어보자.
if(req.getMethod().equals("POST")) {
System.out.println("POST 요청됨");
String headerAuth = req.getHeader("Authorization");
System.out.println(headerAuth);
System.out.println("필터3");
if(headerAuth.equals("cos")) {
chain.doFilter(req, res);
} else {
PrintWriter out = res.getWriter();
out.println("인증안됨");
}
}
filter 예제코드를 작성해 보았다. 요청이 POST일 경우, 그리고 header값으로 cos가 들어왔을 경우 chain.dofliter()를 통해 체인의 다음 필터로 넘긴다. 이때 다음 필터는 스프링 시큐리티 필터의 다음값을 의미한다.
좋은 글 잘 읽었습니다, 감사합니다.