넷빈 6.1에서 웹서비스보안(usename auth and symmetric key) 적용하기 - 02

0

Written on 오후 11:19 by 강여사(J.Y.Kang)

그럼 웹서비스 클라이언트 프로그래밍을 시작하도록 하겠습니다.

new project - web - web application
next



프로젝트 이름 : HelloClient
next



서버는 glassfish v2
다른 건 기본값 그대로
finish



그럼 만들어진 HelloClient 에서 웹 서비스 클라이언트 프로그램을 합니다.
프로젝트에서 마우스 오른쪽 new - web service client 클릭



WSDL 위치를 선정하는데 현재 HelloServer 가 deploy 되어 있기 때문에 Project 에서 browse 버튼을 눌러 적용시키도록 하겠습니다.
browse 버튼을 눌러 팝업창에서 HelloServer 안의 HelloWS 를 선택합니다.
OK



다음 그림처럼 나오면 Finish



아마 아래쪽에 진행도가 계속 창으로 제시됩니다. wsimport 등등..



그럼 불러와진 웹서비스 메소드를 코드작성을 위해 index.jsp 페이지의 Hello World 아래 적당히 칸을 비우고..

왼쪽의 Web Service References 아래 HelloWSService - HelloWSPort - sayHello 를 선택하여 그대로 Hello World 아래 드래그 하면 일련의 코드가 자동생성됩니다. (또는 편집기 Hello World 아래 빈칸에서 마우스 오른쪽을 누르면 web service client references - call web service operation 을 클릭하셔도 같습니다)

자동생성된 코드를 보면 name 이 비어있습니다. 거기에 적당히 단어를 입력하겠습니다. JAVA 라고 줬습니다.



이제 클라이언트 보안 설정을 유도할 차례입니다. 역시 아까와 동일하게 HelloWSService 에서 마우스 오른쪽을 누르면 Edit Web Service Attributes 메뉴가 있습니다. 클릭하면 팝업창이 뜹니다.



팝업창에 보시면 Quality Of Service 탭의 Security 가 있습니다. 맨처음 상태는 텍스트필드에 아무것도 없는 상태입니다.



여기서 Use Development default 를 체크하면 (간혹 체크가 안되는 버그가 있더군요.. 체크만 안나타날뿐 아래 wsituser 와 비밀번호가 들어가는 건 보입니다만..--; 아무튼~) 됩니다.
OK



이제 클라이언트 프로젝트를 deploy 하고 실행하면 됩니다.
deploy



run(실행)



웹브라우저에 result = Hello JAVA 가 나타나면 정상적으로 동작하고 있는 상황입니다.



다른 보안 알고리즘등도 비슷한 방법으로 적용하시면 됩니다. 그건 시간 나는대로 캡처해서 다음 기회에..^^;;

수고하셨습니다.



넷빈 6.1에서 웹서비스보안(usename auth and symmetric key) 적용하기 - 01

0

Written on 오후 11:03 by 강여사(J.Y.Kang)

음..세미나때 핸즈온랩으로 구성했는데 결과가 음.. ^^;;

나중에 하면서도 이야기하겠지만 글래스피시(glassfish v2)에 버그들이 드글드글 합니다요..에혀.. 그래서 glassfish v3로 빨리 옮겨가는 건가..원.. 아무튼.. 버그최대한 무시하고 사는데 웹서비스 보안쪽으론 특히나 이노무 버그들이 문제도 되는군요..--+

우짰든 하는 방법이야 뭐..알고 있다가 버그 수정된 거에서 돌리면 되죠..--; (그러면서 버그 리포트에는 글 안올린다는..쿠헐헐..뭐 버그 리포트 중 선정되면 예전에 워크스테이션 준적도 있었습니다. 벗드..전 조용히 사는게 낙인 사람인지라..)

일단 게시물의 시나리오는 다음과 같습니다.

웹 서비스 HelloWS를 만들고 거기에 username authentication and symmetric key 암호 알고리즘을 적용시킬 예정이고 이때 전송되는 request 와 response를 보도록 하겠습니다.

시작하죠.

new project - web - web application



프로젝트 이름: HelloServer
경로는 알아서
next



서버는 GlassFish v2
나머지 기본으로
finish



이제 만들어진 프로젝트에서 웹서비스를 만듭니다.

프로젝트에서 마우스 오른쪽 클릭
new - web service 클릭



웹서비스 이름은 HelloWS 로 줬습니다.
패키지는 server 로.
finish



그럼 metro 의 작업으로 디자인 창이 보입니다 (뒤에 파란색으로 보이는 거)
거기서 add operation 버튼을 누르면 팝업창이 뜹니다.
팝업창에서 웹서비스 메소드에 대한 작업을 진행합니다.

오퍼레이션 이름: sayHello
리턴값은 그냥 스트링 그대로
파라미터의 오른쪽 add 버튼을 눌러 매개변수를 입력합니다.
이름은 name 으로 (그림 참조)
OK



일련의 코드는 위의 설정으로 자동 생성되지만 코드에서 처리할 부분이 있습니다. Design 옆의 Source 탭을 눌러 소스부분을 편집기에 보이도록 한 후 return null 대신 다음 내용을 작성합니다.

return "Hello " + name;



그럼 나중에 sayHello 메소드 결과가 Hello 와 인자로 넘어간 name 이 찍히면 정상입니다.

프로젝트의 웹 서비스 디렉토리 안에 HelloWS 에서 마우스 오른쪽을 클릭하면 Edit Web Service Attributes 를 클릭합니다.




다음과 같은 팝업창이 뜨는데 여기서 웹 서비스 보안 알고리즘을 처리합니다.

Secure Service 를 체크하고
보안 알고리즘을 선정하면되는데 (드랍다운메뉴를 누르면 여러 알고리즘이 있습니다) 그 중 username authentication and symmetric key 를 선택하도록 하겠습니다.
그리고 키저장소 등등을 위해 다른 세팅도 가능한데 그냥 Use Development default 체크된대로 쓰도록 하겠습니다. (원래 썬 엔지니어 시연에서는 이걸 바꾸라고 했는데 바꾸니 오히려 더 안되더군요..쩝...되는 쪽으로 진행합니다. 6--;;)



그림처럼 하고(체크2개) OK

웹서비스 서버 프로그래밍이 끝났습니다. 서버에 올려야죠.
deploy



그럼 다음은 웹 서비스 클라이언트 프로그래밍을 하도록 하겠습니다.

계속...