It's Ward

[Spring] 클론코딩 - 인스타그램 만들기(2) 본문

Java/클론코딩-인스타그램

[Spring] 클론코딩 - 인스타그램 만들기(2)

I'm ward 2022. 6. 2. 03:44

2022.06.01 - [Spring Boot/클론코딩-인스타그램] - [Spring] 클론코딩 - 인스타그램 만들기(1)

 

[Spring] 클론코딩 - 인스타그램 만들기(1)

해당 프로그램은 이지업 클래스에서 진행하는 스프링부트 SNS 프로젝트 포토그램 만들기이다. (내돈내산이다) https://easyupclass.e-itwill.com/course/course_view.jsp?id=27&rtype=0&ch=course 이지업클래스 |..

its-ward.tistory.com

 

스프링 부트를 시작 후 http://localhost:8080/ 을 불러오게되면

자동으로 http://localhost:8080/login으로 이동한다. 

이유는 우리가 Spring 부트를 만들 때, 아래의 의존성을 설정했기 때문이다.

implementation 'org.springframework.boot:spring-boot-starter-security'

 

실제로 로그인 화면에서 F12(개발자모드) Network 에서 Ctrl + R을 누르면 다음과 같은 화면이 나오는데,

실제로 요청 한 데이터는 localhost 인데 상태가 302라고 나오면서 실제로는 login 화면으로나온다.(자세한 상태코드 확인은 아래 링크 참조)

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

 

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org

저 화면이 아닌 우리들의 화면을 확인 할 수있도록 com.ward.photogram에 config package를 추가한 후, SecurityConfig 클래스를 추가한다. 

 

package com.ward.photogram.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@EnableWebSecurity
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter { //시큐리티 리디렉션 페이지 관리

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable(); //기본 시큐리티의 CSRF 토큰 해제(원할한 테스트 위함)
        http.authorizeRequests() //아래와 해당하는 URL이 입력되었을때
                .antMatchers("/", "/user/**", "/image/**", "/subscribe/**", "/comment/**")
                .authenticated() //위와 같다면 and로 이동
                .anyRequest() //같지않으면
                .permitAll() // 모두 허용
                .and()
                .formLogin() //만들어둔 form으로 로그인화면 이동
                .loginPage("/auth/signin") //resource/static/auth/signin.jsp 열어라
                .defaultSuccessUrl("/"); //아니면 root(localhost:8080) 열어라
    }
}

해당 프로그램을 제작 후 다시 실행하면, 리디렉션 파일이 localhost:8080/login이 아닌 localhost:8080/auth/signin으로 이동하는것을 확인할 수 있다. 

localhost 302가 login이 아닌 auth/signin으로 이동한모습

 

해당 자료는 CSFR-tocken 해제 버전입니다. 

https://github.com/ItsWard/project-photogram/commits/main

 

GitHub - ItsWard/project-photogram: 인스타그램 클론코딩 프로젝트 입니다. (개인공부용)

인스타그램 클론코딩 프로젝트 입니다. (개인공부용). Contribute to ItsWard/project-photogram development by creating an account on GitHub.

github.com

 

 

만약 Path with "WEB-INF" or "META-INF" 과 같은 오류가 발생하였다면, 아래의 포스팅을 확인하도록 하자

2022.06.02 - [Spring Boot/Spring Boot 설정 등 기타] - [Spring] Path with "WEB-INF" or "META-INF" 에러 해결

 

[Spring] Path with "WEB-INF" or "META-INF" 에러 해결

Spring Boot에서 jsp파일을 작동시키려고 하나, 최근 Spring Boot가 JSP를 잘 지원을안한다는 글을 본적이 있다. JSP 파일을 Spring의 내장된 tomcat 에서 정상적으로 열기 위해서는 다음과 같은 의존성을 추

its-ward.tistory.com

 

//여담으로 현재 Spring에서는 WebSecurityConfigurerAdapter을 사용하지 않도록 권장하는 것 같다. 다음과 같은 시큐리티를 이용해 사용해볼 예정이다.

https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter

 

Spring Security without the WebSecurityConfigurerAdapter

<p>In Spring Security 5.7.0-M2 we <a href="https://github.com/spring-projects/spring-security/issues/10822">deprecated</a> the <code>WebSecurityConfigurerAdapter</code>, as we encourage users to move towards a component-based security configuration.</p> <p

spring.io

 

Comments