2017-06-08 167 views
1

在多節點Spring LDAP安全性應用程序中,獲取以下異常。奇怪的是,在某些節​​點中,身份驗證正常發生,並且在某些節點出現此異常 -LdapUserDetailsImpl.hashCode中的LDAP Spring Security NullPointer

在多節點Spring LDAP安全性應用程序中,得到以下異常。奇怪的是,在某些節​​點上,驗證正確地發生在某些節點得到這個例外 -

堆棧跟蹤:在顯示java.lang.NullPointerException org.springframework.security.ldap.userdetails.LdapUserDetailsImpl.hashCode(LdapUserDetailsImpl.java:133)在org.springframework.security.authentication.AbstractAuthenticationToken.toString(AbstractAuthenticationToken.java)上的java.lang.Object.toString(Object.java:236)處的org.springframework.security.authentication.AbstractAuthenticationToken.hashCode(AbstractAuthenticationToken.java:180) :201)在java.lang.String.valueOf(String.java:2994)在java.lang.StringBuilder.append(StringBuilder.java:131)在org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.successfulAuthentication(AbstractAuthenticationProcessingFilter。 java:312)在org.springframework.security.web.authentication.AbstractAuth EntityProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:240)at org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:331)at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter。 org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:331)at com.company.cm.config.WebSecurityConfig $ 1.doFilterInternal(WebSecurityConfig.java:113)at org.springframework。 web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:331)at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal( CsrfFilter.java:124)在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:331)在org.spr在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain處的org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)處的ingframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)。的doFilter(FilterChainProxy.java:331)在org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:331)在org.springframework.security的org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)處的org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) .web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:331)at org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.ja VA:157)在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:331)在org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)在org.springframework.security .web.FilterChainProxy.doFilter(FilterChainProxy.java:177)at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262 )在org.springframework.session.web.http的org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)處的org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)。 SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:167)at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:80)at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterPr oxy.java:346)在org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)在org.apache.catalina .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)at org.apache。catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java: 141)在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)在org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)在org.apache.catalina.core.StandardEngineValve .org(org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502).invoke(StandardEngineValve.java:88) apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:684)at org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1533)at org.apache.tomcat.util.net。 NioEndpoint $ SocketProcessor.run(NioEndpoint.java:1489)at java.util.concurrent.ThreadPoolExecutor.runWorker(Th在java中的java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)org.apache.tomcat.util.threads.TaskThread中的$ readPoolExecutor.java:1142)$ WrappingRunnable.run(TaskThread.java:61) .lang.Thread.run(Thread.java:745)

原木 -

20:04:28.581 [HTTP-NIO-8080-EXEC-10] DEBUG org.springframework.security。 web.util.matcher.AntPathRequestMatcher - 檢查請求匹配:'/ login_process';反對'/ login_process' 20:04:28.581 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter - 請求處理驗證 20:04:28.581 [http-nio -8080-EXEC-10] DEBUG org.springframework.security.authentication.ProviderManager - 使用org.springframework.security.ldap.authentication.LdapAuthenticationProvider 20認證嘗試:04:28.581 [HTTP-NIO-8080-EXEC-10] DEBUG org.springframework.security.ldap.authentication.LdapAuthenticationProvider - 爲用戶處理認證請求: 20:04:28.581 [HTTP-NIO-8080-EXEC-10] DEBUG org.springframework.security.ldap.authentication.BindAuthenticator - 試圖bind as uid =,ou = People,dc = company,dc = com 20:04:28.581 [http-nio-8080-exec-10] DEBUG org.springframework.security.ldap.DefaultSpringSecurityContextS ource - 刪除用戶uid =,ou = People,dc = company,dc = com的pooling標誌DEBUG org.springframework.ldap.core.support.AbstractContextSource - 在服務器'ldap:// ip/dc = company,dc = com'獲得了Ldap上下文DEBUG org.springframework.security.ldap.authentication.BindAuthenticator - 正在檢索屬性... 20:04:28.860 [http-nio-8080-exec-10] DEBUG org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator - 獲取用戶uid =,ou = People,dc = company的權限,DC = COM 20:04:28.860 [HTTP-NIO-8080-EXEC-10] DEBUG org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator - 搜索用戶 '角色',DN =「UID =,OU =在搜索範圍'ou = Group' 20:04:28.860 [http-nio-8080-exec-1]中,使用過濾器(memberUid = {0})的人員dc = company,dc = com' 10] DEBUG org.springframework.security.ldap.SpringSecurityLdapTemplate - 使用過濾器:(memberUid = uid =,ou = People,dc = company,dc = com) 20:04:28.860 [http-nio-8080-exec-10 ] DEBUG org.springframework.ldap.core.LdapTemplate - 供給SearchControls的returnObjFlag未設置但ContextMapper使用 - 設定標誌爲真 20:04:28.865 [HTTP-NIO-8080-EXEC-10] DEBUG有機springframework.ldap.core.support.AbstractContextSource - 在服務器'ldap:// ip/dc = company,dc = com'獲得Ldap上下文DEBUG組織。 springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator 20:04:28.977 [http-nio-8080-exec-10] DEBUG org.springframework.security.ldap.userdetails.LdapUserDetailsMapper - 從上下文映射用戶詳細信息:DN:uid =, ou = People,dc = company,dc = com 20:04:28.977 [http-nio-8080-exec-10] DEBU G org.springframework.security.web.authentication.session.CompositeSessionAuthenticationStrategy - 委託給org.springframework.security.web.authentication.session。ChangeSessionIdAuthenticationStrategy @ 1d1ae249 20:04:28.977 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20:04:28.978 [http-nio-8080-exec- 10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 關閉Redis連接 20:04:28.979 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20:04:28.979 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - Closing Redis Connection 20:04:28.979 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20:04:28.979 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 關閉Redis Connection 20:04:28.980 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20:04:28.980 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 關閉Redis連接 20:04:28.980 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20: 04:28.980 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - Closing Redis Connection 20:04:28.981 [http-nio-8080-exec-10] DEBUG org。 springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20:04:28.981 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 關閉Redis連接 20:04: 28.981 [http- nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20:04:28.981 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core .RedisConnectionUtils - 關閉Redis連接 20:04:28.981 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20:04:28.981 [http-nio-8080 -exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 關閉Redis連接 20:04:28.981 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20:04:28.981 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 關閉Redis連接 20:04:28.983 [http-nio-8080-exec -10] DEBUG org.springframework.sessi on.web.http.SessionRepositoryFilter.SESSION_LOGGER - 沒有通過id找到會話:爲此HttpServletRequest緩存getSession(false)的結果。 20:04:28.983 [http-nio-8080-exec-10] DEBUG org.springframework.session.web.http.SessionRepositoryFilter.SESSION_LOGGER - 創建了一個新的會話。爲了幫助您解決創建會話的位置,我們提供了一個StackTrace(這不是錯誤)。您可以通過禁用org.springframework.session.web.http.SessionRepositoryFilter.SESSION_LOGGER 的DEBUG日誌記錄來防止此問題出現。java.lang.RuntimeException:僅用於調試目的(非錯誤) 位於org.springframework.session.web。 http.SessionRepositoryFilter $ SessionRepositoryRequestWrapper.getSession(SessionRepositoryFilter.java:368) at org.springframework.session.web.http.SessionRepositoryFilter $ SessionRepositoryRequestWrapper.getSession(SessionRepositoryFilter.java:390) at org.springframework.session.web.http。 SessionRepositoryFilter $ SessionRepositoryRequestWrapper.changeSessionId(SessionRepositoryFilter.java:291) at javax.servlet.http.HttpServletRequestWrapper.changeSessionId(HttpServletRequestWrapper.java:249) at javax.servlet.http.HttpServletRequestWrapper.changeSession ID(HttpServletRequestWrapper.java:249) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java :43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils。的java:216) 在org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:201) 在org.springframework.security.web.authentication.session.ChangeSessionIdAuthenticationStrategy.applySessionFixation(ChangeSessionIdAuthenticationStrategy.java:55) 在有機springframework.security.web.authentication.session.AbstractSessionFixationProtectionStrategy.onAuthentication(AbstractSessionFixationProtectionStrategy.java:87) 在org.springframework.security.web.authentication.session.ChangeSessionIdAuthenticationStrategy.onAuthentication(ChangeSessionIdAuthenticationStrategy.java:32) 在org.springframework。 security.web.authentication.session.CompositeSessionAuthenticationStrategy.onAuthentication(CompositeSessionAuthenticationStrategy.java:89) at org.springframework.security.web.authentication。 AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218) 在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:331) 在org.springframework.security.web.authentication.logout.LogoutFilter.doFilter( LogoutFilter.java:116) 在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:331) 在com.company.cm.config.WebSecurityConfig $ 1.doFilterInternal(WebSecurityConfig.java:113) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web .csrf.CsrfFilter.doFilter內部(CsrfFilter.java:124) 在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:331) 在org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64) 在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 在org.springframework.security。 web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:331) 在org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) 在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain。的doFilter(的FilterChainProxy .java:331) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107 ) 在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:331) 在org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:157) 在組織.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:331) 在org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214) 在org.springframework.security.web.FilterChainProxy .doFilter(FilterChainProxy.jav一:177) 在org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) 在org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262) 在org.apache。 catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) 在org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal( SessionRepositoryFilter.java:167) 在org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:80) 在org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) 在有機springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:207) 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) 在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94) 的組織。在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(AuthenticatorBase.java ErrorReportValve.java:79) at org.apache.catalina.valve s.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 502) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132) at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:684) at org.apache.tomcat。 util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1533) at org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.run(NioEndpoint.java:1489) at java.util.concurrent.ThreadPoolExecutor。 runer(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Threa dPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) 20:04 :28.984 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.authentication.session.CompositeSessionAuthenticationStrategy - 委託給o[email protected]38ef21bd 20:04:28.984 [ http-nio-8080-exec-10] DEBUG org.springframework.security.web.context.HttpSessionSecurityContextRepository - SecurityContext爲空或內容爲匿名 - 上下文不會存儲在HttpSession中。 20:04:28.984 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.context.SecurityContextPersistenceFilter - SecurityContextHolder現在被清除,因爲請求處理已完成 20:04:28.986 [http-nio-8080 -exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20:04:28.987 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 關閉Redis連接 20:04:28.987 [http-nio-8080-exec-10]調試org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20:04:28.987 [http-nio-8080-exec- 10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 關閉Redis連接 20:04:28.987 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisC連接 20:04:28.987 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - Closing Redis Connection 20:04:28.987 [http-nio-8080-exec-10 ] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20:04:28.988 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 關閉Redis連接 20:04:28.988 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20:04:28.989 [http-nio-8080-exec-10] DEBUG org .springframework.data.redis.core.RedisConnectionUtils - 關閉Redis連接 20:04:28.990 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20:04 :2 8.990 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - Closing Redis Connection 20:04:28.990 [http-nio-8080-exec-10] DEBUG org.springframework。 data.redis.core。RedisConnectionUtils - 打開RedisConnection 20:04:28.991 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 關閉Redis連接 20:04:28.992 [http-nio-8080- exec-10] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - 檢查請求匹配:'/WEB-INF/error/exceptionPage.jsp';反對'/ css/' 20:04:28.992 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - 檢查請求匹配:'/ WEB-INF /誤差/ exceptionPage.jsp'; '/ fonts/' 20:04:28.992 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - 檢查請求匹配:'/ WEB-INF /誤差/ exceptionPage.jsp'; '/ html/' 20:04:28.992 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - 檢查請求匹配:'/ WEB-INF /誤差/ exceptionPage.jsp'; '/ js/' 20:04:28.992 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - 檢查請求匹配:'/ WEB-INF /誤差/ exceptionPage.jsp';反對'/ thirdparty/' 20:04:28.992 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - /WEB-INF/error/exceptionPage.jsp在位置1的14在額外的過濾器鏈中;點擊過濾器:'ChannelProcessingFilter' 20:04:28.992 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - 請求'/WEB-INF/error/exceptionPage.jsp '匹配通用模式'/' 20:04:28.992 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.access.channel.ChannelProcessingFilter - Request:FilterInvocation:URL:/ WEB- INF /錯誤/ exceptionPage.jsp; ConfigAttributes:[ANY_CHANNEL] 20:04:28.992 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - /WEB-INF/error/exceptionPage.jsp位於第14位的第2位過濾鏈; 「WebAsyncManagerIntegrationFilter' 20:04:28.992 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - /WEB-INF/error/exceptionPage.jsp在位置3的14額外的過濾器鏈;發起問題發現話題登錄註冊firefox_http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&displaylang=zh-cn&displaylang=zh-cn&displaylang=zh-cn&displaylang=zh-cn&displaylang=zh-cn如何使用HttpSession創建一個空對象-nio-8080-exec-10] DEBUG org.springframework.security.web.context.HttpSessionSecurityContextRepository - 沒有SecurityContext可從HttpSession獲得:org.springframework.session.web.http.SessionRepo[email protected]1285eb30。一個新的將被創建。 20:04:28.992 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - /WEB-INF/error/exceptionPage.jsp位於附加過濾器鏈中的位置4;引導過濾器:'HeaderWriterFilter' 20:04:28.993 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - /WEB-INF/error/exceptionPage.jsp額外的過濾器鏈;在過濾器:'CsrfFilter' 20:04:28.993 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - /WEB-INF/error/exceptionPage.jsp在位置6額外的過濾器鏈;發射過濾器:'' 20:04:28.993 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - /WEB-INF/error/exceptionPage.jsp位於第7位過濾鏈;發起問題發現話題登錄註冊php_framework.security.web.util.matcher.AntPathRequestMatcher - 檢查請求匹配:'/ WEB-INF /錯誤/exceptionPage.jsp';反對'/ logout' 20:04:28.993 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - /WEB-INF/error/exceptionPage.jsp在14位的第8位過濾鏈;發射過濾器:'UsernamePasswordAuthenticationFilter' 20:04:28.993 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - 檢查請求匹配:'/ WEB-INF/error/exceptionPage。JSP';反對'/ login_process' 20:04:28.993 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - /WEB-INF/error/exceptionPage.jsp位於14的第9位過濾鏈; 「RequestCacheAwareFilter' DEBUG org.springframework.security.web.savedrequest.DefaultSavedRequest-pathInfo:都是null(屬性等於) 20:04:28.993 [http-nio-8080-exec-10] DEBUG org.springframework。 security.web.savedrequest.DefaultSavedRequest - queryString:兩者都是null(屬性等於) 20:04:28.993 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.savedrequest.DefaultSavedRequest - requestURI:arg1 = /cms/index.html; arg2 =/cms/WEB-INF/error/exceptionPage.jsp(屬性不等於) 20:04:28.993 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.savedrequest.HttpSessionRequestCache - saved請求不匹配 20:04:28.993 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - /WEB-INF/error/exceptionPage.jsp在14位的第10位過濾鏈; 「過濾器:'SecurityContextHolderAwareRequestFilter' 20:04:28.993 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - /WEB-INF/error/exceptionPage.jsp在位置11額外的過濾器鏈; 「過濾器:'AnonymousAuthenticationFilter' 20:04:28.993 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - 使用匿名標記填充SecurityContextHolder:'org.springframework.security.authentication .AnonymousAuthenticationToken @ 905571d8:主體:anonymousUser;證書:[PROTECTED];已驗證:true;詳細信息:org.sprin[email protected]0:RemoteIpAddress:127.0.0.1; SessionId:35b812b5-4e29-4f31-9c9f-be7601329ec3;授予權限:ROLE_ANONYMOUS' 20:04:28.993 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - /WEB-INF/error/exceptionPage.jsp在第12位過濾鏈;啓動Filter:'SessionManagementFilter' 20:04:28.993 [http-nio-8080-exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 打開RedisConnection 20:04:28.993 [http-nio-8080 -exec-10] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - 關閉Redis連接 20:04:28.994 [http-nio-8080-exec-10] DEBUG org.springframework.security.web.session.SessionManagementFilter - 請求的會話ID 59d0030f-e0ba-4991-a512-a5848660afc4無效。

配置 -

@Bean 
public DefaultSpringSecurityContextSource ldapContext() { 
    DefaultSpringSecurityContextSource context = new DefaultSpringSecurityContextSource(
      config.get("ldap.context", "ldap://x.x.x.x/dc=company,dc=com")); 
    context.afterPropertiesSet(); 
    return context; 
} 

/** 
* LDAP Bind Authenticator 
* 
* @return 
*/ 
@Bean 
public BindAuthenticator bindAuthenticator() { 
    BindAuthenticator authenticator = new BindAuthenticator(ldapContext()); 
    String[] dnPatterns = { config.get("ldap.dnPattern", "uid={0},ou=People") }; 
    authenticator.setUserDnPatterns(dnPatterns); 
    return authenticator; 
} 

/** 
* LDAP authorities populator 
* 
* @return 
*/ 
@Bean 
public DefaultLdapAuthoritiesPopulator ldapAuthoritiesPopulator() { 
    DefaultLdapAuthoritiesPopulator ldapAuthoritiesPopulator = new DefaultLdapAuthoritiesPopulator(ldapContext(), 
      config.get("ldap.group.search.base", "ou=Group")); 
    ldapAuthoritiesPopulator.setGroupRoleAttribute(config.get("ldap.group.role.attribute", "cn")); 
    ldapAuthoritiesPopulator.setGroupSearchFilter(config.get("ldap.group.search.filter", "(memberUid={0})")); 
    ldapAuthoritiesPopulator.setIgnorePartialResultException(true); 
    ldapAuthoritiesPopulator.setRolePrefix(config.get("ldap.user.role.prefix", "ROLE_")); 
    ldapAuthoritiesPopulator.setSearchSubtree(true); 
    ldapAuthoritiesPopulator.setConvertToUpperCase(true); 
    return ldapAuthoritiesPopulator; 
} 

@Bean 
public LdapAuthenticationProvider ldapAuthenticationProvider() { 
    LdapAuthenticationProvider authProvider = new LdapAuthenticationProvider(bindAuthenticator(), 
      ldapAuthoritiesPopulator()); 
    authProvider.setUseAuthenticationRequestCredentials(true); 
    authProvider.setHideUserNotFoundExceptions(false); 
    authProvider.setUserDetailsContextMapper(ldapContextMapper()); 
    return authProvider; 
} 

@Bean 
public LdapUserDetailsContextMapper ldapContextMapper() { 
    return new LdapUserDetailsContextMapper(); 
} 

@Configuration @EnableRedisHttpSession(redisNamespace = 「CMS」,maxInactiveIntervalInSeconds = 14400) @ImportResource( 「類路徑:應用程序的context.xml」) 公共類SessionRepositoryConfig延伸AbstractHttpSessionApplicationInitializer {

@Autowired 
Configuration config; 

@Bean 
public JedisConnectionFactory connectionFactory() { 
    List<String> clusterNodes = Arrays.asList(config.get("redis.cluster.session")); 
    return new JedisConnectionFactory(new RedisClusterConfiguration(clusterNodes)); 
} 

回答

0

做了很多挖掘。令人驚訝的是,登錄配置導致了這個問題。一旦正確配置了實例的logback xml,問題就消失了。

不確定如何logback與此有關。但上面的解決方案工作得很好。

謝謝

相關問題