java, c# , linux, program devloper
http://blog1.phps.kr/
blog.visualp.com
2021-05-28T17:22:33+09:00
Textcube 1.10.7 : Tempo primo
intelij svn 느림
java, tomcat, c#
http://blog1.phps.kr/762
2020-08-04T16:22:07+09:00
2020-08-04T16:22:03+09:00
[원문] <a href="https://atoz-develop.tistory.com/entry/IntelliJ-VCSGit-%EC%82%AC%EC%9A%A9-%EC%8B%9C-%EB%8A%90%EB%A6%BC-%EB%A9%88%EC%B6%A4-%ED%98%84%EC%83%81-%EC%A1%B0%EC%B9%98-%EB%B0%A9%EB%B2%95">https://atoz-develop.tistory.com/entry/IntelliJ-VCSGit-%EC%82%AC%EC%9A%A9-%EC%8B%9C-%EB%8A%90%EB%A6%BC-%EB%A9%88%EC%B6%A4-%ED%98%84%EC%83%81-%EC%A1%B0%EC%B9%98-%EB%B0%A9%EB%B2%95<br /><br /></a>
<h2 style="margin: 29px 0px 22px; padding: 0px; clear: both; line-height: 1.5; color: #000000; font-weight: normal; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif;" data-ke-size="size26">1. Invalidate Caches and Restart</h2>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;"> </p>
<span style="cursor: pointer;" data-url="https://blog.kakaocdn.net/dn/bztbgp/btqCLcJttA3/GvssjzovmoXEZU51enNsN1/img.png" data-lightbox="lightbox" data-alt=""><img src="https://blog.kakaocdn.net/dn/bztbgp/btqCLcJttA3/GvssjzovmoXEZU51enNsN1/img.png" style="border: none; vertical-align: top; display: inline-block; width: 437px; margin: 0px;" data-origin-width="0" data-origin-height="0" /></span>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;"> </p>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;">File - Invalidate Caches / Restart... 클릭</p>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;"> </p>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;"> </p>
<span style="cursor: pointer;" data-url="https://blog.kakaocdn.net/dn/w3Pez/btqCLeN4dzf/e2vGd3p3ZTmZytXdCngro1/img.png" data-lightbox="lightbox" data-alt=""><img src="https://blog.kakaocdn.net/dn/w3Pez/btqCLeN4dzf/e2vGd3p3ZTmZytXdCngro1/img.png" style="border: none; vertical-align: top; display: inline-block; width: 686px; margin: 0px;" data-origin-width="0" data-origin-height="0" /></span>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;"> </p>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;">Invalidate and Restart 클릭</p>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;"> </p>
<h2 style="margin: 29px 0px 22px; padding: 0px; clear: both; line-height: 1.5; color: #000000; font-weight: normal; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif;" data-ke-size="size26">2. VCS - Refresh File Status</h2>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;"> </p>
<span style="cursor: pointer;" data-url="https://blog.kakaocdn.net/dn/JZwFB/btqCKBbD7EU/cARFsaaB8e1pbuO3tfhXGk/img.png" data-lightbox="lightbox" data-alt=""><img src="https://blog.kakaocdn.net/dn/JZwFB/btqCKBbD7EU/cARFsaaB8e1pbuO3tfhXGk/img.png" style="border: none; vertical-align: top; display: inline-block; width: 363px; margin: 0px;" data-origin-width="0" data-origin-height="0" /></span>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;"> </p>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;">프로젝트 루트를 선택한 상태에서 VCS - Refresh File Status를 클릭한다.</p>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;"> </p>
<h2 style="margin: 29px 0px 22px; padding: 0px; clear: both; line-height: 1.5; color: #000000; font-weight: normal; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif;" data-ke-size="size26">3. IntelliJ VCS Log 삭제</h2>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;">아래 디렉토리 하위의 파일들을 삭제한다.</p>
<blockquote style="font-size: 16px; line-height: 18pt; color: #666666; margin: 0px 0px 40px; padding: 21px 25px 20px; border: 1px solid #dddddd; background: #fcfcfc; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif;" data-ke-style="style3">C:\Users\{사용자이름}\.IntelliJIdea2019.3(버전에 따라 상이함)\system\vcs-log</blockquote>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;"> </p>
<h2 style="margin: 29px 0px 22px; padding: 0px; clear: both; line-height: 1.5; color: #000000; font-weight: normal; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif;" data-ke-size="size26">4. [추가] Disable Show Unversioned Files</h2>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;">커밋 창에서 unversioned 파일을 굳이 보이지 않게 함으로써 인텔리J에서 커밋 속도를 향상시킬 수 있다.</p>
<p style="word-break: break-all; font-size: 0.9375em; line-height: 2; color: #555555; font-family: AppleSDGothicNeo, 'Noto Sans KR', sans-serif; padding: 0px !important 0px 0px !important 0px; margin: 0px !important 0px 32px 0px;"> </p><p><strong><a href="http://blog1.phps.kr/762?commentInput=true#entry762WriteComment">댓글 쓰기</a></strong></p>
c# cefsharp filedownload 구현
java, tomcat, c#
http://blog1.phps.kr/760
2020-04-13T15:18:44+09:00
2020-04-13T15:18:41+09:00
<div>//<span style="font-size: 15.008px;">IDownloadHandler 의 구현체를 만들어서 DownloadHandler 를 등록 해주면된다.<br /></span>// 아래소스는 updated에서 다운로드되는 상황을 체크 할 수 있으며<br /><span style="font-size: 15.008px;">// downloadItem.IsComplete 다운로드가 완료되었을 때 파일을 실행하도록 구현함<br /></span>// 상황에 따라서 확장자에 맞게 처리 하면됨.<br /><br /> chromebrowser.DownloadHandler = new DownloadHandler();<br />==========================================================<br />internal class DownloadHandler : IDownloadHandler</div>
<div> {</div>
<div> public object OnDownloadUpdatedFired { get; private set; }</div>
<div></div>
<div> public void OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)</div>
<div> {</div>
<div> if (!callback.IsDisposed) {</div>
<div> using (callback) {</div>
<div> callback.Continue(@"C:\Users\" +</div>
<div> System.Security.Principal.WindowsIdentity.GetCurrent().Name +</div>
<div> @"\Downloads\" +</div>
<div> downloadItem.SuggestedFileName,</div>
<div> showDialog: true);</div>
<div> }</div>
<div></div>
<div> } </div>
<div> </div>
<div> }</div>
<div></div>
<div> public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)</div>
<div> {</div>
<div> if (downloadItem.IsComplete)</div>
<div> {</div>
<div> if (@downloadItem.FullPath != "")</div>
<div> {</div>
<div> Process.Start(@downloadItem.FullPath);</div>
<div> }</div>
<div> }</div>
<div> }</div>
<div> }</div><p><strong><a href="http://blog1.phps.kr/760?commentInput=true#entry760WriteComment">댓글 쓰기</a></strong></p>
tomcat8 cookie 관련
java, tomcat, c#
http://blog1.phps.kr/759
2020-04-06T10:02:22+09:00
2020-04-06T10:02:20+09:00
[참고]https://jistol.github.io/java/2017/08/30/tomcat8-invalid-domain/<br />--------------------------<br /><span class="go">java.lang.IllegalArgumentException: An invalid domain [.<a class="vglnk" href="http://xxxx.com/" rel="nofollow">xxxx.com</a>] was specified for this cookie<br /></span>과 같이 서브도메인 쿠키 생성시 아래와 같이 처리 해줘야 함.<br /><br />tomcat context.xml에 다음과 같이 추가<br /><span class="nt"><CookieProcessor</span> <span class="na">className=</span><span class="s">"org.apache.tomcat.util.http.LegacyCookieProcessor"</span><span class="nt">/><br /><br /></span>spring boot embead 일경우<br /><span class="nd">@Bean</span><br /><span class="kd">public</span> <span class="nc">EmbeddedServletContainerCustomizer</span> <span class="nf">tomcatCustomizer</span><span class="o">()</span> <span class="o">{</span><br /> <span class="k">return</span> <span class="n">container</span> <span class="o">-></span> <span class="o">{</span><br /> <span class="k">if</span> <span class="o">(</span><span class="n">container</span> <span class="k">instanceof</span> <span class="nc">TomcatEmbeddedServletContainerFactory</span><span class="o">)</span> <span class="o">{</span><br /> <span class="nc">TomcatEmbeddedServletContainerFactory</span> <span class="n">tomcat</span> <span class="o">=</span> <span class="o">(</span><span class="nc">TomcatEmbeddedServletContainerFactory</span><span class="o">)</span> <span class="n">container</span><span class="o">;</span><br /> <span class="n">tomcat</span><span class="o">.</span><span class="na">addContextCustomizers</span><span class="o">(</span><span class="n">context</span> <span class="o">-></span> <span class="n">context</span><span class="o">.</span><span class="na">setCookieProcessor</span><span class="o">(</span><span class="k">new</span> <span class="nc">LegacyCookieProcessor</span><span class="o">()));</span><br /> <span class="o">}</span><br /> <span class="o">};</span><br /><span class="o">}</span><br /><br /><p><strong><a href="http://blog1.phps.kr/759?commentInput=true#entry759WriteComment">댓글 쓰기</a></strong></p>
php error 출력
java, tomcat, c#
http://blog1.phps.kr/758
2019-11-06T14:44:07+09:00
2019-11-06T14:44:03+09:00
<p style="line-height: 2;"><strong><span style="font-family: Verdana;">error_reporting(E_ALL);<strong><span style="font-family: Verdana;"><br />ini_set("display_errors", 1);<br /><br />php 상단에 위와 같이 선언 <br />오류 출력 해줌<br /></span></strong></span></strong></p><p><strong><a href="http://blog1.phps.kr/758?commentInput=true#entry758WriteComment">댓글 쓰기</a></strong></p>
required attribute scrolling auto set position
java, tomcat, c#
http://blog1.phps.kr/757
2019-08-22T00:35:54+09:00
2019-08-22T00:35:51+09:00
<p><a href="https://jsfiddle.net/0z56f24f/2/">https://jsfiddle.net/0z56f24f/2/<br /><br /> var delay = 0;<br /> var offset = 125;</a> document.addEventListener('invalid', function(e){<br /> $(e.target).addClass("invalid");<br /> $('html, body').animate({scrollTop: $($(".invalid")[0]).offset().top - offset }, delay);<br /> }, true);<br /> document.addEventListener('change', function(e){<br /> $(e.target).removeClass("invalid")<br /> }, true);</p>
<p> </p>
<p> </p><p><strong><a href="http://blog1.phps.kr/757?commentInput=true#entry757WriteComment">댓글 쓰기</a></strong></p>
centos7 yum update not working (yum 업데이트 안될 때)
java, tomcat, c#
http://blog1.phps.kr/756
2019-07-11T17:45:58+09:00
2019-07-11T17:45:54+09:00
Edit your <br /><code>/etc/yum.conf</code> file and add<br />http_caching=packages<br /><br />yum clean all<br />yum makecache<br />yum update<br /><br /><p><strong><a href="http://blog1.phps.kr/756?commentInput=true#entry756WriteComment">댓글 쓰기</a></strong></p>
apache 특정 폴더 접근 막기
java, tomcat, c#
http://blog1.phps.kr/755
2019-05-16T23:41:17+09:00
2019-05-16T23:41:14+09:00
.htaccess 파일에 아래와 같이 막을 폴더 경로를 설정 한다.<br />RedirectMatch 403 ^/data/*<br /><br /><p><strong><a href="http://blog1.phps.kr/755?commentInput=true#entry755WriteComment">댓글 쓰기</a></strong></p>
Robots.txt disallow all with nginx nignx에서 웹사이트 로봇접근 방지
java, tomcat, c#
http://blog1.phps.kr/754
2019-04-23T18:31:36+09:00
2019-04-23T18:29:46+09:00
<span class="hljs-attribute">location</span> = /robots.txt {<br /> <span class="hljs-attribute">add_header</span> Content-Type text/plain;<br /> <span class="hljs-attribute">return</span> <span class="hljs-number">200</span> <span class="hljs-string">"User-agent: *\nDisallow: /\n"</span>;<br />}<br /><br />[원문]https://alan.ivey.dev/posts/2017/robots.txt-disallow-all-with-nginx/<br />[참고]https://serverfault.com/questions/549332/how-to-set-robots-txt-globally-in-nginx-for-all-virtual-hosts<br />[참고]https://edykim.com/ko/post/overwrite-robots.txt-with-nginx-settings/<p><strong><a href="http://blog1.phps.kr/754?commentInput=true#entry754WriteComment">댓글 쓰기</a></strong></p>
lucy XSS filter , spring xss filter 적용 XSS필터 적용
java, tomcat, c#
http://blog1.phps.kr/753
2019-01-30T18:55:03+09:00
2019-01-30T18:55:00+09:00
[참고]https://github.com/naver/lucy-xss-servlet-filter<br />pom.xml 추가<br />
<pre style="color: #a9b7c6; font-family: '굴림체'; font-size: 9pt; background-color: #2b2b2b;"><span style="color: #e8bf6a;"><dependency><br /></span><span style="color: #e8bf6a;"> <groupId></span>com.navercorp.lucy<span style="color: #e8bf6a;"></groupId><br /></span><span style="color: #e8bf6a;"> <artifactId></span>lucy-xss-servlet<span style="color: #e8bf6a;"></artifactId><br /></span><span style="color: #e8bf6a;"> <version></span>2.0.0<span style="color: #e8bf6a;"></version><br /></span><span style="color: #e8bf6a;"></dependency> <br /></span></pre>
<p> </p>
<p><span style="color: #000000;">[web.xml]</span><br /><span style="color: #000000;">filter 순서 UTF-8 인코딩 필터가 있다면 그 다음으로</span><br /><span style="color: #000000;">multipartFilter 추가 후 XSS filter 추가 한다.</span><br /><span style="color: #000000;">이유) 게시판 파일 업로드 enctype="multipart/form-data" </span><br /><span style="color: #000000;">일떄 multipartFilter 필터 타지 않을 수 있음 그래서 필터 순서를 맞춰줘야 함</span><br /><br /></p>
<pre style="color: #a9b7c6; font-family: '굴림체'; font-size: 9pt; background-color: #2b2b2b;"><span style="color: #808080;"><!-- multipartFilter --><br /></span><span style="color: #e8bf6a;"><filter><br /></span><span style="color: #e8bf6a;"> <filter-name></span>multipartFilter<span style="color: #e8bf6a;"></filter-name><br /></span><span style="color: #e8bf6a;"> <filter-class><br /></span> org.springframework.web.multipart.support.MultipartFilter<br /> <span style="color: #e8bf6a;"></filter-class><br /></span><span style="color: #e8bf6a;"></filter><br /></span><span style="color: #e8bf6a;"><br /></span><span style="color: #e8bf6a;"><filter-mapping><br /></span><span style="color: #e8bf6a;"> <filter-name></span>multipartFilter<span style="color: #e8bf6a;"></filter-name><br /></span><span style="color: #e8bf6a;"> <url-pattern></span>/*<span style="color: #e8bf6a;"></url-pattern><br /></span><span style="color: #e8bf6a;"></filter-mapping><br /></span><span style="color: #e8bf6a;"><br /></span><span style="color: #808080;"><!-- xss filter --><br /></span><span style="color: #e8bf6a;"><filter><br /></span><span style="color: #e8bf6a;"> <filter-name></span>xssEscapeServletFilter<span style="color: #e8bf6a;"></filter-name><br /></span><span style="color: #e8bf6a;"> <filter-class></span>com.navercorp.lucy.security.xss.servletfilter.XssEscapeServletFilter<span style="color: #e8bf6a;"></filter-class><br /></span><span style="color: #e8bf6a;"></filter><br /></span><span style="color: #e8bf6a;"><filter-mapping><br /></span><span style="color: #e8bf6a;"> <filter-name></span>xssEscapeServletFilter<span style="color: #e8bf6a;"></filter-name><br /></span><span style="color: #e8bf6a;"> <url-pattern></span>/*<span style="color: #e8bf6a;"></url-pattern><br /></span><span style="color: #e8bf6a;"></filter-mapping></span></pre>
<p><span style="color: #000000;">[root-context.xml]에 </span><span style="color: #808080;"><span style="color: #000000;">multipartResolver bean설정시 아이디를</span> <br />multipartResolver --> <span style="color: #6a8759;">filterMultipartResolver 변경 해줌<br />그래야 xss 필터가 정상적으로 동작</span></span></p>
<pre style="color: #a9b7c6; font-family: '굴림체'; font-size: 9pt; background-color: #2b2b2b;"><span style="color: #808080;"><!-- multipartResolver --><br /></span><span style="color: #808080;"><!--<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />--><br /></span><span style="color: #e8bf6a;"><</span><span style="color: #9876aa;">beans</span><span style="color: #e8bf6a;">:bean </span><span style="color: #bababa;">id</span><span style="color: #6a8759;">="filterMultipartResolver" </span><span style="color: #bababa;">class</span><span style="color: #6a8759;">="org.springframework.web.multipart.commons.CommonsMultipartResolver" </span><span style="color: #e8bf6a;">/><br /><br /></span></pre><p><strong><a href="http://blog1.phps.kr/753?commentInput=true#entry753WriteComment">댓글 쓰기</a></strong></p>
spring4 - 스케줄러 @Scheduled schedule configuration
java, tomcat, c#
http://blog1.phps.kr/752
2019-01-28T11:21:26+09:00
2019-01-28T11:17:05+09:00
<pre style="color: #a9b7c6; font-family: '굴림체'; font-size: 9pt; background-color: #2b2b2b;">xml설정</pre>
<pre style="color: #a9b7c6; font-family: '굴림체'; font-size: 9pt; background-color: #2b2b2b;"><span style="color: #bababa;">xmlns:</span><span style="color: #9876aa;">task</span><span style="color: #6a8759;">="http://www.springframework.org/schema/task"</span></pre>
<pre style="color: #a9b7c6; font-family: '굴림체'; font-size: 9pt; background-color: #2b2b2b;"></pre>
<pre style="color: #a9b7c6; font-family: '굴림체'; font-size: 9pt; background-color: #2b2b2b;"><span style="color: #9876aa;">xsi</span><span style="color: #bababa;">:</span><span style="color: #bababa; background-color: #344134;">schemaLocation 부분에 <br /></span></pre>
<pre style="color: #a9b7c6; font-family: '굴림체'; font-size: 9pt; background-color: #2b2b2b;"><span style="color: #6a8759;">http://www.springframework.org/schema/task<br /></span><span style="color: #6a8759; background-color: #344134;">http://www.springframework.org/schema/task/spring-task-4.0.xsd<br /><br />추가<br /></span></pre>
<pre style="color: #a9b7c6; font-family: '굴림체'; font-size: 9pt; background-color: #2b2b2b;"><span style="color: #e8bf6a;"><</span><span style="color: #9876aa;">task</span><span style="color: #e8bf6a;">:annotation-driven /> 추가<br /><br /></span></pre>
<pre style="color: #a9b7c6; font-family: '굴림체'; font-size: 9pt; background-color: #2b2b2b;"></pre>
<pre style="color: #a9b7c6; font-family: '굴림체'; font-size: 9pt; background-color: #2b2b2b;"><br />==================================================<br /><br />1초마다 한번식 실행<br /><br /><span style="color: #bbb529;">@Service<br /></span><span style="color: #cc7832;">public class </span>VisitorConfig {<br /> <span style="color: #bbb529;">@Scheduled</span>(<span style="color: #d0d0ff;">fixedDelay </span>= <span style="color: #6897bb;">1000</span>)<br /> <span style="color: #cc7832;">public void </span><span style="color: #ffc66d;">visitor</span>(){<br /> System.<span style="color: #9876aa; font-style: italic;">out</span>.println(<span style="color: #6a8759;">"test:"</span>)<span style="color: #cc7832;">;<br /></span> }<br />}</pre><p><strong><a href="http://blog1.phps.kr/752?commentInput=true#entry752WriteComment">댓글 쓰기</a></strong></p>