Võ Văn Hải's blog

Chỉ có một điều tuyệt đối đó là mọi thứ đều tương đối…

Secure Web Service sử dụng Username Authentication with Symmetric Keys (UA)

Phần 1: Secure Web Service sử dụng Username Authentication with Symmetric Keys (UA):

Đầu tiên bạn tạo 1 web application project. Đặt tên là WSSecurityDemo

clip_image002

clip_image004

clip_image006

Nhấn Finish. Ta có được 1 web application Project. Bây giờ ta tạo 1 web service đơn giản cho việc đổi tiền từ tiền việt sang usd.

Nhấn chuột phải lên project, chọn New->Other

clip_image008

clip_image010

Nhấn Finish.

Chọn Design như hình

clip_image011

Nhấn Add Operation

clip_image012

Chọn Source Code để thay đổi code. Code sửa đổi như sau :

clip_image014

Sau quay lại màn hình design, chọn vảo checkbox “secure service” như hình:

clip_image015

Nhấn nút Advanced.

clip_image016

Check vào checkbox “Secure Service”, Netbeans yêu cầu ta dùng thư viện METRO thay vì JAX-WS bởi METRO đã bao gồm JAX-WS. Bạn chọn Yes. (bạn có thể xem lại library sau này bằng cách nhấn phải chuột lên project, chọn properties, chọn libraries)

clip_image017

Chọn Security Mechanism. Trong trường hợp này ta chọn “Username Authentication with Symmetric Key” (xác thực theo username-password với cơ chế key đối xứng)

Checkbox “Use Development Default” đảm bảo cho bạn mọi thứ đã được config sẵn (keystroke, username, password). Nếu bạn không muốn thì tạo một file keystore(xem ở phần web security – dùng command-line sau: keytool -genkey -alias tomcat -keyalg RSA) rồi bỏ checkbox, nhấn Keystore và cấu hình. Với keystore mặc định, bạn sẽ có 1 dòng trong file tomcat-users.xml như sau:

<user name="wsitUser" password="changeit" roles="tomcat"/>

Sau đó kéo thanh trượt bên cạnh xuống như hình

clip_image018

Nhấn nút Message Parts của Input Message và Output Message sao cho các chọn lựa như hình:

clip_image019

clip_image020

Nhấn OK.

Chúng ta hãy xem cấu hình secure cho wss vừa tạo: wsit-vovanhai.wordpress.com.MyWebService.xml

clip_image021

Ví nhự 1 đoạn như sau:

clip_image022

Nhấn phải chuột lên Project, chọn Deploy

Sau đó Test Webservice như hình

clip_image023

clip_image025

clip_image027

Copy URL: http://localhost:8080/WSSecurityDemo/MyWebService?wsdl

Giờ là đến lúc viết client

Tạo 1 Web Application

clip_image029

Nhấn phải chuột lên Project, chọn New->other…

clip_image031

Nhấn Next

clip_image033

Điền URL vào tùy chon WSDL URL, nhấn Finish.

Mở rộng Project, chọn đến phương thức của Web Service tham chiếu, kéo phương thức VND2USD thả vào trang JSP, code sẽ sinh ra như hình

clip_image035

Sửa code lại như sau:

clip_image037

Bây giờ bạn chạy file jsp này. Bạn sẽ thấy như sau:

clip_image038

Do bạn chưa cấu hình secure cho client. Bay giờ bạn cấu hình như sau:

Nhấn phải chuột lên WS references, chọn Edit Web Service Attributes như hình

clip_image039

Cửa sổ sau xuất hiện

clip_image040

Khi bạn Check vào checkbox “Use development defaults”, hộp thoại sau xuất hiện:

clip_image041

Chọn Yes để NetBeans add METRO library vào project của bạn.

Trường hợp bạn tự chọn user,psw, bạn có thể bỏ chọn checkbox này và cấu hình tương ứng với lúc bạn tạo webservice ở trên.

Mặc định cho keystroke ở trên đã nói với username=wsitUser, password=changeit.

Nhấn OK để hoàn tất.

Bạn mở file MyWebService.xml ở vị trí như hình, bạn sẽ thấy nó thêm phần sau:

clip_image042

clip_image044

OK. Bây giờ chạy trang JSP. Bạn sẽ được

clip_image045

OK. Vậy là bạn đã thành công!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.

Join 2,192 other followers

%d bloggers like this: