2011-03-21 174 views
0

當我配置Spring Security 3登出我得到一個巨大的錯誤線 「」 HTTP-BIO-8080 「-exec-7」 的java.lang春季安全註銷異常

異常的用戶。的StackOverflowError 在com.dc.api.model.Users.getUsername(Users.java:200)

Users.java:200的映射到org.springframework.security.core.userdetails.UserDetails實現方法

public String getUsername() { 
    return this.getUsername(); 
} 

註銷鏈接:

<a href="${facesContext.externalContext.requestContextPath}/j_spring_security_logout.html"> 
log out</a> 

春季安全配置:

<logout invalidate-session="true" 
      logout-success-url="/" 
      logout-url="/j_spring_security_logout.html"/> 

web.xml

我已經配置了springSecurityFilterChain對任何前瞻性或要求*.html*.xhtml

回答

2

運行這裏的問題在於下面的方法,那些被spring安全調用的方法正在調用自己,並且處於無限狀態ite循環。它應該叫我的用戶模型對象的用戶ID(this.getUserId

public String getUsername() { 
    return this.getUsername(); 
}