메인, 상세검색페이지 수정요청 jsp 처리

웹취약점 수정 (진행중)
This commit is contained in:
JSYOO 2021-12-01 15:23:36 +09:00
parent a39076a718
commit c35b2bc0b6
9 changed files with 45 additions and 20 deletions

View File

@ -11,6 +11,7 @@ import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.access.annotation.Secured; import org.springframework.security.access.annotation.Secured;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
@ -60,7 +61,9 @@ import nlib.util.StringUtil;
public class InterestController extends NlibCommonController public class InterestController extends NlibCommonController
{ {
private static final Logger log = LoggerFactory.getLogger(InterestController.class); private static final Logger log = LoggerFactory.getLogger(InterestController.class);
static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size");
@Value("#{properties['list.paging.page.size']}")
private String DEFUALT_PAGE_SIZE;
@Resource(name = "interestService") @Resource(name = "interestService")
private InterestService interestService; private InterestService interestService;

View File

@ -17,6 +17,7 @@ import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -49,7 +50,6 @@ import nlib.util.StringUtil;
public class RisController extends NlibCommonController public class RisController extends NlibCommonController
{ {
private static final Logger log = LoggerFactory.getLogger(RisController.class); private static final Logger log = LoggerFactory.getLogger(RisController.class);
static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size");
@Resource(name = "codeService") @Resource(name = "codeService")
private CodeService codeService; private CodeService codeService;

View File

@ -9,6 +9,8 @@ import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap; import org.springframework.util.MultiValueMap;
@ -16,6 +18,7 @@ import nlib.cmm.crypto.AriaCrypto;
import nlib.cmm.service.NlibProperty; import nlib.cmm.service.NlibProperty;
import nlib.cmm.service.PagingVO; import nlib.cmm.service.PagingVO;
import nlib.col.service.CollectionVO; import nlib.col.service.CollectionVO;
import nlib.sch.service.impl.NlibSearchServiceImpl;
import nlib.util.StringUtil; import nlib.util.StringUtil;
@ -28,9 +31,11 @@ import nlib.util.StringUtil;
*/ */
public class NlibSearchVO extends PagingVO { public class NlibSearchVO extends PagingVO {
private static final Logger log = LoggerFactory.getLogger(NlibSearchVO.class);
private String query =""; //검색어 private String query =""; //검색어
private String collection = "lib_total"; //검색 대상 컬렉션 지정 private String collection = "lib_total"; //검색 대상 컬렉션 지정
private String listCount = NlibProperty.getProperty("list.paging.page.size"); //컬렉션별 출력 결과수 private String listCount = "10"; //컬렉션별 출력 결과수
private String sort = "DATE"; //결과 정렬 DATE 날짜 내림차, RANK 정확도 내림차 private String sort = "DATE"; //결과 정렬 DATE 날짜 내림차, RANK 정확도 내림차
private String startCount = ""; //검색 결과 시작 페이지 private String startCount = ""; //검색 결과 시작 페이지
private String sfield = ""; //검색 영역 private String sfield = ""; //검색 영역
@ -358,7 +363,7 @@ public class NlibSearchVO extends PagingVO {
add(map,"MNG_ORG_CD",URLEncoder.encode(this.mngOrgCd , "UTF-8")); //자료유형 2뎁스까지 나오게 고정 add(map,"MNG_ORG_CD",URLEncoder.encode(this.mngOrgCd , "UTF-8")); //자료유형 2뎁스까지 나오게 고정
} catch (UnsupportedEncodingException e) { } catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); log.error("nlibSearchVO 검색엔진파라미터 매핑 > Exception 발생 : " + e.toString());
} }
return map; return map;

View File

@ -300,7 +300,6 @@ public class NlibSearchServiceImpl implements NlibSearchService{
searchVO.setTypeCountList(typeMap); searchVO.setTypeCountList(typeMap);
searchVO.setOrgCountList(orgMap); searchVO.setOrgCountList(orgMap);
} catch(Exception e) { } catch(Exception e) {
e.printStackTrace();
log.error("getSearch > Exception 발생 : " + e.toString()); log.error("getSearch > Exception 발생 : " + e.toString());
} }
return searchVO; return searchVO;

View File

@ -24,6 +24,7 @@ import javax.servlet.http.HttpSession;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
@ -56,7 +57,9 @@ import nlib.util.StringUtil;
public class NlibSearchController extends NlibCommonController { public class NlibSearchController extends NlibCommonController {
private static final Logger log = LoggerFactory.getLogger(NlibSearchController.class); private static final Logger log = LoggerFactory.getLogger(NlibSearchController.class);
static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size");
@Value("#{properties['list.paging.page.size']}")
private String DEFUALT_PAGE_SIZE;
@Resource(name = "cartService") @Resource(name = "cartService")
private CartService cartService; private CartService cartService;
@ -145,7 +148,7 @@ public class NlibSearchController extends NlibCommonController {
model.addAttribute("pageVO", pageVO); model.addAttribute("pageVO", pageVO);
model.addAttribute("searchVO", searchVO); model.addAttribute("searchVO", searchVO);
}catch(Exception e){ }catch(Exception e){
e.printStackTrace(); log.error("searchList.do getSearch > Exception 발생 : " + e.toString());
} }
//주제분야 목록 조회 //주제분야 목록 조회
List<Map<String,String>> clsf = codeService.listCtClsfs(); List<Map<String,String>> clsf = codeService.listCtClsfs();
@ -402,7 +405,7 @@ public class NlibSearchController extends NlibCommonController {
} }
} }
} catch (Exception e) { } catch (Exception e) {
System.err.println(e.toString()); log.error("shorturl-data.do 단축url > Exception 발생 : " + e.toString());
} }
return returnUrl; return returnUrl;
} }

View File

@ -524,6 +524,12 @@ public class MemberController extends NlibCommonController{
{ {
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId); OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
if(oauthUser == null) {
map.put("msg","이메일 발송에 실패하였습니다. \n장시간 대기로 다시 로그인 하신 후, 이용해 주시기 바랍니다.");
map.put("emailCertYn","N");
return map;
}
NlibLoginVO vo=oauthUser.getNlibVO(); NlibLoginVO vo=oauthUser.getNlibVO();
//이미 생성된 VO가 없을때 //이미 생성된 VO가 없을때
if(vo == null) if(vo == null)

View File

@ -90,7 +90,13 @@ function fn_listPops(typeDivCd) {
</script> </script>
<!-- 섹션1 --> <!-- 섹션1 -->
<section class="sec1"> <div class="skip-nav" style="display:none;">
<a href="#sec1-1">AI추천키워드 바로가기</a>
<a href="#sec3">문화원's Pick 바로가기</a>
<a href="#sec5">인기 자료 바로가기</a>
<a href="#sec6">온라인 자료관 바로가기</a>
</div>
<section id="sec1" class="sec1">
<h2 class="blind">배너 섹션영역</h2> <h2 class="blind">배너 섹션영역</h2>
<div class="inner"> <div class="inner">
<div class="banner"> <div class="banner">
@ -149,7 +155,7 @@ function fn_listPops(typeDivCd) {
</div> </div>
</div> </div>
<div class="color-box"> <div id="sec1-1" class="color-box">
<button class="list"> <button class="list">
<a href="javascript:void(0);" onclick="location.href = '/inform/selectNCultureOperationInfo.do';" title="이용안내"> <a href="javascript:void(0);" onclick="location.href = '/inform/selectNCultureOperationInfo.do';" title="이용안내">
<div class="title">이용안내</div> <div class="title">이용안내</div>
@ -184,7 +190,7 @@ function fn_listPops(typeDivCd) {
<!-- 섹션2 --> <!-- 섹션2 -->
<c:if test="${fn:length(listKeywords) > 0 }"> <c:if test="${fn:length(listKeywords) > 0 }">
<section class="sec2"> <section id="sec2" class="sec2">
<h2 class="blind">키워드 섹션영역</h2> <h2 class="blind">키워드 섹션영역</h2>
<div class="inner"> <div class="inner">
<div class="keyword-box"> <div class="keyword-box">
@ -203,7 +209,7 @@ function fn_listPops(typeDivCd) {
<!-- 섹션3 --> <!-- 섹션3 -->
<c:if test="${fn:length(listOrgPicks) > 0 }"> <c:if test="${fn:length(listOrgPicks) > 0 }">
<section class="sec3"> <section id="sec3" class="sec3">
<h2 class="blind">문화원픽 섹션영역</h2> <h2 class="blind">문화원픽 섹션영역</h2>
<div class="inner"> <div class="inner">
<div class="pick-box"> <div class="pick-box">
@ -241,7 +247,7 @@ function fn_listPops(typeDivCd) {
</c:if> </c:if>
<!-- 섹션4 --> <!-- 섹션4 -->
<section class="sec4"> <section id="sec4" class="sec4">
<h2 class="blind">중간배너 섹션영역</h2> <h2 class="blind">중간배너 섹션영역</h2>
<div class="inner"> <div class="inner">
<div class="middle-banner"> <div class="middle-banner">
@ -253,7 +259,7 @@ function fn_listPops(typeDivCd) {
<!-- 섹션5 --> <!-- 섹션5 -->
<c:if test="${fn:length(listPops) > 0 }"> <c:if test="${fn:length(listPops) > 0 }">
<section class="sec5"> <section id="sec5" class="sec5">
<h2 class="blind">인기자료 섹션영역</h2> <h2 class="blind">인기자료 섹션영역</h2>
<div class="inner"> <div class="inner">
<h3 class="title"><span>인기</span> 자료</h3> <h3 class="title"><span>인기</span> 자료</h3>
@ -290,7 +296,7 @@ function fn_listPops(typeDivCd) {
<!-- 섹션6 --> <!-- 섹션6 -->
<c:if test="${fn:length(listOnline) > 0 }"> <c:if test="${fn:length(listOnline) > 0 }">
<section class="sec6"> <section id="sec6" class="sec6">
<h2 class="blind">온라인자료관 섹션영역</h2> <h2 class="blind">온라인자료관 섹션영역</h2>
<div class="inner"> <div class="inner">
<h3 class="title"><span>온라인</span> 자료관</h3> <h3 class="title"><span>온라인</span> 자료관</h3>
@ -334,7 +340,7 @@ function fn_listPops(typeDivCd) {
</c:if> </c:if>
<!-- 섹션7 --> <!-- 섹션7 -->
<section class="sec7"> <section id="sec7" class="sec7">
<h2 class="blind">커뮤니티 섹션영역</h2> <h2 class="blind">커뮤니티 섹션영역</h2>
<div class="inner"> <div class="inner">
<div class="Fl notice"> <div class="Fl notice">

View File

@ -100,7 +100,7 @@ $(document).ready(function() {
depth1 = $(this).parents('.depth2').siblings('.depth1-check').find('label').text(); depth1 = $(this).parents('.depth2').siblings('.depth1-check').find('label').text();
depth2 = $("label[for='"+$(this).attr('id')+"']").text(); depth2 = $("label[for='"+$(this).attr('id')+"']").text();
html = "<li><button type=\"button\" onclick=\"function('');\" title=\"삭제\" name=\""+ $(this).attr('id') +"\">" + depth1 + "<span class=\"sign\"> > </span><span class=\"del\">삭제</span>"+ depth2 +"</button></li>" html = "<li><button type=\"button\" onclick=\"function('');\" title=\"삭제\" name=\""+ $(this).attr('id') +"\">" + depth1 + "<span class=\"sign\"> > </span><button class=\"del\">삭제</button>"+ depth2 +"</button></li>"
$(this).parents('.depth2').siblings('.depth1-check').find('input').prop('checked', true); $(this).parents('.depth2').siblings('.depth1-check').find('input').prop('checked', true);
$(this).parents('.conditions-box').siblings('.selected-conditions').find('.conditions').append(html); $(this).parents('.conditions-box').siblings('.selected-conditions').find('.conditions').append(html);

View File

@ -204,14 +204,17 @@ function gfn_showRis(risId){
html+=' <button type="button" class="btn btn-color" id="risExport" onclick="gfn_downloadRis(\''+risId+'\');">내보내기</button>'; html+=' <button type="button" class="btn btn-color" id="risExport" onclick="gfn_downloadRis(\''+risId+'\');">내보내기</button>';
html+=' <button type="submit" class="btn btn-gray" onclick="gfn_closeRis();">닫기</button>'; html+=' <button type="submit" class="btn btn-gray" onclick="gfn_closeRis();">닫기</button>';
html+=' </div>'; html+=' </div>';
html+=' <button type="button" class="serge-close" onclick="gfn_closeRis();"></button>'; html+=' <button type="button" id="tttete" class="serge-close" onclick="gfn_closeRis();"></button>';
html+='</div>'; html+='</div>';
html+='<div class="Bg"></div>'; html+='<div class="Bg"></div>';
html+='</div>'; html+='</div>';
$("#export-data").append(html); $("#export-data").append(html);
gfn_focus("risExport");
}
function gfn_focus(obj){
$("#"+obj).focus();
} }
function gfn_downloadRis(risId){ function gfn_downloadRis(risId){
$("#risId").val(risId); $("#risId").val(risId);
@ -219,7 +222,7 @@ function gfn_downloadRis(risId){
document.risDownloadForm.submit(); document.risDownloadForm.submit();
} }
function gfn_closeRis(){ function gfn_closeRis(risDownloadForm){
$("#export-data").remove(); $("#export-data").remove();
} }