Security.xml와 태그 정리
- Security.xml 이란?
로그인 기능을 이용하여 사용자를 인증하고 권한을 체크하는 작업을 구현해둔 보안 프레임워크
<security:global-method-security secured-annotations="enabled"/>
메소드레벨에서 @Secured 를 통해 사용 가능, Secured("속성")으로 사용, 비인가자 접근 시 AccessDeniedException
<http pattern="/images/**" security="none" />
보안에서 제외 되어야 하는 파일 설정
<intercept-url pattern="/login/loginForm.do" access="permitAll" />
권한이 없어도 접근 가능
<intercept-url pattern="/admin/**" access="hasRole('ADMIN')"
ADMIN권한이 있어야 접근 가능
<intercept-url pattern="/**" access="hasAnyRole('USER, ADMIN')" />
USER 또는 ADMIN 권한이 있어야 접근 가능
<intercept-url pattern="/URL/**" access="permitAll" />
로그인 하지 않아도 접근 가능한 URL 설정
<form-login> : 로그인 기능을 커스터마이징
추가 설정 내용은 더보기를 참고해 주세요!
- login-page="/login/loginForm.do" : 로그인 페이지를 지정합니다.
- default-target-url="/home.do" : 로그인 후에 기본으로 보여질 페이지 설정
- authentication-failure-url="/login/loginForm.do?error" : 로그인 실패시 보여질 페이지 설정
- username-parameter="id" : form에 아이디에 Id속성. 기본값 : username
- password-parameter="password" : form에 아이디에 password속성. 기본값 : password
<logout> : 로그인 아웃 기능을 커스터마이징
추가 설정 내용은 더보기를 참고해 주세요!
- logout-url="/logout" : 로그아웃에 사용될 페이지 설정. 기본값 : /logout
- logout-success-url="/home.do" : 로그아웃에 성공하면 이동할 페이지 설정
<access-denied-handler error-page="/login/accessDenied.do" />
로그인 이후 권한이 없는 경로에 요청시 보이는 페이지를 지정합니다.
<authentication-manager> 더보기 참고!!
<authentication-provider ref="aspAuthenticatioProvider"/>
<beans:bean id="aspAuthenticatioProvider" class="salgu.common.security.AspAuthenticationProvider" />
인증을 관리하는 매니져로 provider목록을 보면서 provider가 실행 가능한 경우에 authenticate메소드를 호출하여 인증 철차를 수행한다.
- CSRF(Cross Site Request Frogery)란?
사용자가 자신의 의지와 상관없이 공격자(해커)가 의도한 대로 수정,등록,삭제 등의 행위를 웹사이트에 요청하게 하는 공격이다.