2012-01-11 26 views
6

Tôi khá tuyệt vọng, bởi vì tôi nghĩ rằng phải có một giải pháp dễ dàng cho vấn đề của tôi nhưng tôi đang tìm kiếm - vô ích.Ràng buộc bảo mật trong web.xml cho người dùng được xác thực mà không có vai trò thành viên

Tôi đang sử dụng Vương quốc tùy chỉnh trong Glassfish 3.1.1. Lĩnh vực tùy chỉnh này (triển khai AppservPasswordLoginModuleInterface) nhận mã thông báo bảo mật từ yêu cầu HTTPS, xác nhận mã thông báo bảo mật và sau đó trả về người dùng cho Glassfish.

Sự cố là mã bảo mật không chứa bất kỳ nhóm nào, nghĩa là phương thức công khai String [] getGroupsList() hoặc lĩnh vực tùy chỉnh trả về danh sách trống (chính xác, vì không có vai trò trong mã thông báo bảo mật).

Điều đó nói rằng, tôi muốn có một giới hạn bảo mật mà chỉ những người dùng được xác thực mới có thể đăng nhập. Tôi biết rằng tôi có thể sử dụng các hạn chế sau đây trong web.xml:

<security-constraint> 
    <web-resource-collection> 
    <web-resource-name>mywebapp</web-resource-name> 
    <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
    <role-name>Users</role-name> 
    </auth-constraint> 
</security-constraint> 

Nhưng bởi vì tôi không có bất kỳ nhóm nào, tôi không thể lập bản đồ bất kỳ nhóm để vai trò, và do đó tôi không thể sử dụng auth-khăn với vai trò -Tên.

Có cách nào trong web.xml để xác định rằng chỉ những người dùng được xác thực mới được phép, bỏ qua vai trò của họ và bỏ qua việc họ có vai trò gì không.

Có một vài giải pháp mà tôi không thể thực hiện:

  • tôi không thể thay đổi LDAP cơ bản bao gồm vai trò, vì giản đồ LDAP và cách làm thế nào người dùng LDAP được ánh xạ tới an ninh mã thông báo ra của chúng ta về phạm vi .
  • Tôi phải sử dụng trình xử lý realm tùy chỉnh hiện tại, tôi không thể thay thế bằng trình xử lý của riêng mình mà chỉ trả lại một nhóm mặc định. Tôi đã thử điều này một lần, và nó đã làm việc. Nhưng tôi không thể thay thế các lĩnh vực tùy chỉnh hiện tại với của riêng tôi bởi vì các lĩnh vực tùy chỉnh nên chung chung.

Nhưng tôi thực sự nghĩ rằng nên có một cách trong web.xml chỉ để nói: Bỏ qua tất cả các nhóm và vai trò, tôi chỉ muốn một người dùng được xác thực?

Mọi trợ giúp sẽ được đánh giá cao.

Trả lời

15

Khá cũ, nhưng đối với những người tìm kiếm một câu trả lời, bạn có thể sử dụng một tên * vai trò:

<auth-constraint> 
    <role-name>*</role-name> 
</auth-constraint> 

This guy quản lý để giải quyết nó.

+0

Không hoạt động trên Weblogic 10.3.4. –

+0

Hoạt động trên WF10.1.0. Đừng quên đặt cũng trong a * (nếu không, nếu * chỉ trong , điều này không hoạt động). –

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