티스토리 뷰
Spring security Setting
Spring boot 에 Securiry dependency를 추가하고 간단하게 설정하는 방법을 포스팅합니다.
부족한 부분은 계속 수정할 예정입니다.
build.gradle
implementation 'org.springframework.boot:spring-boot-starter-security'
위와 같이 dependecy 추가하고 프로젝트를 실행해보면
모든 요청에 Security가 걸리게 되어 기본 로그인 화면으로 Redirect됩니다.
기본 로그인 정보는
콘솔 log 를 확인해보면 아래와 같이 자동으로 비밀번호가 생성된 것을 확인할 수 있습니다.
Default ID : user
하지만 모든 연결을 Security가 막는것을 원하지 않기 때문에.
몇가지 셋팅을 진행하도록 합니다.
- SecurityConfiguration.java
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/h2-console/**").permitAll()
.mvcMatchers("/", "/login", "/sign-up").permitAll()
.anyRequest().authenticated()
.and()
.csrf().ignoringAntMatchers("/h2-console/**")
.and()
.headers()
.addHeaderWriter(
new XFrameOptionsHeaderWriter(
new WhiteListedAllowFromStrategy(Arrays.asList("localhost"))
)
)
.frameOptions().sameOrigin();
}
}
하나씩 천천히 살펴보겠습니다.
@Configuration
해당 클래스는 설정에 관여하는 클래스임을 명시@EnabledWebSecurity
웹 보안을 활성화WebSecurityConfigurerAdapter
를 상속받아야 한다
HttpSecurity
를 인자로 받는Configure
를 Override한다.antMatchers()
안에 지정된 경로는.permitAll()
.authenticated()
등 다양하게 설정 해줄 수 있다..mvcMatchers
는/login
/login.html
/login.js
URi 뿐만 아니라 Spring MVC pattern을 감지..? 한다..anyRequest()
위에 설정을 제외한 요청은 모두.authenticated()
인증이 필요한 요청으로 설정한다..csrf().ignoringAntMatchers('/h2-console/**')
- h2-console에 접속해서 로그인을 하면 csrf 에러가 발생하기 때문에
/h2-console/**
로 오는 요청은 csrf 검증 해제하는 설정
- h2-console에 접속해서 로그인을 하면 csrf 에러가 발생하기 때문에
아직 익숙하지 않아서 좀 지저분 하지만,
csrf 와 X-frame Header체크 까지 해제해주었습니다.
많은 분들에게 도움이 되었길 바랍니다.
감사합니다.
References
'Dev > Spring' 카테고리의 다른 글
Spring Web Static Resources (0) | 2020.11.11 |
---|---|
Spring boot 프로젝트 만들기 (0) | 2020.10.21 |
Spring에서 RestTemplate로 API 호출하기 (0) | 2020.09.01 |
Spring boot @Formula사용해서 Count Query 하기 (2) | 2020.07.12 |
Spring Security Password Encoder 적용해보기 (0) | 2020.06.01 |
- Total
- Today
- Yesterday
- 웹서비스
- JPA
- 스프링부트 시작하기
- API
- Java
- spring web
- 스프링
- mapstruct
- @formula
- boot
- springboot
- Spring
- ControllerAdvice
- Python
- paawordencoder
- ubuntu
- like절
- 유사결과
- booleanExpression
- QueryDSL
- springsecurity
- 스프링시큐리티
- howtoinstallnginx
- 개발
- java11
- FastAPI
- 스프링부트
- ResourceHttpReqeustHandler
- 자바
- Security
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |