안녕하세요. 오늘은 Spring Security의 context-security.xml 설정에 대해 자세히 살펴보려 합니다. 각 섹션별로 구성을 나눠서 어떤 개념과 역할이 포함되어 있는지 알아보겠습니다.
context-security.xml 설정
1. 인증 설정:
loginUrl="/cmns/login/loginUser.do"
logoutSuccessUrl="/EgovContent.do"
loginFailureUrl="/cmns/login/loginUser.do?login_error=1"
accessDeniedUrl="/sec/ram/accessDenied.do"
- loginUrl: 사용자가 인증을 위해 자신의 자격 증명을 POST할 예상되는 엔드포인트입니다.
- logoutSuccessUrl: 사용자가 성공적으로 로그아웃하면 이 URL로 리다이렉트됩니다.
- loginFailureUrl: 인증이 실패하면(예: 잘못된 자격 증명) 사용자는 이 URL로 리다이렉트됩니다.
- accessDeniedUrl: 사용자가 접근 권한이 없는 리소스에 접근하려고 할 때 리다이렉트될 엔드포인트입니다.
2. 사용자 세부 정보 설정:
데이터베이스에서 사용자 세부 정보와 해당 권한을 가져오는 것과 관련이 있습니다.
dataSource="dataSource"
jdbcUsersByUsernameQuery="SELECT ... FROM TB_USER_INFO WHERE USER_NTE_ID = ?"
jdbcAuthoritiesByUsernameQuery="SELECT ... FROM TB_USER_AUTHRT_MPP A, TB_USER_INFO B WHERE A.USER_NTE_ID = B.USER_NTE_ID AND B.USER_NTE_ID = ?"
- dataSource: 데이터베이스 소스 빈을 참조합니다.
- jdbcUsersByUsernameQuery: 제공된 사용자 이름을 기반으로 사용자 세부 정보를 가져오기 위한 SQL 쿼리입니다.
- jdbcAuthoritiesByUsernameQuery: 특정 사용자에 할당된 역할 또는 권한을 가져오기 위한 SQL 쿼리입니다.
3. 세션 관리:
concurrentMaxSessons="1"
concurrentExpiredUrl="/EgovContent.do"
- concurrentMaxSessons: 사용자가 가질 수 있는 동시 세션의 최대 수를 지정합니다. 여기서는 사용자당 하나의 세션만 허용됩니다.
- concurrentExpiredUrl: 새 세션을 생성하고 최대 수를 초과하면 이전 세션은 만료되고 사용자는 이 URL로 리다이렉트됩니다.
4. 보안 헤더:
sniff="true"
xframeOptions="SAMEORIGIN"
xssProtection="true"
csrf="false"
- sniff: MIME 타입 감지 보호를 활성화 또는 비활성화합니다.
- xframeOptions: 콘텐츠를 iframe에 어떻게 포함시킬 수 있는지 결정합니다.
- xssProtection: XSS (Cross-Site Scripting) 보호를 활성화 또는 비활성화합니다.
- csrf: CSRF (Cross-Site Request Forgery) 보호를 활성화 또는 비활성화합니다.
5. 역할 계층 구조 및 접근 제어:
이 섹션에서는 URL 패턴, 메서드 등에 따라 계층적 역할 및 해당 접근 제어를 정의합니다.
- sqlHierarchicalRoles: 데이터베이스에서 역할 계층 구조를 가져옵니다.
- sqlRolesAndUrl: 특정 URL 패턴에 역할을 매핑합니다.
- sqlRolesAndMethod: 특정 HTTP 메서드에 역할을 매핑합니다.
- sqlRolesAndPointcut: 특정 포인트컷에 역할을 매핑합니다.
- sqlRegexMatchedRequestMapping: 특정 정규 표현식 기반 URL 패턴에 역할을 매핑합니다.
6. 추가 초기화:
<egov-security:initializer id="initializer" supportMethod="true" supportPointcut="false" />
이 초기화는 추가 구성 옵션을 설정합니다. supportMethod 속성이 true로 설정된 경우 메서드 수준 보안이 활성화됩니다.
이 분석을 통해 context-security.xml의 Spring Security 설정의 다양한 구성 요소와 역할에 대한 명확한 이해를 얻으셨기를 바랍니다. 즐거운 코딩되세요~! 🚀
끄적끄적
lyong88.tistory.com
Home
wooyung's IT 블로그 WooyIT
www.wooyit.com
'JAVA' 카테고리의 다른 글
🌟 폭발적 인기! Java Servlet으로 웹 개발 레벨 UP 🚀 (0) | 2024.12.11 |
---|---|
Spring Web Application 구동 과정, 이것만 알면 당신도 Spring 마스터! (0) | 2024.12.03 |
log4j2.xml을 사용하여 애플리케이션의 로깅 구성 관리 (0) | 2023.07.20 |
리눅스 jBoss 서버에 egovframe 3.8 배포시 "Failed services" 오류 해결 방법 (0) | 2023.07.20 |
Maven에서 Tibero6 JDBC 의존성 추가하기 (0) | 2023.07.14 |