[공통컴포넌트]권한관리 부분 질문입니다.
- 작성자 :
- 조*준
- 작성일 :
- 2016-01-04 14:14:16
- 조회수 :
- 2,760
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
안녕하십니까 공통컴포넌트의 권한관리에 대해서 질문이 있어서 글 올립니다.
<egov-security:secured-object-config id="securedObjectConfig"
sqlHierarchicalRoles="
SELECT a.CHLDRN_ROLE child, a.PARNTS_ROLE parent
FROM COMTNROLES_HIERARCHY a LEFT JOIN COMTNROLES_HIERARCHY b on (a.CHLDRN_ROLE = b.PARNTS_ROLE)"
sqlRolesAndUrl="
SELECT a.ROLE_PTTRN url, b.AUTHOR_CODE authority
FROM COMTNROLEINFO a, COMTNAUTHORROLERELATE b
WHERE a.ROLE_CODE = b.ROLE_CODE
AND a.ROLE_TY = 'url' ORDER BY a.ROLE_SORT"
sqlRolesAndMethod="
SELECT a.ROLE_PTTRN method, b.AUTHOR_CODE authority
FROM COMTNROLEINFO a, COMTNAUTHORROLERELATE b
WHERE a.ROLE_CODE = b.ROLE_CODE
AND a.ROLE_TY = 'method' ORDER BY a.ROLE_SORT"
sqlRolesAndPointcut="
SELECT a.ROLE_PTTRN pointcut, b.AUTHOR_CODE authority
FROM COMTNROLEINFO a, COMTNAUTHORROLERELATE b
WHERE a.ROLE_CODE = b.ROLE_CODE
AND a.ROLE_TY = 'pointcut' ORDER BY a.ROLE_SORT"
sqlRegexMatchedRequestMapping="
SELECT a.resource_pattern uri, b.authority authority
FROM COMTNSECURED_RESOURCES a, COMTNSECURED_RESOURCES_ROLE b
WHERE a.resource_id = b.resource_id
AND a.resource_type = 'url'"
/>
여기서 sqlRolesAndUrl만 사용해서 url별로 접근제한을 하도록 하려고 합니다.
다른 query를 설정하지 않으려고 해보니 라이브러리에 default로 query가 들어가 있어서 Exception이 발생했고, 별도로 sqlRolesAndUrl만 사용하도록 설정할 수 있는 방법을 찾지 못했습니다.
혹시 다른 query(sqlHierarchicalRoles, sqlRolesAndMethod, sqlRolesAndPointcut, sqlRegexMatchedRequestMapping)은 제외하고 sqlRolesAndUrl만 사용해서 url별로 접근제한하도록 하는 방법이 있을까요?
<egov-security:secured-object-config id="securedObjectConfig"
sqlHierarchicalRoles="
SELECT a.CHLDRN_ROLE child, a.PARNTS_ROLE parent
FROM COMTNROLES_HIERARCHY a LEFT JOIN COMTNROLES_HIERARCHY b on (a.CHLDRN_ROLE = b.PARNTS_ROLE)"
sqlRolesAndUrl="
SELECT a.ROLE_PTTRN url, b.AUTHOR_CODE authority
FROM COMTNROLEINFO a, COMTNAUTHORROLERELATE b
WHERE a.ROLE_CODE = b.ROLE_CODE
AND a.ROLE_TY = 'url' ORDER BY a.ROLE_SORT"
sqlRolesAndMethod="
SELECT a.ROLE_PTTRN method, b.AUTHOR_CODE authority
FROM COMTNROLEINFO a, COMTNAUTHORROLERELATE b
WHERE a.ROLE_CODE = b.ROLE_CODE
AND a.ROLE_TY = 'method' ORDER BY a.ROLE_SORT"
sqlRolesAndPointcut="
SELECT a.ROLE_PTTRN pointcut, b.AUTHOR_CODE authority
FROM COMTNROLEINFO a, COMTNAUTHORROLERELATE b
WHERE a.ROLE_CODE = b.ROLE_CODE
AND a.ROLE_TY = 'pointcut' ORDER BY a.ROLE_SORT"
sqlRegexMatchedRequestMapping="
SELECT a.resource_pattern uri, b.authority authority
FROM COMTNSECURED_RESOURCES a, COMTNSECURED_RESOURCES_ROLE b
WHERE a.resource_id = b.resource_id
AND a.resource_type = 'url'"
/>
여기서 sqlRolesAndUrl만 사용해서 url별로 접근제한을 하도록 하려고 합니다.
다른 query를 설정하지 않으려고 해보니 라이브러리에 default로 query가 들어가 있어서 Exception이 발생했고, 별도로 sqlRolesAndUrl만 사용하도록 설정할 수 있는 방법을 찾지 못했습니다.
혹시 다른 query(sqlHierarchicalRoles, sqlRolesAndMethod, sqlRolesAndPointcut, sqlRegexMatchedRequestMapping)은 제외하고 sqlRolesAndUrl만 사용해서 url별로 접근제한하도록 하는 방법이 있을까요?
A
조호준님, 안녕하세요.
스프링 시큐리티 간소화 관련 위키가이드가 있습니다. 확인하시며 작업하시면 될 것 같습니다.
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3:fdl:server_security:xmlschema
위 링크의 가장 아랫쪽에 보시면, Security Config Initializer에 supportPointcut, supportMethod 등의 속성이 있습니다. initializer에서 해당 속성을 false로 설정하시면 서버 기동시 해당 속성을 참조하지 않게 됩니다.
sqlHierarchicalRoles의 경우 계층 처리를 roleHierarchyString 속성을 통해 수동으로 설정이 가능합니다. 다만, 둘다 설정하지 않을 경우 실행환경의 기본 쿼리에 의해 쿼리 오류가 높은 확률로 발생하오니, 둘 중 하나를 선택하시어 작성하시되, DB에서 조회하는 방법을 권장 드립니다.
감사합니다.
스프링 시큐리티 간소화 관련 위키가이드가 있습니다. 확인하시며 작업하시면 될 것 같습니다.
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3:fdl:server_security:xmlschema
위 링크의 가장 아랫쪽에 보시면, Security Config Initializer에 supportPointcut, supportMethod 등의 속성이 있습니다. initializer에서 해당 속성을 false로 설정하시면 서버 기동시 해당 속성을 참조하지 않게 됩니다.
sqlHierarchicalRoles의 경우 계층 처리를 roleHierarchyString 속성을 통해 수동으로 설정이 가능합니다. 다만, 둘다 설정하지 않을 경우 실행환경의 기본 쿼리에 의해 쿼리 오류가 높은 확률로 발생하오니, 둘 중 하나를 선택하시어 작성하시되, DB에서 조회하는 방법을 권장 드립니다.
감사합니다.