일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Spring
- 그래프큐엘
- 소프트웨어의 품격
- 도커 이미지 빌드
- 스프링부트 도커
- 스프링 시큐리티 설정
- 스프링di
- 비기능적 요구사항
- 수정자주입
- 자바 필터
- ioc컨테이너
- 동적파라미터
- 스프링 포매터
- 스프링시큐리티
- Atomicity
- jpa lazy
- jpa no session
- 스프링
- 토비의 스프링
- fetch join
- open-session-in-view
- 정적팩토리메서드
- java predicate
- method refetence
- 기능적 요구사항
- kotlin ::
- 생성자주입
- IOC
- spring formatter
- kotlin 리팩터링
Archives
- Today
- Total
공부기록
[spring security]레거시 프로젝트에 스프링 시큐리티를 적용해보자.(1) 본문
반응형
레거시 프로젝트는 의존성관리를 메이븐에 맡긴다해도 일일이 추가해줘야하기 떄문에 매우 귀찮다 ㅠ
따라서 스프링 부트의 spring-boot-starter-security
의 자식들을 추가해주겠다.
이외에도 spring-aop
가 있지만, spring-webmvc
에 종속되어있기떄문에 따로 추가는 안했다.
다음으로 시큐리티 설정을 해보자.
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.mvcMatchers("/", "/index").permitAll() //이와 같은 요청에는 모든 사용자가 접근가능하다.
.anyRequest().authenticated(); //위와 같이 permit을 준 요청 이외 어떤 요청이든 인증이 필요하다.
}
}
이렇게 코딩을 해도 모든 uri 요청이 다 허용된다. 왜냐면 필터를 안걸어줬기 떄문.web.xml
에 다음과 같이 추가해주자. (한글 인코딩이 깨질 수 있으니 encodingFilter
밑에 추가해줄 것.)
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
접속해보자. /index
, /
외 요청에는 403 Access Denied
이 뜨는 걸 볼 수 있다.
/index
와 /
요청은 잘 먹히지만 css가 깨진다
그 이유는 css와 같은 정적리소스 파일들은 /resources
에 매핑되는데, 여기도 권한을 줘야한다 코드를 바꿔보자
http.authorizeRequests()
.mvcMatchers("/resources/**").permitAll()
.mvcMatchers("/", "/index").permitAll()
.anyRequest().authenticated();
http.formLogin(); //기본적인 로그인 form을 사용하겠다.
/resources
요청에 모든 사용자가 접근 가능하게 코드를 바꿨다.
css가 더이상 안깨진다.
반응형
'Spring' 카테고리의 다른 글
IoC/DI (0) | 2019.09.28 |
---|---|
스프링이 제공해주는 것들 (0) | 2019.09.28 |
[SPRING] 스프링부트 테스트관련 어노테이션 정리 (0) | 2019.08.16 |
YAML 매핑하기. @Value (0) | 2019.08.16 |
[SPRING] web.xml 보충설명 (0) | 2019.08.10 |