вот описание проблемы. Я разрабатываю веб-приложение с GWT. Я успешно интегрировал Spring Security с gwt для функции аутентификации с помощью следующего кода. Теперь я хочу использовать пружинный «метод безопасности» в своем веб-приложении. Поэтому я сделал то, что написано в http://static.springsource.org/spring-security/site/docs/3.1.x/reference/ns-config.html,
просто добавив <global-method-security secured-annotations="enabled"/>
в вышеупомянутый файл контекста приложения.
<http>
<http-basic/>
<intercept-url pattern="/**" access=""/>
<form-login />
<logout />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="jimis" password="jimispassword" authorities="ROLE_USER,ROLE_ADMIN" />
<user name="bob" password="bobspassword" authorities="ROLE_ADMIN" />
</user-service>
</authentication-provider>
</authentication-manager>
**<global-method-security secured-annotations="enabled"/>**
затем добавляем аннотацию @Secured ("ROLE_ADMIN") над функцией, которая контролирует доступ
Затем я добавляю объявление контекста приложения в web.xml следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee">
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>App.html</welcome-file>
</welcome-file-list>
<session-config>
<session-timeout>10</session-timeout> <!-- in minutes -->
</session-config>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext-security.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>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>appService</servlet-name>
<servlet-class>com.google.gwt.app.example.server.AppServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>appService</servlet-name>
<url-pattern>/app/appService.rpc</url-pattern>
</servlet-mapping>
</web-app>
Обратите внимание, что я только что объявил сервлет gwt не сервлетом диспетчера пружин.
Однако, похоже, эта конфигурация не работает. Фактически, любая роль может иметь право доступа к функции.
Очень странно.
Надеюсь ваши ответы!