OpenID4Java로 직접 만든 블로그에 OpenID로 코멘트 쓰기를 붙이면서 겪었던 것들을 몇가지 정리해봅니다.
편의상 경어를 피하겠습니다.
[설치환경]
- jdk 1.6.0-b105
- resin 3.1
- OpenID4java의 lib의 모든 xsd과 jar를 $resin/lib/openid로 몽땅 복사
- OpenID4java의 endorsed의 모든 jar를 $JAVA_HOME/jre/lib에 endorsed 디렉 만들고 복사
[시나리오]
Context init 리스너에서 ConsumerManager를 생성하고 In-Memory association, Nonce verifier 지정
사용자가 OpenID를 입력하고 코멘트를 작성
write_cmt.jsp 로 submit
로그인된 사용자인지 확인, OpenID로 남기려는 사용자인지 확인
코멘트 입력정보들과 복귀후 리다이렉트 될 url과 DiscoveryInformation을 묶어 OpenIDSession이란 커스텀 클래스로 묶어 세션에 보관
리턴 페이지 (제 경우 http://xrath.com) 담아서 OpenID server 로 리다이렉트
OpenID 서버(제 경우 [myID.net](http://myid.net))에서 인증을 마치고 리턴 페이지로 복귀
세션에서 OpenIDSession이 있는지 검사
Identifier가 세션에 존재하고 Verified 인지 확인
세션에 함께 넣어놨던 action 페이지(제 경우 write_cmt)로 리다이렉트
코멘트 INSERT됨!
[주의사항]
-
endorsed 가 바뀌어 디폴트 xml transformer가 xalan-2.6으로 바뀌었다. 이 때문에 잠시 rss가 안돌아갔는데, TransformerFactory에 "indent-number" 속성을 더이상 사용할 수 없게 되었다. ㅠㅠ 그럼 이제 표준 방법대로 하면 되는건가?
-
만약 ConsumerManager.discover 에서 NullPointerException이 발생할 경우, src/net/openid/yadis/YadisResolver.java 315라인의 주석 제거 후 java-openid-sxip.jar 리빌드해보자. (도대체 왜 주석처리 되어있던건지 잘 모르겠지만, 바쁘니 패스-_-)
정리하고 나니 큰 이슈는 없었네요. 이제 테스트베드를 만들었으니 스펙들을 읽어보기 시작해야겠습니다. ![]()