여백에 도장 찍기

Spring Security - 기본 설정 본문

Web Framework/Spring Security

Spring Security - 기본 설정

Linzyseo 2019. 7. 3. 09:33

Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects.  

the real power of Spring Security is found in how easily it can be extended to meet custom requirements

                                                                                          [ref: https://spring.io/projects/spring-security]

 

스프링 시큐리티는 자바 애플리케이션을 위한 인증과 권한 양쪽을 제공하는데 초점이 맞춰진 프레임워크이다.

스프링 시큐리티의 진정한 힘은 고객 요구사항을 만족하기 위해 얼마나 쉽게 확장되는지에서 발견할 수 있다. 

 

 

Spring Security 를 적용한 프로젝트 생성 및 서버 구동에 대해서 실습해보자.

 

Environment

  • JDK 1.8
  • Spring boot 2.1.6 RELEASE
  • IntelliJ IDEA (Ultimate)

 

1) spring security 기능을 사용하기 위해서는 Spring Initializer Project 생성 시 Spring Security 를 check 하거나, 

  pom.xml에 spring security에 필요한 dependency 추가 해야 한다. 

<dependency>
	<groupId>org.springframework.security</groupId>
	<artifactId>spring-security-web</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.security</groupId>
	<artifactId>spring-security-config</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.security</groupId>
	<artifactId>spring-security-core</artifactId>
</dependency>

   

 

 

 

2)  Dependency 추가 한 뒤, 아무런 설정 없이 서버를 구동 및 웹 브라우저 로드(http://localhost:8080) 하면 spring security에서 내부적으로 제공하는 login 페이지로 이동하게 된다.  

 이때는 Controller 패키지를 생성하고, 하위에 Controller java class코드에 RequestMapping을 시켜도, url이 작동되지 않는다. Spring security가 default로 막고 있기 때문! 

 

 

 

 

 3) 개발을 진행하기 위해서 관련 설정들을 해보자.  

 

  Application.java 에서 관련 configure 메소드를 설정해주던지, 아니면 따로 빼서 작성해야 한다. 

  src/main/java/analysis/interpark/system/security 하위에 WebSecurityConfig 파일을 생성한다. 

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
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    
    
    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/resources/**");
    }
    
    
    @Override
    protected void configure(HttpSecurity http) throws Exception {
    	http.csrt().disable(); 
    
        http.authorizeRequests()
                .antMatchers("/").permitAll();
    }
}

// 테스트 시에는 모든 URL을 허용하고자 위와 같이 설정하였다. 

   관련 설정에 대한 디테일은 다른 게시글에서 다룬다. 

 

 

 

 

4) 설정 후, 서버 재구동 및 브라우저 접속(localhost:8080) 접속하면 다음화면과 같다.

 

저번 포스팅에서도 설명했듯이, 이는 src/main/resources/static 하위에 index.html이 없어서 나는 오류이다. 

추가해주면, 에러가 사라지고 index.html의 내용이 load된다. 

 

JSP 코드를 추가하고 싶거나 웹 디렉터리를 생성하고 싶다면 아래의 글을 참조해보도록 하자.

https://jum-dev.tistory.com/52?category=744917

 

Comments