2012-04-29 5 views
4

일반 텍스트 (개발/제어 환경)에서 Tomcat 7/JDBCRealm 인증을 사용하고 있습니다. 이제 암호를 소화해야하므로 웹 응용 프로그램을 호스팅 환경에 업로드하고 싶습니다.SHA2를 사용하기 위해 Tomcat JDBCRealm을 가져올 수 없습니다.

server.xml의 영역 섹션에 'digest = "MD5"를 추가하고 기존의 일반 텍스트 비밀번호를 MySQL의 MD5() 기능을 사용하여 소화 된 것으로 대체하여 일부 계정으로 테스트했습니다.

괜찮 았어.

server.xml에서 SHA2 ('digest = "SHA2"'및 테이블의 암호를 다이제스트하기위한 MySQL의 SHA2() 함수)를 시도하면 로그인 실패가 계속 발생합니다. MySQL의 SHA2 (pwd, 224), SHA2 (pwd, 256), ... 384, ... 515를 시도했지만 아무도 작동하지 않았습니다.

tomcat JDBCRealm/digest 속성에 대한 웹 검색은별로 유익하지 않았습니다.

내가 뭘 잘못 했니?

답변

2

톰캣 로그에서 SHA-2가 유효한 알고리즘이 아님을 알리는 메시지를 찾으십시오. 그러한 메시지가 없으면 Tomcat 버그를 제기하십시오. 당신이 대응을 사용해야합니다,

  • SHA-256
  • SHA-384
  • SHA-512 분명히

:

는 다음 중 하나를 사용해야합니다 MySQL에서 다이제스트.

+0

Thanks Mark, tomcat 로그의 오류를 확인하지는 못했지만 무언가를 놓친 경우를 대비하여 두 번 확인해 보겠습니다. server.xml에서 digest = "SHA2"대신 digest = "SHA-256"을 설정합니까? JDBC 영역의 매개 변수는 어디에 문서화되어 있습니까? 표준 HTML 문서는 단순히 MD5의 값을 표시하지만 다른 다이제스트는 표시하지 않습니다. 나는 그것을 봤지만 빈손으로 나왔다. – adaj21

+0

SHA-512 또는 위에서 인용 한 값 중 하나를 사용해야합니다. 지원되는 MessageDigests의 표준 이름은 Java 설명서에서 찾을 수 있습니다. http://docs.oracle.com/javase/6/docs/technotes/guides/security/StandardNames.html#MessageDigest –

+0

감사 표시 내가 잘못된 장소에서보고 있다는 것을 알았습니다 (tomcat 문서). – adaj21

관련 문제