간단한 예제 페이지를 통해서 시큐리티의 역할을 살펴보자.
컨트롤러의 Principal 객체를 파라미터로 인증된 사용자 정보를 받아 온다.

- 인증을 해야만 접근이 가능한 맵핑도 있다.
- 시큐리티 설정을 통해 지정할 수 있다.

- permitAll : 아무에게나 허용
- hasRole("ADMIN") : admin 권한이 있는 사람만
- .anyRequest().authenticated() : 나머지 요청은 인증이 필요
- formLogin, httpBasic 이기 때문에 폼 로그인 화면이 뜬다.

권한이 없으면 access denied 에러가 발생
에러 페이지 커스텀 가능
- 위 예제를 차근차근 구현을 해보고 설정 파일 커스텀도 해보자.
- 스프링 시큐리티가 서블릿 기반의 WebMVC와 어떻게 동작 하는지도 살펴보자.