Tạo các ứng dụng bảo mật Java một cách hiệu quả - Phần 1

Tóm tắt: Đây là phần đầu tiên trong loạt bài hướng dẫn gồm hai phần viết vềviệc

tạo các ứng dụng Web bảo mật dựa trên Java sửdụng Rational® Application

Developer, Data Studio và Rational AppScan. Bài hướng dẫn đầu tiên này mở đầu

bằng việc trình bày cách thức Data Studio với pureQuery có thểtăng hiệu quảphát

triển Web hướng theo cơsởdữliệu của bạn. Bạn sẽphát triển một ứng dụng Web

Java™ với Rational Application Developer, và sau đó bạn triển khai ứng dụng đó

trên WebSphere với Java Server Pages (JSP)® Application Server.

Trước khi bắt đầu

Bài hướng dẫn này chủyếu dành cho các nhà phát triển ứng dụng cơsởdữliệu và

Java muốn lợi dụng việc sửdụng Data Studio cho các khảnăng pureQuery của nó

và Rational Application Developer đểtạo thuận lợi cho việc phát triển một ứng

dụng dựa trên Java. Đối với bài hướng dẫn này, có kiến thức vềphát triển Web và

JSP nói chung cũng rất hữu ích, tuy nhiên không nhất thiết phải có.

pdf75 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 2207 | Lượt tải: 1download
Tóm tắt nội dung Tạo các ứng dụng bảo mật Java một cách hiệu quả - Phần 1, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
t; 
<meta name="GENERATOR" 
content="Rational Application 
Developer"> 
<!-- Logging out by resetting the 
userid session variable to false. --> 
<% 
 String userid = 
(String)session.getAttribute("userid");
 if(userid != null){ 
 session.setAttribute("userid", 
null); 
response.sendRedirect("login.jsp"); 
 } 
%> 
Không có gì được hiển thị nếu người dùng không được đăng nhập, nhưng nếu 
người dùng được đăng nhập (định danh người dùng không hợp lệ), biến phiên định 
danh người dùng được đặt là không hợp lệ, và người dùng được chuyển hướng lại 
trang đăng nhập. Do đó bây giờ hãy thử nhấn liên kết đăng xuất từ trang chào 
mừng, bạn sẽ được đưa trở lại trang đăng nhập. 
Hình 33. Quay lại trang đăng nhập 
Tiếp theo bạn sẽ mã hóa trang bất động sản nên khách có thể xem và nhập các tài 
sản bất động sản của họ. 
Về đầu trang 
Trang bất động sản 
Để tạo một trang bất động sản cho người dùng có thể xem tài sản bất động sản của 
họ và nhập các tài sản mới, hãy xác định trang Web realstate.jsp, như trong Ví dụ 
9. 
Ví dụ 9. Xác định trang Web bất động sản 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 
Transitional//EN"> 
<jsp:useBean id="realestate" 
class="com.ibm.ds.realestate.RealestateDataImpl" 
 scope="page" /> 
<%@page language="java" contentType="text/html; 
charset=ISO-8859-1" 
 pageEncoding="ISO-8859-1"%> 
realestate 
<meta http-equiv="Content-Type" content="text/html; 
charset=ISO-8859-1"> 
<meta name="GENERATOR" content="Rational 
Application Developer"> 
<!-- Here we login to the database again to fetch all real 
 estate holdings in the 
 realestate table, same database connection URL as before. 
--> 
Your realestate holdings 
Address 
 CityZip 
StateValue 
<% 
 String userid = (String)session.getAttribute("userid"); 
 if(userid == null){ 
 response.sendRedirect("login.jsp"); 
 } 
 Data d = 
SampleUtil.getData("jdbc:db2://localhost:50000/WEALTH",
 "", 
""); 
 realestate.setData(d); 
 Iterator i = realestate.getRealestates(userid); 
 Realestate curr = null; 
 double total = 0; 
 while(i.hasNext()){ 
 curr = (Realestate) i.next(); 
 out.println(""+curr.getAddress()+" 
"+curr.getCity()+ 
 ""+curr.getZip()+" 
"+curr.getState()+ 
 "$"+curr.getPropertyValue()+" 
"); 
 total += curr.getPropertyValue().doubleValue(); 
 } 
 if(total > 0) 
 total = Math.round(total*100.0)/100.0; 
%> 
Total value: $ 
Enter new real estate: 
<% 
 String address = request.getParameter("address"); 
 String city = request.getParameter("city"); 
 String zip = request.getParameter("zip"); 
 String state = request.getParameter("state"); 
 String value = request.getParameter("value"); 
 if(request.getParameter("create") != null){ 
 if(!address.equals("") && !city.equals("") && 
 !zip.equals("") && !state.equals("") 
&& !value.equals("")){ 
 realestate.createRealestate(new BigDecimal(value), 
 address, city, zip, state, userid); 
 response.sendRedirect("realestate.jsp"); 
 } 
 else 
 out.println("You must fill in all fields."); 
 } 
 %> 
 Address: 
 City: 
 Zip: 
 State: 
 Value: $ 
back 
Trang này rất giống trang login.jsp nơi bạn vừa khai bean bất động sản ở đầu trang, 
cùng với một vài câu lệnh nạp của các lớp bạn sẽ sử dụng thông qua trang Web 
JSP này. 
Bắt đầu tại đầu thẻ , mở đầu của một bảng được cài đặt để hiển thị tất cả 
tài sản bất động sản. Tại đây bạn kết nối lại với cơ sở dữ liệu và hãy chú ý đây là 
nơi bạn sử dụng các câu lệnh pureQuery mới mà bạn đã tạo ra trong lớp 
realestateData.java bằng cách truy vấn cơ sở dữ liệu trên định danh người dùng chỉ 
để truy lục một danh sách các bản ghi phù hợp. Những thứ này sau đó được hiển 
thị cho trình duyệt trong phạm vi bảng, tiếp đến là một giá trị tổng của các tài sản 
bất động sản của người dùng. 
Cuối cùng, cài đặt một biểu mẫu để lấy đầu vào cho các tài sản bất động sản. Việc 
nhập theo dữ liệu hợp lệ vào biểu mẫu này gọi chức năng 
realestate.createRealestate() của bean bất động sản. Sau khi thêm thành công bản 
ghi bất động sản mới, người dùng được chuyển hướng trở lại cũng trang đó. Nếu 
nhập dữ liệu không hợp lệ, nó sẽ được thông báo bằng một câu lệnh đầu ra. 
Đăng nhập vào hệ thống sử dụng "hilbilly", và sau đó xem trang Web bất động sản, 
như trong Hình 34. 
Hình 34. Trang Web bất động sản 
Nhấn Create để chạy mã trình và thêm bản ghi bất động sản mới vào hệ thống. 
Hình 35. Nhập một bản ghi bất động sản mới 
Bản ghi được thêm thành công, và tất cả được cập nhật 
Tiếp đến bạn sẽ chuyển sang trang chứng khoán nơi bạn sẽ truy vấn Yahoo! 
Finance API. 
Về đầu trang 
Trang chứng khoán 
Hiện giờ bạn đang ở trang cuối cùng, nơi người dùng sẽ có thể nhìn thấy các giá 
trị bị trì hoãn của tài sản chứng khoán. Xác định trang này, như trong Ví dụ 10. 
Ví dụ 10. Xác định trang Web chứng khoán 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 
Transitional//EN"> 
<jsp:useBean id="securities" 
class="com.ibm.ds.securities.SecuritiesDataImpl" 
 scope="page" /> 
<%@page language="java" contentType="text/html; 
charset=ISO-8859-1" 
 pageEncoding="ISO-8859-1"%> 
securities 
<meta http-equiv="Content-Type" content="text/html; 
charset=ISO-8859-1"> 
<meta name="GENERATOR" content="Rational 
Application Developer"> 
<!-- Here we login to the database to fetch all securities 
 in the securities table, 
 same database URL as before. --> 
Your stock and options holdings 
Sybmol 
 DescriptionQuantity* 
TypeCurrent price** 
 Total value 
Quote date 
<% 
 String userid = (String)session.getAttribute("userid"); 
 if(userid == null){ 
 response.sendRedirect("login.jsp"); 
 } 
 Data d = 
SampleUtil.getData("jdbc:db2://localhost:50000/WEALTH",
 "", 
""); 
 securities.setData(d); 
 Iterator i = securities.getSecuritiess(userid); 
 Securities curr = null; 
 double total = 0; 
 while(i.hasNext()){ 
 curr = (Securities) i.next(); 
 String str = 
""+ 
 curr.getSymbol()+"&f=nd1l1"; 
 URL url = new URL(str); 
 URLConnection conn = url.openConnection(); 
 DataInputStream in = 
 new DataInputStream ( conn.getInputStream ( ) ) ; 
 BufferedReader br = new BufferedReader(new 
InputStreamReader(in)); 
 String line = null; 
 if(br.ready()) 
 line = br.readLine(); 
 String company = line.substring(line.indexOf('"')+1, 
 line.indexOf('"', line.indexOf('"')+1)); 
 String date = line.substring(line.indexOf("\",\"")+3, 
 line.indexOf("\",", line.indexOf("\",\"")+4));
 String price = line.substring(line.indexOf("\",", 
 line.indexOf("\",\"")+4)+2); 
 int multQuantity = curr.getQuantity(); 
 if(curr.getSecuritytype().equals("option")) 
 multQuantity = curr.getQuantity()*100; 
 float totalValue = 
Float.parseFloat(price)*multQuantity; 
 totalValue = 
(float)(Math.round(totalValue*100.0)/100.0); 
 out.println(""+curr.getSymbol()+" 
"+company+ 
 ""+curr.getQuantity()+""+ 
 curr.getSecuritytype()+"$"+price+ 
 "$"+totalValue+""+date+" 
 "); 
 total += totalValue; 
 } 
 if(total > 0) 
 total = Math.round(total*100.0)/100.0; 
%> 
Total value: $ 
* # of contracts for options** Delayed quotes, 
as retrieved from Yahoo! Finance™ 
back 
Bỏ qua các đặc điểm giống với trang Web bất động sản, tại đây bạn truy vấn cơ sở 
dữ liệu cho tất cả chứng khoán của người dùng này, và thiết đặt một bảng để hiển 
thị chúng. Tiếp đến đối với mỗi chứng khoán, bạn truy vấn Yahoo! Finance API 
bằng các thiết lập URL kết nối với trang Web, và lấy nhanh các kết quả vào biến 
dòng bằng lệnh gọi tới dòng = br.readLine();. Ba dòng tiếp theo phân tích các kết 
quả thành ba biến. Hãy chú ý rằng nếu securityType bằng với "quyền chọn", số 
lượng để điện toán giá trị của chứng khoán được nhân với 100 (vì mỗi hợp đồng 
quyền chọn đều có 100 chứng khoán). 
Xem hình ảnh đầu tiên của trang chứng khoán khi hoạt động trong Hình 36 (được 
đăng nhập với người dùng tên tyler). 
Hình 36. Trang Web chứng khoán 
Giống như một người chuyên nghiệp, bạn vừa hoàn thành xong mã trình! Bây giờ 
là lúc để thử và triển khai trên WebSphere Application Server! 
 Về đầu trang 
Triển khai và kiểm tra trên WebSphere Application Server 
Để chạy ứng dụng của bạn trên WebSphere Application Server, vẫn còn một vài 
bước cuối cùng để chuẩn bị ứng dụng của bạn. 
1. Nhấn chuột phải vào login.jsp trong cửa sổ Project Explorer và chọn Run 
As > Run on Server. 
Hình 37. Chạy trên WebSphere Application Server 
2. Cửa sổ Run on Server mở ra. 
Hình 38. Xác định một máy chủ mới 
3. Chọn Mannually define a new server (Xác định thủ công một máy chủ 
mới) và chọn WebSphere v6.1 Server dưới danh mục IBM. Nếu mọi thứ 
có vẻ ổn rồi, nhấn Next. 
4. Cửa sổ WebSphere Server Settings mở ra. 
Hình 39. Cấu hình các cài đặt máy chủ WebSphere 
5. Giữ nguyên mặc định và nhấn Next. 
6. Cửa sổ Add and Remove Projects (Thêm và Gỡ các Dự án) mở ra. Hãy 
chắc chắn là dự án wealthEAR được liệt kê dưới các dự án Configured. 
Hình 40. Thêm và gỡ các dự án 
7. Nhấn Next. 
Hình 41. Chọn các tác vụ 
8. Thế là xong rồi, vì thế hãy nhấn Finish. 
Máy chủ nên khởi động bây giờ. Mở một trình duyệt và xem trang đăng nhập tại 
địa chỉ URL sau:  
Bây giờ bạn đã có một ứng dụng Rational Application Developer hoàn chỉnh thực 
sự với kinh nghiệm của Data Studio. 
Tóm tắt 
Bạn vừa hoàn thành thành công bài hướng dẫn này và thành thạo việc sử dụng hỗ 
trợ pureQuery cho các trang Web JSP của mình. Bạn vừa cài đặt Rational 
Application Developer với Data Studio, tạo thành công một Dynamic Web Project 
được kích hoạt pureQuery (Dự án Web động được kích hoạt pureQuery), sinh mã 
trình pureQuery từ các bảng cơ sở dữ liệu của bạn, và viết năm trang Web JSP để 
minh họa cho tính năng của chúng. 
Hãy chắc chắn là quay trở lại để xem tiếp Phần 2, phần mà bạn sẽ học cách kiểm 
tra ứng dụng Web dựa trên Java của bạn để tìm ra các khiếm khuyết và sửa chúng 
với sự trợ giúp của AppScan! 

File đính kèm:

  • pdfTạo các ứng dụng bảo mật Java một cách hiệu quả, Phần 1.pdf
Tài liệu liên quan