Spring security - 身份验证后的 GWT 重定向

Posted

技术标签:

【中文标题】Spring security - 身份验证后的 GWT 重定向【英文标题】:Spring security - GWT redirect after Authentication 【发布时间】:2019-03-22 13:57:11 【问题描述】:

我有一个 GWT 应用程序,我正在尝试使用 Spring Security 登录。目前,成功登录后,我被重定向回登录页面。我猜这是因为我的 spring 配置和我缺乏 spring 安全知识。

在我的 spring-security.xml 中,我这样定义我的拦截:

 <security:http auto-config="true">

    <security:intercept-url pattern="/login" access="permitAll" />
    <security:intercept-url pattern="/**" access="isAuthenticated()" />

    </security:http>

我猜测问题出在 access=isAuthenticated() 上,但我不确定。我希望它重定向到 gwt 页面/应用程序,它将根据返回的角色处理视图。我用这种方法制作了一个非常简单的 gwt 应用程序,并且成功了。

我使用的是 Spring 生成的登录页面,而不是 JSP。

spring-security.xml

<?xml version="1.0" encoding="UTF-8"?>
<b:beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:b="http://www.springframework.org/schema/beans"
       xmlns:security="http://www.springframework.org/schema/security"
         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd">


    <!-- This is where we configure Spring-Security  -->
    <security:http auto-config="true">

    <security:intercept-url pattern="/login" access="permitAll" />
    <security:intercept-url pattern="/**" access="isAuthenticated()" />

    </security:http>

    <b:bean id="graplAuthentication" class="com.foo.rim.security.GraplAuthentication"/>

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

</b:beans>

【问题讨论】:

【参考方案1】:

事实证明这是两件事。

1) 我需要添加 user-expressions="true" 以便获取访问权限=

<security:http auto-config="true" use-expressions="true">

2) 我有一个自定义用户身份验证类,但忘记将 Authenticated 布尔值设置为 true。这两个都让它正常工作。

【讨论】:

以上是关于Spring security - 身份验证后的 GWT 重定向的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security + Thymeleaf - 第二次登录后的 TemplateInputException

Spring-Security:优化获取当前经过身份验证的用户...

Spring Security 中的基本身份验证(身份验证失败消息)

Spring MVC REST + Spring Security + 基本身份验证

不使用 Spring Security 身份验证?

在向 Twitter/Facebook 进行身份验证后向 Spring Security 进行身份验证