[Spring] Spring Security Session Timeout Disable.
ITWeb/개발일반 2020. 7. 23. 07:55application.yml 또는 properties 파일 내 아래와 같이 선언 하시면 됩니다.
server:
servlet:
session:
timeout: 0
'session'에 해당되는 글 3건[Spring] Spring Security Session Timeout Disable.ITWeb/개발일반 2020. 7. 23. 07:55application.yml 또는 properties 파일 내 아래와 같이 선언 하시면 됩니다.
java HttpSessionBindingListener 맛보기.ITWeb/개발일반 2012. 3. 22. 19:26뭐 어찌 어찌 하다보니.. 이것도 보게 되었습니다.
그래서 테스트.. ^^; 코드는 무지 짧습니다. 서블릿 파일 하나, binding listenr 클래스 하나.. [참고사이트] http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpSession.html [CreateSessionBinding.java] [SessionBindingListener.java] ※ 자, 그럼 이걸 어디에 써먹어야 할까요??? 이 예제는 보시면 아시겠지만 session.setAttribute 즉 session key/value 에 binding 되면 event 가 발생하게 되는 거랍니다. 그니까.. isNew() 할때.. 필요한 걸 session 에 저장한 다음.. session expired 되거나 하면 자동으로 삭제가 되도록 필요한 기능을 구현 하면 되겠죠. 불필요한 session 을 삭제 하거나 아니면 status 등을 처리 한다거나 할때.. 별도의 listener 없이 이걸 가지고 구현 하면 쉽게 할 수 있을 듯 합니다. 배도 고프고 해서 오늘은 여기까지만.. ㅎㅎ 실행 방법은 잘 아시죠.. servlet 하나 생성 하셔서 Run on Server 하시면 되요.. -> http://localhost:8080/proto.session/CreateSessionBinding [실행로그]
2012. 3. 22 오후 7:32:39 org.apache.catalina.core.ApplicationContext log 정보: BOUND to C7A16EA8F0687784DAA17367695BA501 2012. 3. 22 오후 7:32:39 org.apache.catalina.core.ApplicationContext log 정보: new session.binding : C7A16EA8F0687784DAA17367695BA501 2012. 3. 22 오후 7:33:37 org.apache.catalina.core.ApplicationContext log 정보: UNBOUND from C7A16EA8F0687784DAA17367695BA501 - Session expired 되면 UNBOUND 됩니다. - 또는 session.setAttribute 해서 binding 하셔도 UNBOUND 됩니다. - tomcat 의 web.xml 에서 아래 처럼 변경했습니다. (1분)
<session-config> <session-timeout>1</session-timeout> </session-config> 역시 배고파서 작성하는 글은.. 좀 부족하내요.. ㅋㅋ 집에 와서 다시 업데이트.. 위에 CreateSessionBinding 서블릿 클래스를 보시면 빨간 부분 보이시죠.. 그렇습니다. 위에 설명한 "또는 session.setAttribute 해서 binding 하셔도 UNBOUND 됩니다." 는.. set 한 key 에 대해서 binding 되면 event 가 발생을 하게 되는 것입니다. 테스트가 부족했으니 내일 다시 최종 확인 결과 올리겠습니다. ㅡ.ㅡ;; [최종테스트결과] - 이론이 역시 맞습니다. session.setAttribute("session.id", new SessionBindingListener(context)); Tomcat 6.0.35 Session ClusteringITWeb/서버관리 2012. 2. 28. 11:09Tomcat 6.0.35 Session Clustering
[준비사항] - Apache 2.4.1 다운로드 받기 : http://httpd.apache.org/download.cgi#apache24 - Tomcat 6.0.35 다운로드 받기 : http://mirror.khlug.org/apache/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.zip - Tomcat Connecter 다운로드 받기 : http://ftp.daum.net/apache//tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.32-src.zip - 다운로드 링크가 깨졌다면 해당 사이트에 직접 다운로드 받으시면 됩니다.
[설치]
- Windows 에 설치 하는 것이기 때문에 대부분 압축만 푸시고 적당한 위치에 가져다 놓으시면 됩니다.
- 편의상 D:\Application\ 아래 놓도록 하겠습니다.
- 그 이외 자세한 설치 방법은 제 블로그 이전 글 참고 하시면 됩니다. (linux 버전이지만 참고 정도는 됩니다. ^^;)
- httpd 설치 : http://jjeong.tistory.com/421
- tomcat 설치 : http://jjeong.tistory.com/435
- tomcat connector 설치 : http://jjeong.tistory.com/433
- httpd+tomcat+jdk 연동 : http://jjeong.tistory.com/230
[설정]
- httpd 설정하기
httpd 가 설치된 경로에서 conf 폴더에 있는 httpd.conf 파일을 에디터창에서 수정.
# 이 설정에 주석을 제거해 줍니다.
# 이유는 httpd 의 proxy balancer 기능을 이용하기 위해서 입니다.
# tomcat 의 경우 기본 worker 설정에서 type 을 lb 로 지정해 주면 httpd 관계 없이 loadbalancer 기능을 이용 할 수 있습니다.
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
# 이 설정에 주석을 제거해 줍니다.
Include conf/extra/httpd-vhosts.conf
# 아래 파일을 include 해 줍니다.
Include D:/Application/httpd/conf/session-cluster/tomcat.conf
[httpd-vhost.conf 설정하기]
<VirtualHost dev.session-cluster.com:80>
ServerAdmin jjeong@tistory.com
DocumentRoot "D:\Application\httpd\htdocs\session_cluster\web"
ServerName dev.session-cluster.com
ServerAlias dev.session-cluster.com
ErrorLog "D:\Application\httpd\logs\dev.session-cluster.com-error.log"
CustomLog "D:\Application\httpd\logs\dev.session-cluster.com-access.log" common
jkMount /* loadBalancer
DirectoryIndex index.html index.jsp
<Directory "D:\Application\httpd\htdocs\session_cluster\web">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from All
</Directory>
</VirtualHost>
[tomcat.conf 설정하기]
LoadModule jk_module modules/mod_jk.so
JkWorkersFile D:/Application/httpd/conf/session-cluster/workers.properties
JkShmFile D:/Application/httpd/logs/mod_jk.shm
JkLogFile D:/Application/httpd/logs/mod_jk.log
JkLogLevel debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkRequestLogFormat "%w %V %T"
[workers.properties 설정하기]
ps=/
worker.list=tomcat1, tomcat2, loadBalancer
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
worker.tomcat2.port=8109
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
worker.loadBalancer.type=lb
worker.loadBalancer.balanced_workers=tomcat1,tomcat2
worker.loadBalancer.sticky_session=1
[Tomcat1 server.xml 설정하기]
- 파일을 열어 보시면 <Cluster /> 섹션이 있습니다.
- 주석 처리 되어 있는 부분을 해제 합니다.
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
- <Engine /> 섹션에 jvmRoute 코드 추가 합니다.
<Engine defaultHost="localhost" jvmRoute="tomcat1" name="Catalina">
이전 버전과 다른 점은
previous : org.apache.catalina.cluster.tcp.SimpleTcpCluster
current : org.apache.catalina.ha.tcp.SimpleTcpCluster
해당 패키지의 경로 입니다.
[Tomcat2 server.xml 설정하기]
- Tomcat1 설정과 동일하게 주석을 제거 합니다.
- <Engine /> 섹션에 jvmRoute 코드 추가 합니다.
<Engine defaultHost="localhost" jvmRoute="tomcat2" name="Catalina">
[Tomcat1, Tomcat2 서버의 web.xml 설정하기]
- 설정 파일 제일 하단에 아래 코드 추가 합니다.
<distributable />
[Tomcat 설정 시 주의사항]
- 위 설정들은 PC 한 대에서 설정하는 내용으로 기술을 하였습니다.
- 각 port 충돌이 발생 하지 않도록 주의 하시기 바랍니다.
[Tomcat1 서버의 index.jsp]
<%
session.setAttribute("a","a");
%>
<html>
<head>
<title>Test JSP</title>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#CCCCCC">
<td width="13%">Tomcat1 Machine</td>
<td width="87%"> </td>
</tr>
<tr>
<td>Session ID :</td>
<td><%=session.getId()%></td>
</tr>
</table>
</body>
</html>
[Tomcat2 서버의 index.jsp]
<%
session.setAttribute("a","a");
%>
<html>
<head>
<title>Test JSP</title>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#CCCCCC">
<td width="13%">Tomcat2 Machine</td>
<td width="87%"> </td>
</tr>
<tr>
<td>Session ID :</td>
<td><%=session.getId()%></td>
</tr>
</table>
</body>
</html>
Eclipse 에서 Tomcat1, 2 를 번갈아 가면서 start, stop 해 보시면 lb 동작 하는걸 확인 하실 수 있습니다. 그리고 session 유지 되는 것도 확인 가능 합니다.
[Eclipse 에서 Tomcat 서버 등록 및 실행하기]
- Server 창에서 New -> Server -> Apache -> Tomcat v6.0 Server 선택
- Server name 에 Tomcat Session Cluster 1 이라고 작성
- Next 버튼 클릭 또는 Server runtime environment 에서 Add 클릭
- Browse 버튼 클릭 후 설치된 Tomcat1 서버의 경로를 지정 합니다.
- 이런 방식으로 Tomcat2 서버도 등록을 합니다.
[참고사이트] - http://www.easywayserver.com/implementation-tomcat-clustering.htm - http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html ※ 위 내용은 성능 튜닝을 고려하지 않은 내용입니다. 실제 서비스에 적용하시기 전에 충분한 튜닝 과정을 거치시기 바랍니다. ※ 서버 한대를 기준으로 설정한 내용입니다. 서버 여러대를 묶기 위해서는 <Cluster /> 섹션에 추가 설정을 해줘야 합니다. 이 부분은 추후 작성 업데이트 하겠습니다. |