이 절에서는 Enterprise Server 및 웹 응용 프로그램 보안과 인증에 관련된 알려진 문제점과 해결 방법을 설명합니다.
JDK6 Sun PKCS11 공급자에 있는 JDK 버그(https://jdk6.dev.java.net/issues/show_bug.cgi?id=23 참조)는 과도한 스트레스 하에 특정 SSL 시나리오를 실행하는 경우 OutOfMemoryError를 일으킬 수 있습니다.
이 문제가 발생하면 sun.security.pkcs11.SunPKCS11 공급자를 JRE 설치 경로에 있는 java.security 파일에서 제거하십시오.
AIX 플랫폼에서 응답에 대해 암호화 키를 결정하기 위한 동적 암호화가 실패합니다. 실패는 서버측에서 인증을 검증하는 동안 발생합니다.
실패에 대한 응답으로 서버 로그 파일 server.log에 다음 오류 메시지가 기록됩니다.
Unable to validate certificate |
Error occurred while resolving key information com.sun.xml.wss.impl.WssSoapFaultException: Certificate validation failed |
Enterprise Server 2.1에 Metro 1.1을 설치합니다.
run-as 또는 전파된 보안 ID가 @RunAs 주석으로 정의된 엔터프라이즈 빈의 메소드가 다른 엔터프라이즈 빈의 메소드를 호출하려고 합니다. run-as 기본이 sun-ejb-jar.xml 배포 설명자 파일에 정의되어 있지 않으면 시도가 javax.ejb.AccessLocalException 예외와 함께 실패합니다.
javax.ejb.AccessLocalException: Client not authorized for this invocation. |
sun-ejb-jar.xml 배포 설명자 파일에서 principal-name 요소에 run-as 역할이 지정한 대상 기본 이름을 정의합니다.
SSL 종료가 작동하지 않습니다. 로드 밸런서(하드웨어)가 SSL 종료에 맞게 구성되었다면 Enterprise Server는 리디렉션 동안 프로토콜을 https 에서 http로 변경합니다.
하드웨어 로드 밸런서와 Enterprise Server 사이에 소프트웨어 로드 밸런서를 추가합니다.
JVM 버그 때문에 HTTP Listener에서 security-enabled가 true로 설정되어 있는 경우 일부 JDK 버전에서 누수 문제가 발생합니다. 이 버그를 재현할 수 있는 단계는 다음과 같습니다.
HTTP Listener에서 security-enabled를 true로 설정합니다.
<http-listener acceptor-threads="1" address="0.0.0.0" blocking-enabled="false" default-virtual-server="server" enabled="true" family="inet" id=" http-listener-1" port="8080" security-enabled="true" server-name="" xpowered-by="true"> |
quicklook 테스트의 끝에서 정지 도메인을 주석으로 처리합니다.
quicklook 테스트를 실행합니다.
소켓 사용을 검사합니다.
netstat -an | grep 8080 |
다음이 사용 중인 것으로 표시됩니다.
*.8080 *.* 0 0 49152 0 LISTEN *.8080 *.* 0 0 49152 0 BOUND |
이 문제는 GlassFish 사이트(https://glassfish.dev.java.net/issues/show_bug.cgi?id=849)에 설명되어 있습니다.
최신 JDK 버전으로 업그레이드합니다.