getRolesAndResources 버그 관련
- 작성자 :
- 이*행
- 작성일 :
- 2015-10-25 18:17:13
- 조회수 :
- 654
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
egovframework.rte.fdl.security-3.5.0-sources.jar
http://open.egovframe.kr/nforges/qna/qna/5340/.do
아래 코드 버그인 것 같습니다.
// 이미 requestMap 에 해당 Resource 에 대한 Role 이 하나 이상 맵핑되어 있었던 경우,
// sort_order 는 resource(Resource) 에 대해 매겨지므로 같은 Resource 에 대한 Role 맵핑은 연속으로 조회됨.
// 해당 맵핑 Role List (SecurityConfig) 의 데이터를 재활용하여 새롭게 데이터 구축
if (preResource != null && presentResourceStr.equals(preResource)) {
List<ConfigAttribute> preAuthList = resourcesMap.get(presentResource);
Iterator<ConfigAttribute> preAuthItr = preAuthList.iterator();
while (preAuthItr.hasNext()) {
SecurityConfig tempConfig = (SecurityConfig) preAuthItr.next();
configList.add(tempConfig);
}
}
아래 코드 처럼 하면 될 것 같습니다. 전자정부 표준프레임워크를 애용하는 중에 조금이나마 도움이 되었으면 합니다.
} else {
presentResource = presentResourceStr;
}
resourcesMap.put(presentResource,
configList(resourceType, resultList, presentResourceStr));
}
return resourcesMap;
}
/**
* 롤정보.롤패턴(1) = 권한롤관계.권한코드(n)
*
* @param resourceType
* @param resultList
* @param presentResourceStr
* @return
*/
private List<ConfigAttribute> configList(String resourceType,
List<Map<String, Object>> resultList, String presentResourceStr) {
List<ConfigAttribute> configList = new LinkedList<ConfigAttribute>();
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("resourceType=" + resourceType);
LOGGER.debug("resultList=" + resultList);
LOGGER.debug("presentResourceStr=" + presentResourceStr);
}
for (Map<String, Object> item : resultList) {
String url = (String) item.get(resourceType);
String authority = (String) item.get("authority");
if (presentResourceStr.equals(url)) {
configList.add(new SecurityConfig(authority));
}
}
return configList;
}
http://open.egovframe.kr/nforges/qna/qna/5340/.do
아래 코드 버그인 것 같습니다.
// 이미 requestMap 에 해당 Resource 에 대한 Role 이 하나 이상 맵핑되어 있었던 경우,
// sort_order 는 resource(Resource) 에 대해 매겨지므로 같은 Resource 에 대한 Role 맵핑은 연속으로 조회됨.
// 해당 맵핑 Role List (SecurityConfig) 의 데이터를 재활용하여 새롭게 데이터 구축
if (preResource != null && presentResourceStr.equals(preResource)) {
List<ConfigAttribute> preAuthList = resourcesMap.get(presentResource);
Iterator<ConfigAttribute> preAuthItr = preAuthList.iterator();
while (preAuthItr.hasNext()) {
SecurityConfig tempConfig = (SecurityConfig) preAuthItr.next();
configList.add(tempConfig);
}
}
아래 코드 처럼 하면 될 것 같습니다. 전자정부 표준프레임워크를 애용하는 중에 조금이나마 도움이 되었으면 합니다.
} else {
presentResource = presentResourceStr;
}
resourcesMap.put(presentResource,
configList(resourceType, resultList, presentResourceStr));
}
return resourcesMap;
}
/**
* 롤정보.롤패턴(1) = 권한롤관계.권한코드(n)
*
* @param resourceType
* @param resultList
* @param presentResourceStr
* @return
*/
private List<ConfigAttribute> configList(String resourceType,
List<Map<String, Object>> resultList, String presentResourceStr) {
List<ConfigAttribute> configList = new LinkedList<ConfigAttribute>();
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("resourceType=" + resourceType);
LOGGER.debug("resultList=" + resultList);
LOGGER.debug("presentResourceStr=" + presentResourceStr);
}
for (Map<String, Object> item : resultList) {
String url = (String) item.get(resourceType);
String authority = (String) item.get("authority");
if (presentResourceStr.equals(url)) {
configList.add(new SecurityConfig(authority));
}
}
return configList;
}
A
안녕하세요. 표준프레임워크센터입니다.
보내주신 의견을 참조하여 추후 버전 업그레이드시 개선을 검토하도록 하겠습니다.
앞으로도 좋은 의견 부탁드립니다. 감사합니다.
보내주신 의견을 참조하여 추후 버전 업그레이드시 개선을 검토하도록 하겠습니다.
앞으로도 좋은 의견 부탁드립니다. 감사합니다.