Danh mục

Làm chủ Grails: Chứng thực và phân quyền

Số trang: 31      Loại file: pdf      Dung lượng: 191.14 KB      Lượt xem: 8      Lượt tải: 0    
Jamona

Hỗ trợ phí lưu trữ khi tải xuống: 7,000 VND Tải xuống file đầy đủ (31 trang) 0
Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Đảm bảo an ninh cho các ứng dụng Grails của bạn Scott Davis , Tổng Biên tập, AboutGroovy.com Tóm tắt: Grails cung cấp tất cả các khối xây dựng cơ bản bạn cần để lắp ghép thành một ứng dụng Web an toàn, các khối này được sắp xếp từ mức thẩm định quyền đơn giản thông qua cơ chế đăng nhập đến việc phân quyền dựa trên vai trò, và trong phần Làm chủ Grails, Scott Davis cung cấp cho bạn những bài học thực hành về đảm bảo an ninh cho ứng dụng Grails của bạn. Bạn...
Nội dung trích xuất từ tài liệu:
Làm chủ Grails: Chứng thực và phân quyền Làm chủ Grails: Chứng thực và phân quyềnĐảm bảo an ninh cho các ứng dụng Grails của bạnScott Davis , Tổng Biên tập, AboutGroovy.comTóm tắt: Grails cung cấp tất cả các khối xây dựng cơ bản bạn cần để lắp ghépthành một ứng dụng Web an toàn, các khối này được sắp xếp từ mức thẩm địnhquyền đơn giản thông qua cơ chế đăng nhập đến việc phân quyền dựa trên vai trò,và trong phần Làm chủ Grails, Scott Davis cung cấp cho bạn những bài học thựchành về đảm bảo an ninh cho ứng dụng Grails của bạn. Bạn cũng sẽ đ ược học vềcác trình gắn vào (plug-in) sao cho bạn có thể mở rộng khả năng đảm bảo an ninhcho ứng dụng của bạn theo nhiều hướng mới.Trong bài viết này, tôi tiếp tục việc xây dựng một blog siêu nhỏ có tên làBlogito. Tôi đã sử dụng lại các Users trong bài viết trước ( Rewiring Grails withcustom URIs and codecs) bởi vì trường name là một phần của URI đầy đủ. Đãđến lúc thực thi hệ thống con User đầy đủ. Bạn sẽ học cách để tạo cơ chế đăngnhập, hạn chế hoạt động của người dùng dựa vào việc User có đăng nhập haykhông, và thậm chí thêm vào một số quyền dựa trên vai trò của User.Để bắt đầu, người sử dụng cần có một cách đăng nhập vào blog sao cho họ có thểbổ sung các entry mới.Việc thẩm định quyềnViệc thẩm định quyền có lẽ là một ý tưởng tốt đối với các máy chủ blog hỗ trợnhiều người dùng. Dĩ nhiên là bạn không muốn một người dùng có tên là JohnDoe lại tình cờ bổ sung các entry lên blog hệt như người dùng tên Jane Smith.Việc thiết lập cơ sở cho việc thẩm định quyền là trả lời câu hỏi: Bạn là ai?. Ngaysau đó, bạn sẽ có thêm một chút quyền nữa, và nó trả lời cho câu hỏi: Bạn đượcphép làm gì?Ví dụ 1 biểu diễn một tệp grails-app/domain/User.groovy mà bạn đã tạo ra vào lầntrước:Ví dụ 1. Lớp Userclass User { static constraints = { login(unique:true) password(password:true) name() } static hasMany = [entries:Entry] String login String password String name String toString(){ name }}Các trường login và password đã được đặt đúng vị trí. Tất cả những gì bạn cần làcung cấp một điều khiển (controller) và một mẫu biểu (form). Hãy tạo ra tệpgrails-app/controllers/UserController.groovy và thêm vào đoạn mã, như trong vídụ 2:Ví dụ 2. Thêm xác thực quyền login , và logout cho điều khiển UserControllerclass UserController { def scaffold = User def login = {} def authenticate = { def user = User.findByLoginAndPassword(params.login, params.password) if(user){ session.user = user flash.message = Hello ${user.name}! redirect(controller:entry, action:list) }else{ flash.message = Sorry, ${params.login}. Please try again. redirect(action:login) } } def logout = { flash.message = Goodbye ${session.user.name} session.user = null redirect(controller:entry, action:list) }}Một lệnh login rỗng đơn giản sẽ kết thúc ngay sau khi được gọi. Có nghĩa là việcviếng thăm trang http://localhost:9090/blogito/user/login bằng tr ình duyệt sẽ trả vềtệp grails-app/views/user/login.gsp. (Bạn sẽ tạo ra tệp đó ngay lập tức.)Việc kết thúc authenticate sử dụng một phương thức GORM thuận tiện —findByLoginAndPassword() — để tìm ra thông tin kiểu như: tìm User trong cơ sởdữ liệu, mà giá trị login và password khớp với giá trị được đưa vào trong cáctrường này ở trên mẫu biểu và làm cho chúng khả dụng thông qua ánh xạ bămparams. Nếu User tồn tại, thêm nó vào một phiên làm việc (session). Ngược lại,quay lại mẫu biểu đăng nhập và cho User một cơ hội khác để cung cấp thông tinxác thực đúng. Lệnh đăng xuất logout đưa ra lời chào tạm biệt User, xóa thông tinvề người sử dụng trong phiên làm việc và sau đó chuyển đến hành động list trongEntryController.Đã đến lúc bạn tạo ra tệp login.gsp rồi. Bạn có thể gõ lại đoạn mã trong ví dụ 3hoặc bạn có thể: 1. Gõ grails generate-views User tại cửa sổ dòng lệnh (command line). 2. Sao chép tệp create.gsp vào tệp login.gsp. 3. Sửa đi một chút để có mã kết quả.Ví dụ 3. login.gsp Login Login ${flash.message} Login: Password: Chú ý rằng action của mẫu biểu là authenticate, nó so khớp tên của bao đóng trongUserController.groovy. Các tên trong các thành ph ần nhập liệu — login vàpassword — phù hợp với các tham số params.login và params.password trong baođóng authenticate.Gõ grails run-app và thực hiện việc thẩm định quyền của bạn lặp lại vài lần. Thửđăng nhập với tên người dùng là jsmith và password là foo. (Nhớ rằng trong Rewiring Grails with custom URIs and codecs (Mắc nối các Grail với các URI tùychỉnh và các ...

Tài liệu được xem nhiều: