[Spring-Flex] [ACEGI] Ошибка или нет безопасности - PullRequest
1 голос
/ 05 августа 2010

Как я уже сказал в заголовке моего вопроса, мне не удается настроить Spring Security ... Я следил за двумя статьями, написанными Джеймсом Уордом или Джеттро Коэнради, но у меня все еще нет этого!

Сначала я попытался заставить все это работать в поддельном проекте, и это сработало хорошо, хотя я пытался в «реальном» проекте.Конфигурационные файлы точно такие же в отношении Spring Security, но реальный проект терпит неудачу.

Моя конфигурация в web.xml:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/config/applicationContext.xml</param-value>
</context-param>

...

<filter>  
    <filter-name>springSecurityFilterChain</filter-name>  
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>  
    <filter-name>springSecurityFilterChain</filter-name>  
    <url-pattern>/*</url-pattern>
</filter-mapping>

    ...

<servlet>
    <servlet-name>Spring MVC Servlet Dispatcher</servlet-name>
    <display-name>Spring MVC Servlet Dispatcher</display-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/config/webApplicationContext.xml</param-  value>
        </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

В applicationContext.xml:

<security:global-method-security secured-annotations="enabled" jsr250-annotations="enabled" />

<security:http entry-point-ref="preAuthenticatedEntryPoint">
    <security:anonymous enabled="false"/>
</security:http>

<bean id="preAuthenticatedEntryPoint" class="org.springframework.security.web.authentication.Http403ForbiddenEntryPoint"/>

<security:authentication-manager>
    <security:authentication-provider>
        <security:user-service>
            <security:user name="arnaud" password="arnaud" authorities="ROLE_USER"/>
        </security:user-service>
    </security:authentication-provider>
</security:authentication-manager>

В webApplicationContext.xml ceci:

<flex:message-broker>
    <flex:secured />
</flex:message-broker>

И в каждой службе bean-компонента:

<security:intercept-methods>
    <security:protect method="*" access="ROLE_USER" />
</security:intercept-methods>

Сначала я попытался заменить этот последний фрагмент кода аннотациями @Secured ("ROLE_USER"), который не работал, поэтому я использовал security: intercept-method и security: protect tags.

В моем первом фальшивом проекте, когда я запускаю свое flex-приложение (простая сетка данных, получающая списокпродуктов), продукты не загружены, и у меня отправлено FaultEvent, поэтому Spring Security работает.

Во втором проекте, настоящем, у меня есть ошибка при развертывании, сообщающая мне, что "*" (или«findAll», когда я пытался) не является допустимым именем метода.

С

<security:protect method="com.blablabla.UserService.findAll" access="ROLE_USER" />

У меня больше нет этой ошибки, и я могу запустить свое гибкое приложение.

Но когда я запускаю его, все мои пользователи (уВ этом втором приложении я получаю пользователей, а не продукты), загруженных в сетку данных!А это значит, что охрана вообще не работает.

Это сводит меня с ума!

1 Ответ

0 голосов
/ 08 августа 2010

Я бы ожидал увидеть некоторые элементы <security:intercept-url> в элементе <security:http>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...