본문 바로가기

이론/JSP&Spring&등등 이론

[Spring] Spring Security 에 대해

Spring Security

보안: "인증(Authentication)" + "권한(Authorization)"

  • 인증: 현재 사용자가 누구인지 확인하는 과정 ex) id/pw

  • 권한: 현재 사용자가 특정 대상(url/기능 등)을 사용(접근)할 권한이 있는지 검사

  • UI 처리: 권한이 없는 사용자가 접근했을 때, 알맞은 에러를 보여주고나 인증을 위한 화면으로 이동

    ex) 회원이 관리자 페이지로 이동했을 시: "잘못된 접근이라는 페이지 보여주기"(403)

    ​ 로그인 하지 않은 사용자가 관리자 페이지로 이동했을 시: "로그인 폼 보여주기"

인증, 인가, UI처리는 각 애플리케이션마다 유사한 구조를 갖기 때문에 기본 틀을 제공해 주는 것이 Spring Security

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter
{
@Override
public void configure(WebSecurity web) throws Exception
{
// 예를들어 이런식으로 인증할것들을 풀어주는겁니다. (주로 리소스)
web.ignoring().antMatchers("/css/**", "/script/**", "/");
}
@Override
protected void configure(HttpSecurity http) throws Exception
{
// 여기에선 리소스외에 페이지의 인증/비인증/인증권한등을 설정하는게 좋은것 같습니다.
http.authorizeRequests()
// 어드민 권한으로만 접근할 수 있는 경로.
.antMatchers("/admin/**").access("ROLE_ADMIN");
}
}