2012-07-30 20 views
7

Tôi đã thiết lập xác thực MẪU trong web.xml (java-webcontainer) thành công.web.xml, sử dụng biểu mẫu và xác thực cơ bản đồng thời

Tôi không tìm thấy cách gửi tên người dùng/mật khẩu trong yêu cầu nhận tiền gửi từ khách hàng của tôi khi sử dụng FORM-Authentication. Vì vậy, tôi phải sử dụng BASIC-Xác thực chỉ cho các uri yên tĩnh.

Vì vậy, tôi có câu hỏi này:

Làm thế nào tôi có thể thiết lập cả hai xác thực dựa trên hình thức và xác thực cơ bản? Chỉ nên bật xác thực cơ bản cho uri an toàn.

+0

Bạn vẫn quan tâm đến câu trả lời cho câu hỏi này? – Olaf

+0

có! Tôi đã ở trong các ngày lễ :) – nimo23

Trả lời

6

Không có câu trả lời nào ở đây trong một thời gian, vì vậy tôi đã làm một servlet nhanh chóng làm mới bản thân mình. Thông số kỹ thuật Servlet thực sự chỉ cho phép một phần tử <login-config> cho mỗi ứng dụng web, do đó không có cách nào để có điểm nhập với xác thực BASIC cho API REST và một điểm khác với xác thực dựa trên MẪU cho giao diện người dùng. Tùy chọn duy nhất là xây dựng chúng dưới dạng hai ứng dụng độc lập có thể triển khai. Để tránh trùng lắp mã, có thể là một ý kiến ​​hay khi chỉ để ứng dụng giao diện người dùng nói chuyện với API REST giống như cách mà các ứng dụng khách của bên thứ ba được yêu cầu.

+0

Tôi hy vọng, nó sẽ có thể trong các thông số kỹ thuật servlet trong tương lai. Có lẽ chúng ta nên thực hiện một yêu cầu tính năng? – nimo23

7

Tôi cũng đã phải đối mặt với một vấn đề tương tự và tôi nhận ra rằng nếu bạn đang sử dụng Wildfly sau đó nó có thể cấu hình nhiều cơ chế sử dụng web.xml: -

<auth-method>BASIC?silent=true,FORM</auth-method> 

Sử dụng xác thực cơ bản im lặng này sẽ được thử nghiệm đầu tiên, là xác thực cơ bản chỉ có hiệu lực nếu có tiêu đề Cấp quyền. Nếu không có tiêu đề như vậy, thì xác thực mẫu sẽ được sử dụng thay thế.

Có thể quá muộn để trả lời nhưng tôi vừa cập nhật điều này trong trường hợp ai đó thấy điều này hữu ích: P

+1

Cảm ơn rất nhiều. Điều này giúp rất nhiều. Tiết kiệm rất nhiều thời gian. –

Các vấn đề liên quan