日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

解決Spring Security 用戶帳號已被鎖定問題

瀏覽:231日期:2023-07-25 08:25:04
1、問題描述

主要就是org.springframework.security.authentication.LockedException: 用戶帳號已被鎖定這個異常,完整異常如下:

[2020-05-09 16:07:00 下午]:DEBUG org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider$DefaultPreAuthenticationChecks.check(AbstractUserDetailsAuthenticationProvider.java:353)User account is locked[2020-05-09 16:07:00 下午]:DEBUG org.springframework.web.servlet.FrameworkServlet.logResult(FrameworkServlet.java:1101)Failed to complete request: org.springframework.security.authentication.LockedException: 用戶帳號已被鎖定[2020-05-09 16:07:00 下午]:DEBUG org.springframework.security.web.access.ExceptionTranslationFilter.handleSpringSecurityException(ExceptionTranslationFilter.java:170)Authentication exception occurred; redirecting to authentication entry pointorg.springframework.security.authentication.LockedException: 用戶帳號已被鎖定at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider$DefaultPreAuthenticationChecks.check(AbstractUserDetailsAuthenticationProvider.java:355)at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:165)at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:175)at cn.edu.njust.mango.security.SecurityUtils.login(SecurityUtils.java:82)at cn.edu.njust.mango.controller.SysLoginController.login(SysLoginController.java:104)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at cn.edu.njust.mango.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:27)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:92)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92)at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1594)at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:748)

測試結果直接403

解決Spring Security 用戶帳號已被鎖定問題

2、問題分析

   明明用戶名和密碼正確,而且沒有設置狀態鎖定,怎么被鎖定了呢?這是由于我們在重寫UserDetails接口時,有個默認實現的方法public boolean isAccountNonLocked(),默認返回的是false,翻譯成人話就是:是否不上鎖,否,即上鎖。異常代碼如下:

package cn.edu.njust.mango.security;import com.fasterxml.jackson.annotation.JsonIgnore;import lombok.Data;import org.springframework.security.core.GrantedAuthority;import org.springframework.security.core.userdetails.UserDetails;import java.util.Collection;/** * @author Chen * @version 1.0 * @date 2020/5/8 7:42 * @description: */@Datapublic class JwtUserDetails implements UserDetails { private String username; private String password; private String salt; private Collection<? extends GrantedAuthority> authorities; public JwtUserDetails(String username, String password, String salt, Collection<? extends GrantedAuthority> authorities) { this.username = username; this.password = password; this.salt = salt; this.authorities = authorities; } @Override public boolean isAccountNonExpired() { return false; } @Override public boolean isAccountNonLocked() { return false; } @Override public boolean isCredentialsNonExpired() { return false; } @Override public boolean isEnabled() { return false; }}

解決Spring Security 用戶帳號已被鎖定問題

3、問題解決

知道原因就很好解決了。直接將返回值變成true就行了。修改后的代碼如下:

package cn.edu.njust.mango.security;import com.fasterxml.jackson.annotation.JsonIgnore;import lombok.Data;import org.springframework.security.core.GrantedAuthority;import org.springframework.security.core.userdetails.UserDetails;import java.util.Collection;/** * @author Chen * @version 1.0 * @date 2020/5/8 7:42 * @description: */@Datapublic class JwtUserDetails implements UserDetails { private String username; private String password; private String salt; private Collection<? extends GrantedAuthority> authorities; public JwtUserDetails(String username, String password, String salt, Collection<? extends GrantedAuthority> authorities) { this.username = username; this.password = password; this.salt = salt; this.authorities = authorities; }// 在實體類向前臺返回數據時用來忽略不想傳遞給前臺的屬性或接口。 @JsonIgnore @Override public boolean isAccountNonExpired() { return true; } @JsonIgnore @Override public boolean isAccountNonLocked() { return true; } @JsonIgnore @Override public boolean isCredentialsNonExpired() { return true; } @JsonIgnore @Override public boolean isEnabled() { return true; }}

解決Spring Security 用戶帳號已被鎖定問題

重啟服務器再次訪問。

解決Spring Security 用戶帳號已被鎖定問題

返回200,訪問成功!

4、總結

  書上的代碼直接運行絕大部分是對的,但是總有一些軟件的更新使得作者無能為力。之前的API是對的,但是之后就廢棄了或修改了是常有的事。所以我們需要跟蹤源代碼。這只是一個小小的問題,如果沒有前輩的無私奉獻,很難想象我們自己一天能學到多少內容。

到此這篇關于解決Spring Security 用戶帳號已被鎖定 問題的文章就介紹到這了,更多相關Spring Security 用戶帳號已被鎖定內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲毛片一区| 久久精品国产亚洲一区二区三区| 免费一区二区三区在线视频| 在线午夜精品| 日韩精品一二三| 日韩制服丝袜av| 国产精品视频3p| 女生影院久久| 精品三区视频| www在线观看黄色| 日韩免费一区| 国产主播一区| 亚洲欧美激情诱惑| 午夜a一级毛片亚洲欧洲| 日韩欧美久久| 亚洲啊v在线免费视频| 日韩精品中文字幕一区二区| 精品国产18久久久久久二百| 国产视频久久| 精品日产乱码久久久久久仙踪林| 国产一区二区三区网| 欧美91在线|欧美| 99视频一区| 蜜臀国产一区二区三区在线播放| 成人污污视频| 欧美国产不卡| 国产精品久久久久久久久久久久久久久| 在线看片福利| 日韩三级精品| 亚洲一区二区三区久久久| 日韩精品网站| 欧美羞羞视频| 美女性感视频久久| 国产精品任我爽爆在线播放 | 亚洲人亚洲人色久| 日韩avvvv在线播放| 91精品精品| 国产不卡人人| 麻豆精品久久| 一区免费视频| 国产欧美日韩在线观看视频| 麻豆久久一区| 欧美一级精品| 日韩高清电影一区| 日韩中文首页| 日韩国产一二三区| a日韩av网址| 日韩精品中文字幕吗一区二区| 国产盗摄——sm在线视频| 久久九九精品| 日本三级亚洲精品| 久久精品国产大片免费观看| 深夜福利一区| 五月激情久久| 日本一区二区三区中文字幕| 高清一区二区| 日本在线不卡视频| 久久婷婷亚洲| 国产精品视频一区二区三区综合 | 日本国产欧美| 色婷婷狠狠五月综合天色拍| 日本视频一区二区| 久久一区二区三区电影| 日韩激情一区二区| 精品在线99| 精品视频自拍| 深夜福利一区| av在线最新| 亚洲欧美综合| 99精品小视频| 亚洲激情不卡| 亚洲91视频| 中文字幕成人| a国产在线视频| 97精品国产| 亚洲视频国产精品| 欧美天堂一区二区| 自拍日韩欧美| 18国产精品| 亚洲综合精品四区| 97se综合| 欧美xxxx性| 日韩精品乱码av一区二区| 久久久影院免费| 国产一区二区三区不卡视频网站 | 国产精品极品在线观看| 日韩精品一二区| 国产99精品一区| av中文资源在线资源免费观看| 国产亚洲欧美日韩精品一区二区三区 | 中文字幕一区二区三区四区久久| 久久久久网站| 日韩高清不卡一区| 国产在线日韩精品| 日韩欧美网址| 欧美激情视频一区二区三区免费 | 日韩深夜视频| 日韩激情精品| 99国产精品久久久久久久| 免费在线观看精品| 在线日韩中文| 久久亚洲精精品中文字幕| 日韩欧美中文字幕一区二区三区| 9色国产精品| 桃色一区二区| 福利在线免费视频| www.九色在线| 国产欧洲在线| 色在线视频观看| 成人片免费看| 日韩欧美国产精品综合嫩v| 久久三级中文| 国产一区二区三区探花| 久久一区欧美| 精品欧美视频| 国产精品成久久久久| 国产精品极品国产中出| 欧美一区免费| 国产亚洲人成a在线v网站| 欧美久久久网站| 国产精品白浆| 成人在线视频区| 日韩免费在线| 婷婷激情图片久久| 久久国产精品99国产| 久久亚洲影院| 亚洲精品激情| 91麻豆精品激情在线观看最新| 日韩精品1区2区3区| 日韩和欧美一区二区三区| 日韩精品久久久久久久软件91| 日本不卡高清| 欧美私人啪啪vps| 国产精品22p| 日韩av有码| av资源亚洲| japanese国产精品| 免费人成在线不卡| 日本不卡在线视频| 国产精品极品国产中出| 国产一区二区视频在线看| 国产高清不卡| 亚洲国产一区二区三区在线播放| 国产一区二区高清| 亚洲免费观看高清完整版在线观| 欧美日韩亚洲一区二区三区在线| 久久丁香四色| 国产一区福利| 亚洲精品网址| 午夜亚洲福利| 你懂的国产精品永久在线| 麻豆视频在线看| 亚洲成av人片一区二区密柚| 99国产成+人+综合+亚洲欧美| 蜜桃免费网站一区二区三区| 欧美久久久网站| 亚洲国产成人二区| 免费精品国产的网站免费观看| 免费在线观看视频一区| 欧美精品影院| 日韩一区二区三区免费| 亚洲欧美日韩国产一区二区| 石原莉奈一区二区三区在线观看| 日韩精品a在线观看91| 鲁大师精品99久久久| 欧美中文字幕一区二区| 亚洲精品亚洲人成在线观看| 国产成人精品一区二区三区免费 | 中文字幕免费精品| 国产精品九九| 激情欧美日韩一区| 亚洲97av| 国内自拍视频一区二区三区| 超碰成人av| 久久亚洲美女| 麻豆中文一区二区| 日韩午夜高潮| 欧美激情网址| 亚洲在线网站| 麻豆成人91精品二区三区| 亚洲电影在线一区二区三区| 国产精品最新| 国产精品7m凸凹视频分类| 欧美伊人久久| 蜜臀91精品国产高清在线观看| 日本成人在线网站| 久久免费高清| 国产乱人伦精品一区| 日韩欧美一区二区三区在线观看 | 久久av在线| 成人在线免费观看网站| 视频在线观看一区二区三区| 国产精品久久久久久妇女| 伊人久久亚洲影院| 欧美激情在线精品一区二区三区| 亚洲黄页一区| 成人污污视频| 日韩在线黄色| 亚洲午夜精品久久久久久app| 久久的色偷偷|