JEUS 9 Fix#1

본 장에서는 JEUS 9 Fix#1 릴리스에서 추가된 새로운 기능에 대해 간략히 설명한다.

1. 신규 기능

1.1. Server

  • Node Manager 기능 추가

    • 기존에 사용하던 Host Manager를 제거하고 안정화된 Node Manager가 추가되었다.

  • Managed Server 단독 기동 시 Node Manager 모니터링 관리를 받을 수 있는 기능 추가

    • jeus.server.nodemanager.monitoring-standalone-ms 프로퍼티를 true로 하거나 기동 시 -monNM 옵션을 추가하고 기동할 경우 Node Manager 모니터링 관리를 받을 수 있도록 기능이 추가되었다.

  • CloudServer 기능 추가

    • startCloudServer 스크립트 및 관련 기능이 추가되었다.

  • start-node, stop-node 기능 추가

    • Node 단위로 서버를 기동 및 종료할 수 있도록 jeusadmin 명령어가 추가되었다.

1.2. Servlet

  • TCP Layer에서 일정 시간을 두고 재연결하는 기능 추가

    • jeus.servlet.wjpReconnectTime 옵션이 추가되었다. (기본값: 150ms)

1.3. Session Server

  • JEUS 자체 중앙식 세션 서버 리팩터링

    • primary-backup 관계로 설정 가능하도록 추가되었다.

    • backup server는 여러 개를 설정하여 1:N 관계로 설정이 가능하도록 추가되었다.

    • 중앙식 세션 서버 주체는 server 절에 자신이 중앙식 세션 서버임을 명시하여 기동 시 인지하도록 수정되었다.

    • primary-backup 관계로 묶은 중앙식 세션 서버 group을 추가하여, 세션 스토리지 별로 group을 지정하여 세션을 저장할 수 있도록 수정되었다.

    • jeusadmin 상에서 JEUS 자체 중앙식 세션 서버 설정이 가능하도록 명령어가 추가되었다.

  • Redis Sentinel 기능 지원

    • Redis Sentinel 지원이 추가되었다.

1.4. IO

  • 클라이언트 IP 차단 기능 추가

    • JMX 로그인 시도가 특정 횟수 이상 실패할 경우 클라이언트 IP가 차단되는 기능이 추가되었다.

1.5. WebAdmin

  • WebAdmin 개선

    • 새로운 UI가 적용되었다.

    • WebAdmin은 JDK 17 환경에서만 지원된다.

1.6. Tool

  • jeusadmin -version 실행 시 이전 버전 출력하는 옵션 추가

    • jeus.properties 내 TOOL_OPTION 내용에 jeus.old.version.type 프로퍼티를 true로 설정할 경우 7 Fix#4까지 사용하던 버전 표기명이 출력되도록 변경되었다.

1.7. Security

  • 사용자 패스워드 솔트값 적용된 알고리즘 SSHA 추가

    • 패스워드 추적이 불가능하도록 SHA로 암호화하면서 salted 스트레칭을 한 Salted Secure Hash Algorithm이 추가되었다.

2. 변경 기능

2.1. Session Server

  • JEUS 세션 매니저명 변경

    • JEUS 세션 매니저 하위에 세션 타입으로 분산식과 중앙식을 나누던 설정이 분산식 세션 매니저(DISTRIBTUED)와 중앙식 세션 매니저(CENTRAL)로 수정되었다.

2.2. Security

  • 사용자 패스워드 변경 시 기존 패스워드 확인 받도록 변경

    • 사용자 패스워드 변경 시 보안 강화를 위해 기존 패스워드 확인 후 변경되도록 수정되었다.

2.3. Server

  • 사용자 계정 삭제 시 안내 메시지를 받고 삭제되도록 변경

    • 사용자 계정 삭제 시 오조작 방지를 위한 안내 메시지가 출력되고, 사용자 동의 후에 계정이 삭제되도록 수정되었다.

3. 버그 수정

3.1. Deployment

  • multi release jar 사용 app에서 handle type 체크 시 class를 찾지 못하는 현상 수정

    • multi release jar가 있는 애플리케이션에서 handle type 체크 시 class를 찾지 못하는 현상이 수정되었다.

3.2. JMS

  • remaining message가 있는 경우 consumer 재연결 시 message receive되지 않는 현상 수정

    • remaining message가 있는 경우 consumer close 후 재연결 시 메시지가 수신되지 않는 현상이 수정되었다.

  • JMS Messages 복구 시 순서 보장되지 않는 현상 수정

    • 서버 재기동 후 JMS Messages 복구 시 순서가 보장되지 않는 현상이 수정되었다.

3.3. Server

  • Valid-Size 옵션 사용 시 3GB 초과할 경우 비정상 동작 현상 수정

    • 로그 파일 로테이션 Valid-Size 옵션 사용 시 3GB 초과할 경우 비정상 동작하는 현상이 수정되었다.

3.4. Servlet

  • session cookie의 domain attribute 첫 글자가 숫자일 경우 IllegalArgumentException 발생하는 현상 수정

    • session cookie의 domain attribute에서 첫 글자가 숫자일 경우 IllegalArgumentException이 발생하는 현상이 수정되었다.

  • service 내 response.addHeader 이후 sendError 시 헤더 사라지는 현상 수정

    • service 내 response.addHeader 이후 sendError 시 헤더가 사라지는 현상이 수정되었다.

  • 여러 개의 range가 있을 때 overlapping된 구간을 제대로 처리하지 못하는 현상 수정

    • 여러 개의 range가 있을 때 overlapping된 구간을 제대로 처리하지 못하는 현상이 수정되었다.

  • client endpoint의 pong message 전송 후 server endpoint에서 pong message에 대한 handler가 없을 경우, 이후 data message를 정상 처리하지 못하는 현상 수정

    • client endpoint가 pong message를 보내고 server endpoint에서 pong message에 대한 handler가 없을 경우, 이후 data message를 정상적으로 처리하지 못하는 현상이 수정되었다.

  • Access Log 출력 시 deserialize 실패로 session이 유실되는 현상 수정

    • Access Log를 출력하는 과정에서 session을 가져오려고 할 때, deserialize가 실패되어 session이 유실되는 현상이 수정되었다.

  • getWriter 및 characterEncoding 관련 API 호출 없이 default content type이 적용되도록 수정

    • response의 getWriter 및 characterEncoding 관련 API를 호출하지 않고도 default content type이 적용되도록 수정되었다.

  • WebtoB 재기동 후 바로 websocket과 연결을 못맺는 현상 수정

    • WebtoB 재기동 후 바로 websocket message를 보냈을 때, 연결을 맺지 못하는 현상이 수정되었다.

  • cookie가 version 1인 경우 samesite가 적용 안되는 현상 수정

    • cookie가 version 1인 경우 samesite가 적용되지 않는 현상이 수정되었다.

  • async servlet을 dispatch하지 않는 경우 webtob connection state가 reconnecting으로 남는 현상 수정

    • async servlet을 dispatch하지 않는 경우 webtob connection state가 reconnecting으로 남는 현상이 수정되었다.

3.5. EJB

  • JDK 17 환경에서 IIOP 호출 되지 않는 현상 수정

    • JDK 17을 사용한 JEUS에서 IIOP 호출 지원을 위해 Corba ORB 초기화 시 사용하는 class loader를 system class loader에서 thread’s context class loader로 변경하여 IIOP 호출이 되지 않는 현상이 수정되었다.