개인 공부 상자/참고 자료

Security.xml와 태그 정리

RSpring41 2021. 10. 5. 18:20

- 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)란?
사용자가 자신의 의지와 상관없이 공격자(해커)가 의도한 대로 수정,등록,삭제 등의 행위를 웹사이트에 요청하게 하는 공격이다.