[재질문3] 회원가입후 서버를 재가동 관련 - authorityResource.reload();
- 작성자 :
- 송*성
- 작성일 :
- 2021-01-29 13:58:55
- 조회수 :
- 3,292
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
본 커뮤니티의 게시판을 통해서 도움을 받고는 있는데요.
5건 정도의 문의를 남기면 제대로 처리된적이 한번정도 밖에 안됩니다.
분명히 다른 개발자분들은 잘 처리되시는거 같은데요.... 왜 저만 안되는지....
제가 다른 건으로도 문의를 몇건 남겼는데요. 더이상 남기지 않는 이유는 그냥 포기 차원에서 추가 문의를 남기지 않았습니다.
문의를 남겨서 정상적으로 처리되는 건이 20%채 안되니 많이 답답합니다.
본 건의 대해서 마지막 질문을 남겨드립니다.
Controller단에서
mberManageVO = mberManageService.selectUser(mberManageVO.getMberId()); // 회원 insert
// 권한정보를 할당
AuthorGroup authorGroup = new AuthorGroup();
authorGroup.setUniqId(mberManageVO.getUniqId());
authorGroup.setMberTyCode("USR01");
authorGroup.setAuthorCode("ROLE_USER");
egovAuthorGroupService.insertAuthorGroup(authorGroup);
authorityResource.reload(); // <<<<<<<< 적용이 안되는현상
이렇게 적용은 된상태구요.
authorityResource.reload(); 해당 부분을 찾아보니
AuthorityResourceMetadata.class 에
public void reload() throws Exception {
List<Map<String, Object>> list = egovAccessService.getRoleAndUrl();
Iterator<Map<String, Object>> iterator = list.iterator();
resourceMap.clear();
while (iterator.hasNext()) {
resourceMap.add(iterator.next());
}
LOGGER.info("##### AuthorityResourceMetadata >>> Role Mappings reloaded at Runtime #####");
}
이부분인데요...
egovAccessService.getRoleAndUrl();
이부분은 egov-com-access.xml 화일의
sqlRoleAndUrl="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"
이부분을 체크하는거 아닌가요???
해당 유저의
sqlAuthorityUser="SELECT CONCAT(B.USER_SE, B.USER_ID) USERID, A.AUTHOR_CODE AUTHORITY
FROM COMTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B
WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID"
이부분을 체크를 해야 할꺼 같은데요? 아닐까요??
결론적으로
List<String> authList = (List<String>)EgovUserDetailsHelper.getAuthorities();
해당 값을 못 가지고 오는데 제가 별도 수동으로 처리를 할수 있는 방법이 있다면 session 에 어떠한 값을 넣어야 할까요?
5건 정도의 문의를 남기면 제대로 처리된적이 한번정도 밖에 안됩니다.
분명히 다른 개발자분들은 잘 처리되시는거 같은데요.... 왜 저만 안되는지....
제가 다른 건으로도 문의를 몇건 남겼는데요. 더이상 남기지 않는 이유는 그냥 포기 차원에서 추가 문의를 남기지 않았습니다.
문의를 남겨서 정상적으로 처리되는 건이 20%채 안되니 많이 답답합니다.
본 건의 대해서 마지막 질문을 남겨드립니다.
Controller단에서
mberManageVO = mberManageService.selectUser(mberManageVO.getMberId()); // 회원 insert
// 권한정보를 할당
AuthorGroup authorGroup = new AuthorGroup();
authorGroup.setUniqId(mberManageVO.getUniqId());
authorGroup.setMberTyCode("USR01");
authorGroup.setAuthorCode("ROLE_USER");
egovAuthorGroupService.insertAuthorGroup(authorGroup);
authorityResource.reload(); // <<<<<<<< 적용이 안되는현상
이렇게 적용은 된상태구요.
authorityResource.reload(); 해당 부분을 찾아보니
AuthorityResourceMetadata.class 에
public void reload() throws Exception {
List<Map<String, Object>> list = egovAccessService.getRoleAndUrl();
Iterator<Map<String, Object>> iterator = list.iterator();
resourceMap.clear();
while (iterator.hasNext()) {
resourceMap.add(iterator.next());
}
LOGGER.info("##### AuthorityResourceMetadata >>> Role Mappings reloaded at Runtime #####");
}
이부분인데요...
egovAccessService.getRoleAndUrl();
이부분은 egov-com-access.xml 화일의
sqlRoleAndUrl="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"
이부분을 체크하는거 아닌가요???
해당 유저의
sqlAuthorityUser="SELECT CONCAT(B.USER_SE, B.USER_ID) USERID, A.AUTHOR_CODE AUTHORITY
FROM COMTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B
WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID"
이부분을 체크를 해야 할꺼 같은데요? 아닐까요??
결론적으로
List<String> authList = (List<String>)EgovUserDetailsHelper.getAuthorities();
해당 값을 못 가지고 오는데 제가 별도 수동으로 처리를 할수 있는 방법이 있다면 session 에 어떠한 값을 넣어야 할까요?
A
안녕하세요.
표준프레임워크센터입니다.
여러번 문의하셨는데 정확한 답변을 드리지 못해 죄송합니다.
센터에서 확인해보니 오류가 있음을 확인했으며
수정된 버전을 재배포하였습니다.
프레임워크 3.9.0 버전을 사용중이시라면
pom.xml 의 access 설정을 다음과 같이 수정하시면
재배포된 라이브러리를 받으실 수 있습니다.
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.access</artifactId>
<version>3.9.1</version>
</dependency>
다시 한번 불편을 드려 죄송합니다.
표준프레임워크센터입니다.
여러번 문의하셨는데 정확한 답변을 드리지 못해 죄송합니다.
센터에서 확인해보니 오류가 있음을 확인했으며
수정된 버전을 재배포하였습니다.
프레임워크 3.9.0 버전을 사용중이시라면
pom.xml 의 access 설정을 다음과 같이 수정하시면
재배포된 라이브러리를 받으실 수 있습니다.
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.access</artifactId>
<version>3.9.1</version>
</dependency>
다시 한번 불편을 드려 죄송합니다.