angularjs和spring security重定向到会话超时登录

时间:2016-06-24 18:48:32

标签: angularjs spring session spring-security

我正在使用带有angularjs的spring security,当我的会话超时时,我返回一个带有JSON的端点,说会话无效并使用angularjs我尝试重定向到我的登录页面。重定向到登录页面时的问题是会话不再超时,因此会重定向到索引页面。

春季安全

<form-login
            login-page="/login"
            default-target-url="/index"
            username-parameter="username"
            password-parameter="password"
            authentication-failure-url="/login?loginFailed=true"/>
    <logout
            logout-success-url="/login"
            delete-cookies="JSESSIONID"/>
    <session-management
            invalid-session-url="/invalid">
        <concurrency-control
                max-sessions="1"
                expired-url="/login"
                error-if-maximum-exceeded="true"
        />
    </session-management>

宁静的服务

    @RequestMapping(method = RequestMethod.GET, value = "/invalid")
@ResponseBody
public String invalidateSession() {
    return "{\"invalidSession\":true}";
}

angularjs

if(result.data.hasOwnProperty("invalidSession") && result.data.invalidSession == true){
            $location.path("/login");

        }

我发现这也会导致spring安全角色出现问题。虽然spring应该使用配置重定向用户

<http auto-config="true" use-expressions="true" access-denied-page="/index">

它不会重定向用户,而是返回HTML页面。

所有这些都可能是angularjs路由引起的,并且我将所有页面都注入到单个html页面中吗?

0 个答案:

没有答案