개발자의 노트
[Spring Security] 세션과 인증 정보 없애기

스프링 시큐리티에서 세션과 인증 정보 없애는 방법.. 톰캣 세션 정보를 REDIS를 통해 공유하다보니, 시큐리티에서 세션이 없어지질 않아서... (꼼수일 수 있음) // 현재 세션 얻어와서 없애고 HttpSession session = request.getSession(false); session.invalidate(); // 시큐리티 인증정보 없애기 SecurityContextHolder.getContext().setAuthentication(null);

주키퍼(ZooKeeper) 설치하기

** 작년에 주키퍼 설치하면서 써둔 글이라. 최근 버전에서 바뀐게 있는지는 모르겠음.. 다운로드 : http://www.apache.org/dyn/closer.cgi/zookeeper/ 현재 안정버전 3.3.5 문서 : http://zookeeper.apache.org/doc/current/ 설치 가이드 : http://zookeeper.apache.org/doc/current/zookeeperStarted.html JDK 6 이상이 설치되어있어야 한다. 설치를 해보자. (CentOS기준) 최신 안정버전을 다운로드 받는다. # cd /usr/local/src # wget http://apache.tt.co.kr/zookeeper/stable/zookeeper-3.3.5.tar.gz # tar zxvf z..

[델파이] IE 핸들에서 IWebbrowser2 인터페이스 얻기
소프트웨어개발/Delphi 2014. 3. 13. 15:44

type TObjectFromLResult = function(LRESULT: lResult; const IID: TIID; WPARAM: wParam; out pObject): HRESULT; stdcall; function GetIEFromHWND(WHandle: HWND; var IE: IWebbrowser2): HRESULT; var hInst: HWND; lRes: Cardinal; MSG: Integer; pDoc: IHTMLDocument2; ObjectFromLresult: TObjectFromLresult; begin hInst := LoadLibrary(‘Oleacc.dll’); @ObjectFromLresult := GetProcAddress(hInst, ‘ObjectFromLresu..

[델파이] 델파이 7에서 SOAP 사용시 DEP 에러에 대한 조치
소프트웨어개발/Delphi 2014. 3. 13. 15:41

델파이 7에서 SOAP 방식으로 닷넷서비스와 통신을 하는 프로그램을 만들었는데요. 비스타에서 에러가 나길래 뜯어보니.. SOAP 함수 호출시 Access violation 이 납니다. 비스타에서만 뭔가가 안될 경우엔 우선적으로 DEP 쪽을 확인해보는데.. 역시나 DEP 문제더군요. DEP 가 비스타만의 문제는 아니지만 비스타에서는 기본적으로 모든 프로그램에 DEP 가 활성화되어있다보니 하드웨어가 DEP를 지원만 한다면 프로그램이 제대로 실행안되는 경우가 발생합니다. 외부 컴포넌트를 쓸 경우에도 그렇고.. 결론적으로 델파이 7에 기본적으로 있는 Rio.pas 가 원인이었고.. 구글을 통해 해결책을 찾았습니다. http://groups.google.com/group/borland.public.delphi.w..

[MSSQL] TOP 사용하지 않고 페이징 빨리 하기
소프트웨어개발/MSSQL 2014. 3. 13. 15:39

TOP 을 쓰면 쿼리도 지저분해지고.. 페이징이 뒤로 갈수록 속도도 느려집니다. 찾아보니 ROW_NUMBER() OVER (ORDER BY ..) 방식이 있군요. 오라클의 rownum 같은게 없어서 불편했었는데. 언제 생긴건지.. ^-^ 쿼리도 깔끔해지고 좋군요. 자세한 사용방법은 검색하면 나올거예요.

리눅스에서 한글로 된 파일명을 UTF8에서 EUC-KR로 변경하기

리눅스는 기본적으로 UTF8 기반입니다.파일명도 UTF8 로 생성이 된다는 말이죠. 리눅스의 파일을 압축한 파일을 윈도우로 다운로드 받아서 압축을 풀 경우파일명이 깨진다든가 하는 문제가 있는데요. 그래서 압축 전에 리눅스 파일명을 UTF8 에서 EUC-KR 로 변경해서 압축을 하면 문제가 없습니다.이걸 제공하는 패키지가 convmv 인데요. 레드헷의 경우 yum install convmv우분투의 경우 apt-get install convmv 해서 설치합니다. 콘솔에서는 convmv -f utf8 -t euc-kr –notest 파일명 하시면 되구요 jsp에서는 아래처럼 사용하면 됩니다. String str[] = {“/usr/bin/convmv”, “-f”,”utf8″,”-t”,”euc-kr”,”–not..

[델파이] 특정 파일 선택 상태로 폴더 열기
소프트웨어개발/Delphi 2014. 3. 13. 15:31

보통 폴더 열때 아래처럼 사용을 합니다. ShellExecute(Handle, ‘open’, PChar(‘C:\Data’), nil, nil, SW_SHOWNORMAL); 근데 파일 다운로드하고 폴더 열때 다운로드한 파일이 선택된 상태로 열려면 아래처럼 하시면 됩니다.ShellExecute(Handle, ‘open’, ‘explorer.exe’, PChar(‘/select,”C:\Data\text.exe”‘), nil, SW_SHOWNORMAL);explorer.exe 의 옵션 중에 /select 라는 게 있더군요. 근데 하나의 파일은 되는데.. 여러 파일이 선택된 상태로 여는 건 어떻게 하는지 궁금.. ^^

[Javascript] undefined/null 의 true/false 비교

특정 값이 undefined 인지를 체크하기 위해서는 var a; if (typeof a == "undefined") {} => true if (a == undefined) {} => true null 인지를 체크하기 위해서는 var b = null; if (b == null) {} => true 위와 같이 정확하게 값을 체크하는데 사용될 수 있다. 하지만, undefined와 null은 논리연산에서는 false로 처리되므로 아래처럼 간단하게 체크하면 되겠다. var a; if (a) {} => false if (!a) {} => true var b = null; if (b) {} => false if (!b) {} => true undefined와 null을 철저히 체크하는 경우가 아니라면, if (!..