GWT和Spring安全集成

GWT和Spring安全集成,spring,gwt,Spring,Gwt,在currect GWT应用程序登录中,我使用后端XMPP服务器对来自服务器的用户名-密码组合进行身份验证,响应是通过RPC登录机制发回的连接ID 但是,我创建了一个新的“用户”数据库(与XMPP服务器共享),其中存储了用户信息,并将其用作Spring Security验证用户名和密码的一部分 任何人都可以分享一些GWT+Spring安全性的代码片段,登录/注销代码 我正在使用本文中的代码: 基本上,您实现了Spring接口 org.springframework.security.authe

在currect GWT应用程序登录中,我使用后端XMPP服务器对来自服务器的用户名-密码组合进行身份验证,响应是通过RPC登录机制发回的连接ID

但是,我创建了一个新的“用户”数据库(与XMPP服务器共享),其中存储了用户信息,并将其用作Spring Security验证用户名和密码的一部分


任何人都可以分享一些GWT+Spring安全性的代码片段,登录/注销代码

我正在使用本文中的代码:

基本上,您实现了Spring接口

org.springframework.security.authentication.AuthenticationProvider
具有身份验证(身份验证)方法的。您可以通过以下方式获得此方法中用户输入的用户名和密码:

String username = (String) authentication.getPrincipal();
String password = (String) authentication.getCredentials();
// now try to get the user from your DB
User user = db.getUser(username, password);
在Spring上下文中,配置Spring security的过滤器(请参阅链接)并声明AuthenticationProvider:

<bean id="authProvider" class="com.example.security.MyAuthenticationProvider" />

<security:authentication-manager alias="authenticationManager">
    <security:authentication-provider ref="authProvider" />
</security:authentication-manager>

我的配置如下。我使用GWT应用程序

在我的jsp中

<form name="login" action="<c:url value="j_spring_security_check"/>" method="POST">

在my web.xml中

<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>

springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
springSecurityFilterChain
/*
在my welcome.jsp中

<sec:authorize ifAnyGranted="<%=gRoles%>">      
  <meta http-equiv="REFRESH" content="0;  url=demoApp/demoApp.jsp">
</sec:authorize>

spring-security.xml

    <http auto-config="false" access-denied-page="/login.jsp?error=Access%20Denied">
    <intercept-url pattern="/login.jsp*" filters="none" />
    <intercept-url pattern="/demoApp/**" access="${app.roles}" />

    <form-login login-page="/login.jsp"
                default-target-url="/welcome.jsp" 
                always-use-default-target="true" 
                authentication-failure-url="/login.jsp?error=true" />
    <logout logout-success-url="/login.jsp"/>   
    <anonymous/>

    <http auto-config="false" access-denied-page="/login.jsp?error=Access%20Denied">
    <intercept-url pattern="/login.jsp*" filters="none" />
    <intercept-url pattern="/demoApp/**" access="${app.roles}" />

    <form-login login-page="/login.jsp"
                default-target-url="/welcome.jsp" 
                always-use-default-target="true" 
                authentication-failure-url="/login.jsp?error=true" />
    <logout logout-success-url="/login.jsp"/>   
    <anonymous/>