[java] 스프링 시큐리티에서의 개별 페이지 보호 설정
스프링 시큐리티를 사용하면 웹 애플리케이션의 보안을 쉽게 구현할 수 있습니다. 시큐리티를 사용하여 접근 권한을 가진 사용자만이 특정 페이지에 접근할 수 있도록 설정할 수 있습니다. 이를 위해 스프링 시큐리티에서 intercept-url
엘리먼트를 사용하여 개별 페이지의 보호 설정을 할 수 있습니다.
<http>
<!-- 기본 보안 설정 -->
<intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN')" />
<intercept-url pattern="/user/**" access="hasAnyRole('ROLE_ADMIN', 'ROLE_USER')" />
<intercept-url pattern="/" access="permitAll" />
<!-- 사용자 정의 보안 설정 -->
<intercept-url pattern="/private/**" access="isAuthenticated()" />
<!-- 로그인 페이지 설정 -->
<form-login login-page="/login" default-target-url="/home" authentication-failure-url="/login?error" />
<!-- 로그아웃 설정 -->
<logout logout-success-url="/logout" />
</http>
위의 예시에서 /admin/**
는 “ROLE_ADMIN” 권한을 가진 사용자만 접근할 수 있으며, /user/**
는 “ROLE_ADMIN” 또는 “ROLE_USER” 권한을 가진 사용자만 접근할 수 있습니다. /private/**
는 인증된 사용자만 접근할 수 있도록 설정되어 있고, /
는 모든 사용자가 접근할 수 있는 페이지입니다.
또한, form-login
엘리먼트를 사용하여 로그인 페이지를 설정하고, default-target-url
은 로그인 성공 후 이동할 페이지, authentication-failure-url
은 로그인 실패 시 이동할 페이지를 지정할 수 있습니다. logout
엘리먼트는 성공적으로 로그아웃 한 후 이동할 페이지를 설정하는 데 사용됩니다.
이러한 보안 설정을 통해 스프링 시큐리티를 사용하는 웹 애플리케이션의 특정 페이지를 보호할 수 있습니다.
참고 자료: