2010-05-03 24 views
5

Tôi muốn bất kỳ người dùng nào có thể gửi tên của họ tới biểu mẫu tình nguyện nhưng chỉ quản trị viên mới có thể xem bất kỳ URL nào khác. Thật không may tôi dường như không thể có được điều này đúng. Tệp resources.xml của tôi như sau;Bảo mật mùa xuân 3.0 - Chặn đánh chặn - Tất cả các trang yêu cầu xác thực nhưng

<?xml version="1.0" encoding="UTF-8"?> 
<beans:beans xmlns="http://www.springframework.org/schema/security" 
    xmlns:beans="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
         http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"> 
    <http realm = "BumBumTrain Personnel list requires you to login" auto-config="true" use-expressions="true"> 
     <http-basic/> 
     <intercept-url pattern="/person/volunteer*" access=""/> 
     <intercept-url pattern="/**" access="isAuthenticated()" /> 
    </http> 

    <authentication-manager alias="authenticationManager"> 
     <authentication-provider> 
      <user-service> 
       <user name="admin" password="admin" authorities="ROLE_ADMIN"/> 
      </user-service> 
     </authentication-provider> 
    </authentication-manager> 
</beans:beans> 

Cụ thể là tôi đang cố gắng đạt được cài đặt quyền truy cập mà tôi đã mô tả qua;

<intercept-url pattern="/person/volunteer*" access=""/> 
    <intercept-url pattern="/**" access="isAuthenticated()" /> 

Ai đó có thể mô tả cách sử dụng chặn chặn để đạt được kết quả tôi đã mô tả?

Cảm ơn

Gav


Đối với bất cứ lý do trong một ứng dụng grails tôi cần;

 <intercept-url pattern="/person/volunteer/**" access="" filters="none"/> 
    <intercept-url pattern="/images/**" access="" filters="none"/> 
    <intercept-url pattern="/css/**" access="" filters="none"/> 
    <intercept-url pattern="/js/**" access="" filters="none"/> 
    <intercept-url pattern="/**" access="ROLE_ADMIN" /> 

Để làm việc này, hãy lưu ý sự khác biệt trong quy tắc đầu tiên.

Trả lời

8

Chính xác những gì không hoạt động như bạn mong đợi? có chuyện gì vậy?

Tôi nghĩ rằng truy cập = "" không gì bạn mong đợi ... Sử dụng định dạng từ các tài liệu:

<intercept-url pattern="/login.jsp*" filters="none"/> 

Nếu bạn không sử dụng xác thực mặc định (mà bạn làm) bạn sẽ cần phải thêm một WebExpressionVoter vì bạn sử dụng các biểu thức expressions doc

+0

tính đến mùa xuân 3.1, '' nên được sử dụng. –

1

Chào thay thế access="" với địa chỉ access="permitAll" cho url bạn muốn thực hiện truy cập mà không cần xác thực.

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