Spring Boot

스프링 부트, 스프링 시큐리티, Spring Boot, Spring Security

배써찰리 2019. 5. 22. 11:25

스프링 부트, Maven 환경에서 Spring Security적용을 통한

인증처리, 메뉴 권한 제어 방법

잘 정리된 링크

1. Spring Boot 기반 Spring Security 회원가입 / 로그인 구현하기 

https://xmfpes.github.io/spring/spring-security/

2. Spring security 를 사용해보자!- 사용자 추가부터 로그인까지!

https://a1010100z.tistory.com/entry/Spring-Spring-security-%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EC%9E%90-%ED%9A%8C%EC%9B%90%EA%B0%80%EC%9E%85%EB%B6%80%ED%84%B0-%EB%A1%9C%EA%B7%B8%EC%9D%B8%EA%B9%8C%EC%A7%80-Spring-boot-Gradle-MyBatis-MySQL

불러오는 중입니다...

 

위 내용을 축약하여 정리하면 아래와 같다.

 

시큐리티의 구조

client <--> Filter <--> FilterChainProxy <--> Filter <--> Servlet
                                 |
                      Spring Security Filters
                        Filter<-->Filter

Spring Security 관련 여러 필터들이 존재하며,
DispatcherServlet 을 호출하기 전에 체크하게 됨.
setOrder로 필터간의 순서나 우선순위를 정해서 커스터마이징 가능


pom.xml파일에 추가

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>


src/main/../Config 디렉토리 밑에 SecurityConfig.java 생성

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

  @Override
  public void configure(WebSecurity web) throws Exception
  {
      web.ignoring().antMatchers("/css/**", "/script/**", "image/**", "/fonts/**", "lib/**");
  }

  @Override
  protected void configure(HttpSecurity http) throws Exception{
	http.authorizeRequests()
	//.antMatchers("/admin/**").hasRole("ADMIN")
	.antMatchers("/**").permitAll();
	}
}

기본설정을 통해 모든 사이트가 인증없으면 접근 안되게 된다.
우선 모든 페이지 인증을 해제한다.
permitAll을 설정한다.

그리고...(추가정리)...