(window.webpackJsonp=window.webpackJsonp||[]).push([[595],{1026:function(e,t,s){"use strict";s.r(t);var r=s(56),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"userdetailsservice"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#userdetailsservice"}},[e._v("#")]),e._v(" UserDetailsService")]),e._v(" "),s("p",[e._v("["),s("code",[e._v("UserDetailsService")]),e._v("](https://DOCS. Spring.io/ Spring-security/site/DOCS/5.6.2/api/org/springframework/security/core/userdetails/userdetails.html)是["),s("code",[e._v("DaoAuthenticationProvider")]),e._v("](DAO-Authentication-provider.html# Servlet-Authentication-DAOAuthenticationationationProvider)用于检索用户名、密码和其他属性,以进行用户名和密码的身份验证。 Spring 安全性提供"),s("RouterLink",{attrs:{to:"/spring-security/in-memory.html#servlet-authentication-inmemory"}},[e._v("in-memory")]),e._v("和"),s("RouterLink",{attrs:{to:"/spring-security/jdbc.html#servlet-authentication-jdbc"}},[e._v("JDBC")]),s("code",[e._v("UserDetailsService")]),e._v("的实现。")],1),e._v(" "),s("p",[e._v("可以通过将自定义"),s("code",[e._v("UserDetailsService")]),e._v("公开为 Bean 来定义自定义身份验证。例如,下面将在假设"),s("code",[e._v("CustomUserDetailsService")]),e._v("实现"),s("code",[e._v("UserDetailsService")]),e._v("的情况下定制身份验证:")]),e._v(" "),s("table",[s("thead",[s("tr",[s("th"),e._v(" "),s("th",[e._v("这仅在"),s("code",[e._v("AuthenticationManagerBuilder")]),e._v("尚未填充且没有定义"),s("code",[e._v("AuthenticationProviderBean")]),e._v("时使用。")])])]),e._v(" "),s("tbody")]),e._v(" "),s("p",[e._v("例 1。自定义用户详细服务 Bean")]),e._v(" "),s("p",[e._v("爪哇")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("@Bean\nCustomUserDetailsService customUserDetailsService() {\n\treturn new CustomUserDetailsService();\n}\n")])])]),s("p",[e._v("XML")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v('\n')])])]),s("p",[e._v("Kotlin")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("@Bean\nfun customUserDetailsService() = CustomUserDetailsService()\n")])])]),s("p",[s("RouterLink",{attrs:{to:"/spring-security/user-details.html"}},[e._v("用户详细信息")]),s("RouterLink",{attrs:{to:"/spring-security/password-encoder.html"}},[e._v("PasswordEncoder ")])],1)])}),[],!1,null,null,null);t.default=a.exports}}]);