2012-01-02 66 views
5

可能重复:
create-session stateless usage无状态webapp中的Spring Security?

我只是在试验开始于春季安全,在3.1版本,并即时知道如何与无国籍Web应用程序来实现身份验证。

想到http-basic和digest,我尝试了它们,但是我不喜欢不关闭浏览器就不能像表单身份验证一样注销。

我目前有一个使用spring security的基于表单的身份验证的工作状态web应用程序(通过在会话中存储身份验证信息使其成为有状态的),并且我想知道我可以研究哪些策略来使spring安全在不使用http会话的情况下工作?

我意识到有一个<http create-session="stateless" ..>,但肯定有些事情需要做更多的事情,因为应用程序在我尝试访问受保护资源时不能正常工作,因此应用程序停止正常工作。

这里是我的配置:

<http use-expressions="true" create-session="stateless"> 
    <form-login login-page="/login" 
     login-processing-url="/static/j_spring_security_check" 
     authentication-failure-url="/login?login_error=t" /> 
    <logout logout-url="/static/j_spring_security_logout"/> 

    <intercept-url pattern="/person/test/**" 
     access="isAuthenticated() and principal.username=='albertkam'" 
    /> 
    <intercept-url pattern="/person/**" access="hasRole('ROLE_NORMAL')"/> 

    <remember-me 
     key="spitterKey" 
     token-validity-seconds="2419200"/> 
</http> 

随着create-session="stateless"

  1. 访问http://myhost:8080/mycontext/person/blah
  2. 转到登录页面。
  3. 返回到主页网址http://myhost:8080/mycontext登录后(我希望它返回到受保护的资源)

没有create-session="stateless",默认为ifRequired(状态):

  1. 访问http://myhost:8080/mycontext/person/blah
  2. 去登录页面
  3. 返回受保护的网址http://myhost:8080/mycontext/person/嗒嗒登录后(这是正确的行为,但状态)
+1

它是这个[专题]有了答案[1] [1]:http://stackoverflow.com/questions/8800855/create-session-stateless-usage – bertie 2012-01-12 02:01:10

回答

0

您可以使用always-use-default-target="false"<form-login>防止会成功登录后,默认的页面。

+0

你好,我想你的建议,但它仍然与无国籍的主页一样。我认为这不是问题,因为没有无状态属性值,流程正常工作。 – bertie 2012-01-02 14:23:31

+0

哦,很抱歉知道,我认为always-use-default-target =“false”也应该在无状态的情况下工作。 – kunal 2012-01-04 07:45:18

相关问题