17

我正在尝试集成 Spring Security 和 GWT。我也在使用 gwt-incubator-security。我按照他们的 wiki 页面上的描述配置了所有内容。我设法通过使用拦截 URL 使安全性工作,但我无法使用注释使其工作。关于问题是什么的任何想法?

PS 我正在使用 Spring 2.5.6、Spring Security 2.0.5 和 gwt-incubator-security 1.0.1。欢迎任何有用的链接和评论。

这是我的配置文件

应用程序上下文.xml

<?xml version="1.0" encoding="UTF-8"?>
<global-method-security secured-annotations="enabled"
    jsr250-annotations="disabled" />
<http auto-config="true">
    <!-- <intercept-url pattern="/**/*.rpc" access="ROLE_USER" /> -->
    <intercept-url pattern="/gwt/**" access="ROLE_USER" />
    <intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
</http>
<authentication-provider>
    <user-service>
        <user name="rod" password="koala"
            authorities="ROLE_SUPERVISOR, ROLE_USER, ROLE_TELLER" />
        <user name="dianne" password="emu" authorities="ROLE_USER,ROLE_TELLER" />
        <user name="scott" password="wombat" authorities="ROLE_USER" />
        <user name="peter" password="opal" authorities="ROLE_USER" />
    </user-service>
</authentication-provider>
<beans:bean id="greetService" class="com.ct.test.server.GreetingServiceImpl" />

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<!-- Default page to serve -->
<welcome-file-list>
    <welcome-file>Spring_test.html</welcome-file>
</welcome-file-list>
<!--  Spring related configuration  -->
<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>
<!-- Initialise the Spring MVC DispatcherServlet -->
<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<!-- Map the DispatcherServlet to only intercept RPC requests -->
<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/spring_test/greet.rpc</url-pattern>
    <!--
        <url-pattern>/org.example.gwtwisdom.GwtWisdom/services/*</url-pattern>
    -->
</servlet-mapping>
<servlet>
    <servlet-name>greetServlet</servlet-name>
    <servlet-class>com.ct.test.server.GreetingServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>greetServlet</servlet-name>
    <url-pattern>/spring_test/greet.rpc</url-pattern>
</servlet-mapping>
<!-- Spring security -->
<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>

spring-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- The application context definition for the DispatcherServlet -->
<bean id="urlMapping" class="com.gwtincubator.security.server.GWTSecuredHandler">
    <property name="mappings">
        <map>
            <entry key="/spring_test/greet.rpc" value-ref="greetService" />
        </map>
    </property>
</bean>

这是我尝试与 Spring Security 集成的示例项目:http ://www.filedropper.com/springtest_1

4

7 回答 7

1
于 2012-03-19T15:18:55.237 回答
0

您的 applicationContext.xml 中似乎缺少命名空间配置。

它应该如下所示:

<?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
          xmlns:sec="http://www.springframework.org/schema/security"
          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-2.5.xsd
                           http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd">
于 2010-03-04T14:59:34.007 回答
0

我猜您需要在 applicationContext.xml 中有架构,并启用注释:

<context:annotation-config />
<context:component-scan base-package="my.package" />

参考:http ://weblogs.java.net/blog/seemarich/archive/2007/11/annotation_base.html

于 2011-12-21T14:49:28.737 回答
0

Acris 框架也使用 Spring Security。他们在他们的 wiki http://code.google.com/p/acris/wiki/SecurityServer上有对此的描述

于 2011-12-01T23:28:06.063 回答
0

按照以下链接使用 Spring 配置 GWT:

http://raibledesigns.com/rd/entry/integrating_gwt_with_spring_security

或者

http://www.javacodegeeks.com/2010/12/securing-gwt-apps-with-spring-security.html

于 2012-02-27T14:25:37.547 回答
0

您可以使用Putnami Web Toolkit (PWT)框架,这里有一个集成Spring Framework的教程和另一个用于Spring Security的教程。

于 2014-10-15T16:22:11.087 回答
-1

https://bitbucket.org/gardellajuanpablo/gwt-sample

于 2011-05-27T19:15:08.950 回答