[재질문2] 회원가입후 서버를 재가동해야만 권한이 부여가 되는데요 방법이 없을까요?
- 작성자 :
- 송*성
- 작성일 :
- 2021-01-28 10:37:43
- 조회수 :
- 3,212
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
1. 컨트롤러 작업
MberManageController.java
mberManageService.insertMber(mberManageVO);
authorityResource.reload();
2. 권한부여 영역
EgovMberManageServiceImpl.java
/**
* 사용자의 기본정보를 화면에서 입력하여 항목의 정합성을 체크하고 데이터베이스에 저장
* @param mberManageVO 일반회원 등록정보
* @return result 등록결과
* @throws Exception
*/
@Override
public String insertMber(MberManageVO mberManageVO) throws Exception {
//고유아이디 셋팅
String uniqId = idgenService.getNextStringId();
mberManageVO.setUniqId(uniqId);
//패스워드 암호화
String pass = EgovFileScrty.encryptPassword(mberManageVO.getPassword(), EgovStringUtil.isNullToString(mberManageVO.getMberId()));//KISA 보안약점 조치 (2018-10-29, 윤창원)
mberManageVO.setPassword(pass);
String result = mberManageDAO.insertMber(mberManageVO);
// 권한정보를 할당 >>>>>>>>>>>>>>>>>> 별도 추가
AuthorGroup authorGroup = new AuthorGroup();
authorGroup.setUniqId(uniqId); // uniqId 값으로 ROLE_USER으로 등록처리
authorGroup.setMberTyCode("USR01");
authorGroup.setAuthorCode("ROLE_USER");
egovAuthorGroupService.insertAuthorGroup(authorGroup); // 기존 처리 프로세스 동일
return result;
}
3. "470. 일반회원관리" 메뉴에서
"일반회원상태코드"를
"회원가입 승인 상태"로 변경하셔야 합니다.
>> 모두 정상적으로 처리되었습니다.
4. 회원가입후 권한 설정 체크
egov-com-access.xml 화일에서 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
결과적으로
- 회원 데이터도 정상적으로 등록,
- 권한정보 할당도 ROLE_USER로 등록
- egov-com-access.xml 화일에서 sqlAuthorityUser 의 있는 쿼리로 체크를 해봐도 정상적인 데이터 출력
하지만... 로그인하면 반영되지 않음....
이는 어떤 원리로 생각해서 제가 체크를 해볼수 있을까요?
원리를 모르고 프레임워크에만 의존하다 보니 대책이 나지 않네요..ㅜㅜ
authorityResource.reload();
윗 부분을 컨트롤러에 insert 메소드 다음에 위치가 맞는걸까요?
List<String> authList = (List<String>)EgovUserDetailsHelper.getAuthorities();
해당 부분을 못 가지고 오는건데....
어떠한 방법으로 분석을 하면 좋을지 조언좀 부탁드립니다.ㅜㅜ
MberManageController.java
mberManageService.insertMber(mberManageVO);
authorityResource.reload();
2. 권한부여 영역
EgovMberManageServiceImpl.java
/**
* 사용자의 기본정보를 화면에서 입력하여 항목의 정합성을 체크하고 데이터베이스에 저장
* @param mberManageVO 일반회원 등록정보
* @return result 등록결과
* @throws Exception
*/
@Override
public String insertMber(MberManageVO mberManageVO) throws Exception {
//고유아이디 셋팅
String uniqId = idgenService.getNextStringId();
mberManageVO.setUniqId(uniqId);
//패스워드 암호화
String pass = EgovFileScrty.encryptPassword(mberManageVO.getPassword(), EgovStringUtil.isNullToString(mberManageVO.getMberId()));//KISA 보안약점 조치 (2018-10-29, 윤창원)
mberManageVO.setPassword(pass);
String result = mberManageDAO.insertMber(mberManageVO);
// 권한정보를 할당 >>>>>>>>>>>>>>>>>> 별도 추가
AuthorGroup authorGroup = new AuthorGroup();
authorGroup.setUniqId(uniqId); // uniqId 값으로 ROLE_USER으로 등록처리
authorGroup.setMberTyCode("USR01");
authorGroup.setAuthorCode("ROLE_USER");
egovAuthorGroupService.insertAuthorGroup(authorGroup); // 기존 처리 프로세스 동일
return result;
}
3. "470. 일반회원관리" 메뉴에서
"일반회원상태코드"를
"회원가입 승인 상태"로 변경하셔야 합니다.
>> 모두 정상적으로 처리되었습니다.
4. 회원가입후 권한 설정 체크
egov-com-access.xml 화일에서 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
결과적으로
- 회원 데이터도 정상적으로 등록,
- 권한정보 할당도 ROLE_USER로 등록
- egov-com-access.xml 화일에서 sqlAuthorityUser 의 있는 쿼리로 체크를 해봐도 정상적인 데이터 출력
하지만... 로그인하면 반영되지 않음....
이는 어떤 원리로 생각해서 제가 체크를 해볼수 있을까요?
원리를 모르고 프레임워크에만 의존하다 보니 대책이 나지 않네요..ㅜㅜ
authorityResource.reload();
윗 부분을 컨트롤러에 insert 메소드 다음에 위치가 맞는걸까요?
List<String> authList = (List<String>)EgovUserDetailsHelper.getAuthorities();
해당 부분을 못 가지고 오는건데....
어떠한 방법으로 분석을 하면 좋을지 조언좀 부탁드립니다.ㅜㅜ
A
안녕하세요.
표준프레임워크센터 입니다.
회원가입 직후에
다음기능을 적용하게 되면
authorityResource.reload();
해당 계정이 아직 아무런 권한을 부여받지 못하였기 때문에
아무 의미가 없습니다.
권한을 수정하거나 부여하는곳에
다음
"authorityResource.reload();" 을 적용하셔야 합니다.
그 적용위치는 다음 위키가이드를
보시고 찾아서 적용하시면 됩니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:com:v3.9:init_guide
[보안] 섹션에서 다음 부분을 참고하셔서
권한이 부여되고 최종적으로 다음 코드가 수행되어야 합니다.
authorityResource.reload();
- 권한관리
권한관리 기능
권한별 롤관리
- 권한그룹관리
- 그룹관리
- 롤관리
감사합니다.
표준프레임워크센터 입니다.
회원가입 직후에
다음기능을 적용하게 되면
authorityResource.reload();
해당 계정이 아직 아무런 권한을 부여받지 못하였기 때문에
아무 의미가 없습니다.
권한을 수정하거나 부여하는곳에
다음
"authorityResource.reload();" 을 적용하셔야 합니다.
그 적용위치는 다음 위키가이드를
보시고 찾아서 적용하시면 됩니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:com:v3.9:init_guide
[보안] 섹션에서 다음 부분을 참고하셔서
권한이 부여되고 최종적으로 다음 코드가 수행되어야 합니다.
authorityResource.reload();
- 권한관리
권한관리 기능
권한별 롤관리
- 권한그룹관리
- 그룹관리
- 롤관리
감사합니다.