{"id":4307,"date":"2024-03-21T22:26:35","date_gmt":"2024-03-21T14:26:35","guid":{"rendered":"https:\/\/xinchewhd.com.cn\/index.php\/spring-boot\/spring-boot%e6%95%b4%e5%90%88spring-security\/"},"modified":"2024-03-21T22:26:35","modified_gmt":"2024-03-21T14:26:35","slug":"spring-boot%e6%95%b4%e5%90%88spring-security","status":"publish","type":"post","link":"https:\/\/xinchewhd.com.cn\/index.php\/spring-boot\/spring-boot%e6%95%b4%e5%90%88spring-security\/","title":{"rendered":"Spring Boot\u6574\u5408Spring Security"},"content":{"rendered":"<div class='wxsyncmain'>\n<h1 cid=\"n0\" mdtype=\"heading\" style=\"margin-top: 1rem;margin-bottom: 1rem;padding-bottom: 0.3em;outline: 0px;font-weight: bold;letter-spacing: 0.544px;white-space: pre-wrap;color: rgb(34, 34, 34);background-color: rgb(255, 255, 255);line-height: 1.2;cursor: text;border-bottom: 1px solid rgb(238, 238, 238);width: inherit;font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;text-align: start;visibility: visible;\"><span style=\"outline: 0px;color: rgb(178, 178, 178);visibility: visible;\">\u5982\u679c\u6587\u7ae0\u4e2d\u4ee3\u7801\u4e0d\u4fbf\u4e8e\u9605\u8bfb\uff0c\u8bf7\u4f7f\u7528\u7535\u8111\u67e5\u770b\u6216\u70b9\u51fb\u9605\u8bfb\u539f\u6587\u3002<\/span><\/h1>\n<p><span md-inline=\"plain\" style=\"color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;orphans: 4;text-align: start;white-space-collapse: preserve;\">Spring Security\u662f\u9488\u5bf9Spring\u9879\u76ee\u7684\u5b89\u5168\u6846\u67b6\uff0c\u4e5f\u662fSpring Boot\u5e95\u5c42\u5b89\u5168\u6a21\u5757\u7684\u9ed8\u8ba4\u6280\u672f\u9009\u578b\uff0c\u4ec5\u9700\u5f15\u5165<\/span><span md-inline=\"strong\" style=\"color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;orphans: 4;text-align: start;white-space-collapse: preserve;\"><strong>spring-boot-starter-security<\/strong><\/span><span md-inline=\"plain\" style=\"color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;orphans: 4;text-align: start;white-space-collapse: preserve;\">\u6a21\u5757\uff0c\u8fdb\u884c\u5c11\u91cf\u914d\u7f6e\uff0c\u5373\u53ef\u5b9e\u73b0\u5f3a\u5927\u7684Web\u5b89\u5168\u63a7\u5236\u3002<\/span><\/p>\n<p cid=\"n2\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">Spring Security\u7684\u4e24\u4e2a\u4e3b\u8981\u76ee\u6807\u662f<\/span><span md-inline=\"strong\"><strong>\u8ba4\u8bc1<\/strong><\/span><span md-inline=\"plain\">\u548c<\/span><span md-inline=\"strong\"><strong>\u6388\u6743<\/strong><\/span><span md-inline=\"plain\">\uff08\u8bbf\u95ee\u63a7\u5236\uff09<\/span><\/p>\n<p cid=\"n3\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u5b98\u65b9\u6587\u6863\uff1a<\/span><span md-inline=\"link\"><span md-inline=\"plain\">https:\/\/docs.spring.io\/spring-security\/site\/docs\/5.2.0.RELEASE\/reference\/htmlsingle\/<\/span><\/span><\/p>\n<p cid=\"n4\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\">\n<h1 cid=\"n5\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 2.25em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.2;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">0 \u5f00\u53d1\u73af\u5883<\/span><\/h1>\n<ul class=\"list-paddingleft-1\" cid=\"n6\" mdtype=\"list\" data-mark=\"*\" style=\"margin-top: 0.8em;margin-bottom: 0.8em;padding-left: 30px;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;text-wrap: wrap;\">\n<li>\n<p cid=\"n8\" mdtype=\"paragraph\" style=\"orphans: 4;margin-bottom: 0.5rem;white-space-collapse: preserve;\"><span md-inline=\"plain\">JDK\uff1a1.8<\/span><\/p>\n<\/li>\n<li>\n<p cid=\"n10\" mdtype=\"paragraph\" style=\"orphans: 4;margin-bottom: 0.5rem;white-space-collapse: preserve;\"><span md-inline=\"plain\">Spring Boot\uff1a2.7.18<\/span><\/p>\n<\/li>\n<\/ul>\n<blockquote cid=\"n11\" mdtype=\"blockquote\" style=\"margin-top: 0.8em;margin-bottom: 0.8em;border-left-width: 4px;border-left-color: rgb(223, 226, 229);padding-top: 0px;padding-right: 15px;padding-left: 15px;color: rgb(119, 119, 119);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;text-wrap: wrap;\">\n<p cid=\"n12\" mdtype=\"paragraph\" style=\"orphans: 4;white-space-collapse: preserve;\"><span md-inline=\"plain\">Spring Boot \u7248\u672c\u5347\u7ea7\u4e3a2.7.18\uff0c\u4e13\u680f\u4e2d\u5176\u4ed6Spring Boot\u76f8\u5173\u73af\u5883\u540c\u6b65\u5347\u7ea7<\/span><\/p>\n<\/blockquote>\n<h1 cid=\"n13\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 2.25em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.2;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">1 \u5f15\u5165\u4f9d\u8d56<\/span><\/h1>\n<pre spellcheck=\"false\" lang=\"xml\" cid=\"n14\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">dependency<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">groupId<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>org.springframework.boot<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">groupId<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">artifactId<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>spring-boot-starter-security<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">artifactId<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">dependency<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><\/pre>\n<h1 cid=\"n15\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 2.25em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.2;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">2 \u6d4b\u8bd5<\/span><\/h1>\n<h2 cid=\"n16\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">2.1 \u65b0\u5efaController<\/span><\/h2>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n17\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@RestController<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@RequestMapping<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"user\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(119, 0, 136);\">class<\/span> <span style=\"color: rgb(0, 0, 255);\">UserController<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@GetMapping<\/span>(<span style=\"color: rgb(0, 0, 0);\">value<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(170, 17, 17);\">\"query\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(0, 136, 85);\">String<\/span> <span style=\"color: rgb(0, 0, 0);\">query<\/span>() {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(119, 0, 136);\">return<\/span> <span style=\"color: rgb(170, 17, 17);\">\"\u7528\u6237\u67e5\u8be2\u6210\u529f\"<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">}<\/span><\/pre>\n<h2 cid=\"n18\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">2.2 \u6d4b\u8bd5<\/span><\/h2>\n<p cid=\"n19\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u542f\u52a8\u670d\u52a1\uff0c\u6d4f\u89c8\u5668\u8bbf\u95ee 127.0.0.1:8090\/user\/query\uff0c\u9875\u9762\u81ea\u52a8\u8df3\u8f6c\u5230\u6388\u6743\u767b\u5f55\u9875<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" data-galleryid=\"\" data-imgfileid=\"100000530\" data-ratio=\"0.6331096196868009\" data-s=\"300,640\"  data-type=\"png\" data-w=\"447\" style=\"\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152529353.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\"  \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" data-galleryid=\"\" data-imgfileid=\"100000530\" data-ratio=\"0.6331096196868009\" data-s=\"300,640\"  data-type=\"png\" data-w=\"447\" style=\"\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152529353.png\"  \/><\/noscript><\/p>\n<p cid=\"n21\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u9ed8\u8ba4\u7528\u6237\u540d\u4e3auser\uff0c\u63a7\u5236\u53f0\u4e0a\u4f1a\u6253\u5370\u9ed8\u8ba4\u5bc6\u7801\uff0c\u9ed8\u8ba4\u5bc6\u7801\u6bcf\u6b21\u542f\u52a8\u670d\u52a1\u90fd\u4f1a\u5237\u65b0<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" data-galleryid=\"\" data-imgfileid=\"100000531\" data-ratio=\"0.2604698672114402\" data-s=\"300,640\"  data-type=\"png\" data-w=\"979\" style=\"\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152531549.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\"  \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" data-galleryid=\"\" data-imgfileid=\"100000531\" data-ratio=\"0.2604698672114402\" data-s=\"300,640\"  data-type=\"png\" data-w=\"979\" style=\"\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152531549.png\"  \/><\/noscript><\/p>\n<p cid=\"n23\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u767b\u5f55\u6210\u529f\u540e\uff0c\u5c31\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u4e86<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" data-galleryid=\"\" data-imgfileid=\"100000532\" data-ratio=\"0.5389473684210526\" data-s=\"300,640\"  data-type=\"png\" data-w=\"475\" style=\"\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152534382.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\"  \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" data-galleryid=\"\" data-imgfileid=\"100000532\" data-ratio=\"0.5389473684210526\" data-s=\"300,640\"  data-type=\"png\" data-w=\"475\" style=\"\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152534382.png\"  \/><\/noscript><\/p>\n<h1 cid=\"n25\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 2.25em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.2;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">3 \u81ea\u5b9a\u4e49\u5bc6\u7801<\/span><\/h1>\n<p cid=\"n26\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u8be5\u90e8\u5206\u4f1a\u4f7f\u7528\u5230Spring Security\u7684\u51e0\u4e2a\u5173\u952e\u7c7b\uff0c\u5982\u4e0b\uff1a<\/span><\/p>\n<ul class=\"list-paddingleft-1\" cid=\"n27\" mdtype=\"list\" data-mark=\"-\" style=\"margin-top: 0.8em;margin-bottom: 0.8em;padding-left: 30px;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;text-wrap: wrap;\">\n<li>\n<p cid=\"n29\" mdtype=\"paragraph\" style=\"orphans: 4;margin-bottom: 0.5rem;white-space-collapse: preserve;\"><span md-inline=\"plain\">WebSecurityConfigurerAdapter \u81ea\u5b9a\u4e49Security\u7b56\u7565<\/span><\/p>\n<\/li>\n<li>\n<p cid=\"n31\" mdtype=\"paragraph\" style=\"orphans: 4;margin-bottom: 0.5rem;white-space-collapse: preserve;\"><span md-inline=\"plain\">AuthenticationManagerBuilder \u81ea\u5b9a\u4e49\u8ba4\u8bc1\u7b56\u7565<\/span><\/p>\n<\/li>\n<li>\n<p cid=\"n33\" mdtype=\"paragraph\" style=\"orphans: 4;margin-bottom: 0.5rem;white-space-collapse: preserve;\"><span md-inline=\"plain\">@EnableWebSecurity \u5f00\u542fWebSecurity\u6a21\u5f0f<\/span><\/p>\n<\/li>\n<\/ul>\n<h2 cid=\"n34\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">3.1 \u901a\u8fc7application.yml \u914d\u7f6e<\/span><\/h2>\n<pre spellcheck=\"false\" lang=\"yml\" cid=\"n35\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(34, 17, 153);\">spring<\/span><span style=\"color: rgb(85, 85, 85);\">:<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(34, 17, 153);\">  security<\/span><span style=\"color: rgb(85, 85, 85);\">:<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(34, 17, 153);\">   user<\/span><span style=\"color: rgb(85, 85, 85);\">:<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(34, 17, 153);\">    name<\/span><span style=\"color: rgb(85, 85, 85);\">: <\/span>admin<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(34, 17, 153);\">    password<\/span><span style=\"color: rgb(85, 85, 85);\">: <\/span><span style=\"color: rgb(17, 102, 68);\">123456<\/span><\/span><\/pre>\n<h2 cid=\"n36\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">3.2 \u81ea\u5b9a\u4e49\u914d\u7f6e\u7c7b\u914d\u7f6e<\/span><\/h2>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n37\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@EnableWebSecurity<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(119, 0, 136);\">class<\/span> <span style=\"color: rgb(0, 0, 255);\">SecurityConfig<\/span> <span style=\"color: rgb(119, 0, 136);\">extends<\/span> <span style=\"color: rgb(0, 0, 0);\">WebSecurityConfigurerAdapter<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Override<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">protected<\/span> <span style=\"color: rgb(0, 136, 85);\">void<\/span> <span style=\"color: rgb(0, 0, 0);\">configure<\/span>(<span style=\"color: rgb(0, 0, 0);\">AuthenticationManagerBuilder<\/span> <span style=\"color: rgb(0, 0, 0);\">auth<\/span>) <span style=\"color: rgb(119, 0, 136);\">throws<\/span> <span style=\"color: rgb(0, 0, 0);\">Exception<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5bc6\u7801\u52a0\u5bc6<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">BCryptPasswordEncoder<\/span> <span style=\"color: rgb(0, 0, 0);\">passwordEncoder<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(119, 0, 136);\">new<\/span> <span style=\"color: rgb(0, 0, 0);\">BCryptPasswordEncoder<\/span>();<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u914d\u7f6e\u7528\u6237\u540d\u3001\u5bc6\u7801\uff0c\u8be5\u914d\u7f6e\u65b9\u5f0f\u4e0b\uff0c\u7528\u6237\u540d\u548c\u5bc6\u7801\u4fdd\u5b58\u5728\u5185\u5b58\u4e2d<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">auth<\/span>.<span style=\"color: rgb(0, 0, 0);\">inMemoryAuthentication<\/span>()<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/\u5bc6\u7801\u52a0\u5bc6\u65b9\u5f0f<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">passwordEncoder<\/span>(<span style=\"color: rgb(119, 0, 136);\">new<\/span> <span style=\"color: rgb(0, 0, 0);\">BCryptPasswordEncoder<\/span>())<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">withUser<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"admin\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">password<\/span>(<span style=\"color: rgb(0, 0, 0);\">passwordEncoder<\/span>.<span style=\"color: rgb(0, 0, 0);\">encode<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"123456\"<\/span>)).<span style=\"color: rgb(0, 0, 0);\">roles<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"admin\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">}<\/span><\/pre>\n<h2 cid=\"n38\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">3.3 \u81ea\u5b9a\u4e49\u5b9e\u73b0\u7c7b\u914d\u7f6e<\/span><\/h2>\n<h3 cid=\"n39\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.43;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">3.3.1 \u7f16\u5199UserDetailsService\u5b9e\u73b0\u7c7b<\/span><\/h3>\n<p cid=\"n40\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u8fd9\u91cc\u6211\u4eec\u5c31\u76f4\u63a5\u56fa\u5b9a\u5199\u6b7b\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u5b9e\u9645\u751f\u4ea7\u4e2d\u53ef\u4ee5\u4ece\u6570\u636e\u5e93\u4e2d\u83b7\u53d6<\/span><\/p>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n41\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@Service<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(119, 0, 136);\">class<\/span> <span style=\"color: rgb(0, 0, 255);\">UserDetailsServiceImpl<\/span> <span style=\"color: rgb(119, 0, 136);\">implements<\/span> <span style=\"color: rgb(0, 0, 0);\">UserDetailsService<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Override<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(0, 0, 0);\">UserDetails<\/span> <span style=\"color: rgb(0, 0, 0);\">loadUserByUsername<\/span>(<span style=\"color: rgb(0, 136, 85);\">String<\/span> <span style=\"color: rgb(0, 0, 0);\">s<\/span>) <span style=\"color: rgb(119, 0, 136);\">throws<\/span> <span style=\"color: rgb(0, 0, 0);\">UsernameNotFoundException<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u8bbe\u7f6e\u89d2\u8272\uff0c\u89d2\u8272\u7684\u6982\u5ff5\u540e\u7eed\u4ecb\u7ecd<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">List<\/span><span style=\"color: rgb(152, 26, 26);\">&lt;<\/span><span style=\"color: rgb(0, 0, 0);\">GrantedAuthority<\/span><span style=\"color: rgb(152, 26, 26);\">&gt;<\/span> <span style=\"color: rgb(0, 0, 0);\">roles<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(0, 0, 0);\">AuthorityUtils<\/span>.<span style=\"color: rgb(0, 0, 0);\">commaSeparatedStringToAuthorityList<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"admin\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(119, 0, 136);\">return<\/span> <span style=\"color: rgb(119, 0, 136);\">new<\/span> <span style=\"color: rgb(0, 0, 0);\">User<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"admin\"<\/span>, <span style=\"color: rgb(119, 0, 136);\">new<\/span> <span style=\"color: rgb(0, 0, 0);\">BCryptPasswordEncoder<\/span>().<span style=\"color: rgb(0, 0, 0);\">encode<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"123456\"<\/span>), <span style=\"color: rgb(0, 0, 0);\">roles<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">}<\/span><\/pre>\n<h3 cid=\"n42\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.43;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">3.3.2 \u7f16\u5199\u914d\u7f6e\u7c7b<\/span><\/h3>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n43\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@EnableWebSecurity<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(119, 0, 136);\">class<\/span> <span style=\"color: rgb(0, 0, 255);\">SecurityConfig<\/span> <span style=\"color: rgb(119, 0, 136);\">extends<\/span> <span style=\"color: rgb(0, 0, 0);\">WebSecurityConfigurerAdapter<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Autowired<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">private<\/span> <span style=\"color: rgb(0, 0, 0);\">UserDetailsServiceImpl<\/span> <span style=\"color: rgb(0, 0, 0);\">userDetailsService<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Override<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">protected<\/span> <span style=\"color: rgb(0, 136, 85);\">void<\/span> <span style=\"color: rgb(0, 0, 0);\">configure<\/span>(<span style=\"color: rgb(0, 0, 0);\">AuthenticationManagerBuilder<\/span> <span style=\"color: rgb(0, 0, 0);\">auth<\/span>) <span style=\"color: rgb(119, 0, 136);\">throws<\/span> <span style=\"color: rgb(0, 0, 0);\">Exception<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u4f7f\u7528UserDetailsServiceImpl \u67e5\u8be2\u7528\u6237\u540d\u3001\u5bc6\u7801<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">auth<\/span>.<span style=\"color: rgb(0, 0, 0);\">userDetailsService<\/span>(<span style=\"color: rgb(0, 0, 0);\">userDetailsService<\/span>).<span style=\"color: rgb(0, 0, 0);\">passwordEncoder<\/span>(<span style=\"color: rgb(119, 0, 136);\">new<\/span> <span style=\"color: rgb(0, 0, 0);\">BCryptPasswordEncoder<\/span>());<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">}<\/span><\/pre>\n<p cid=\"n44\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u5206\u522b\u6d4b\u8bd5\uff0c\u90fd\u901a\u8fc7<\/span><\/p>\n<h1 cid=\"n45\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 2.25em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.2;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">4 \u7528\u6237\u8ba4\u8bc1\u548c\u6388\u6743\/\u57fa\u4e8e\u89d2\u8272\u548c\u6743\u9650\u7684\u8bbf\u95ee\u63a7\u5236<\/span><\/h1>\n<p cid=\"n46\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u5b9e\u9645\u751f\u4ea7\u4e2d\uff0c\u9700\u8981\u6839\u636e\u7528\u6237\u89d2\u8272\u7684\u6743\u9650\u6765\u63a7\u5236\u53ef\u8bbf\u95ee\u7684\u9875\u9762\u3001\u53ef\u6267\u884c\u7684\u64cd\u4f5c\u7b49<\/span><\/p>\n<h2 cid=\"n47\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">4.1 \u65b0\u5efa4\u4e2a\u9875\u9762<\/span><\/h2>\n<p cid=\"n48\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"strong\"><strong>level-1.html<\/strong><\/span><\/p>\n<pre spellcheck=\"false\" lang=\"html\" cid=\"n49\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">&lt;!DOCTYPE html&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">html<\/span> <span style=\"color: rgb(0, 0, 204);\">lang<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"en\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">head<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">meta<\/span> <span style=\"color: rgb(0, 0, 204);\">charset<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"UTF-8\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>Title<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">head<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">body<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">h1<\/span> <span style=\"color: rgb(0, 0, 204);\">style<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"color: red\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>\u8fd9\u662f\u7528\u6237\u7b49\u7ea71\u53ef\u8bbf\u95ee\u7684\u9875\u9762<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">h1<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">body<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">html<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><\/pre>\n<p cid=\"n50\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"strong\"><strong>level-2.html<\/strong><\/span><\/p>\n<pre spellcheck=\"false\" lang=\"html\" cid=\"n51\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">&lt;!DOCTYPE html&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">html<\/span> <span style=\"color: rgb(0, 0, 204);\">lang<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"en\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">head<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">meta<\/span> <span style=\"color: rgb(0, 0, 204);\">charset<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"UTF-8\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>Title<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">head<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">body<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">h1<\/span> <span style=\"color: rgb(0, 0, 204);\">style<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"color: green\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>\u8fd9\u662f\u7528\u6237\u7b49\u7ea72\u53ef\u8bbf\u95ee\u7684\u9875\u9762<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">h1<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">body<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">html<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><\/pre>\n<p cid=\"n52\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"strong\"><strong>level-3.html<\/strong><\/span><\/p>\n<pre spellcheck=\"false\" lang=\"html\" cid=\"n53\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">&lt;!DOCTYPE html&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">html<\/span> <span style=\"color: rgb(0, 0, 204);\">lang<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"en\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">head<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">meta<\/span> <span style=\"color: rgb(0, 0, 204);\">charset<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"UTF-8\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>Title<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">head<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">body<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">h1<\/span> <span style=\"color: rgb(0, 0, 204);\">style<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"color: blue\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>\u8fd9\u662f\u7528\u6237\u7b49\u7ea73\u53ef\u8bbf\u95ee\u7684\u9875\u9762<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">h1<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">body<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">html<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><\/pre>\n<p cid=\"n54\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"strong\"><strong>index.html<\/strong><\/span><\/p>\n<pre spellcheck=\"false\" lang=\"html\" cid=\"n55\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">&lt;!DOCTYPE html&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">html<\/span> <span style=\"color: rgb(0, 0, 204);\">lang<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"en\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">head<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">meta<\/span> <span style=\"color: rgb(0, 0, 204);\">charset<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"UTF-8\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>Title<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">head<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">body<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">a<\/span> <span style=\"color: rgb(0, 0, 204);\">href<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"level-1.html\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>\u7b49\u7ea71<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">a<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">br<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">br<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">a<\/span> <span style=\"color: rgb(0, 0, 204);\">href<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"level-2.html\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>\u7b49\u7ea72<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">a<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">br<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">br<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">a<\/span> <span style=\"color: rgb(0, 0, 204);\">href<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"level-3.html\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>\u7b49\u7ea73<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">a<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">body<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">html<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><\/pre>\n<h2 cid=\"n56\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">4.2 \u4fee\u6539\u914d\u7f6e\u7c7b<\/span><\/h2>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n57\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@EnableWebSecurity<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(119, 0, 136);\">class<\/span> <span style=\"color: rgb(0, 0, 255);\">SecurityConfig<\/span> <span style=\"color: rgb(119, 0, 136);\">extends<\/span> <span style=\"color: rgb(0, 0, 0);\">WebSecurityConfigurerAdapter<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Override<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">protected<\/span> <span style=\"color: rgb(0, 136, 85);\">void<\/span> <span style=\"color: rgb(0, 0, 0);\">configure<\/span>(<span style=\"color: rgb(0, 0, 0);\">HttpSecurity<\/span> <span style=\"color: rgb(0, 0, 0);\">http<\/span>) <span style=\"color: rgb(119, 0, 136);\">throws<\/span> <span style=\"color: rgb(0, 0, 0);\">Exception<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u8bf7\u6c42\u6388\u6743\u7684\u89c4\u5219<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5f00\u542f\u8ba4\u8bc1<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">authorizeRequests<\/span>()<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/\u9996\u9875\u6240\u6709\u4eba\u53ef\u8bbf\u95ee<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">permitAll<\/span>()<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/\u529f\u80fd\u9875\u5bf9\u5e94\u89d2\u8272\u6216\u6743\u9650\u624d\u80fd\u8bbf\u95ee<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/hasRole \u4e3a\u89d2\u8272\u6388\u6743\uff0c\u8868\u793a\u7528\u6237\u62e5\u6709\u6307\u5b9a\u89d2\u8272<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/hasAuthority \u4e3a\u6743\u9650\u6388\u6743\uff0c\u8868\u793a\u7528\u6237\u62e5\u6709\u6307\u5b9a\u6743\u9650<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-1.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasRole<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level1\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-2.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasRole<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level2\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-3.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasAuthority<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level3\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5f00\u542f\u767b\u5f55\uff0c\u65e0\u6743\u9650\u65f6\u8fdb\u5165\u767b\u5f55\u9875\u9762<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">formLogin<\/span>();<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Override<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">protected<\/span> <span style=\"color: rgb(0, 136, 85);\">void<\/span> <span style=\"color: rgb(0, 0, 0);\">configure<\/span>(<span style=\"color: rgb(0, 0, 0);\">AuthenticationManagerBuilder<\/span> <span style=\"color: rgb(0, 0, 0);\">auth<\/span>) <span style=\"color: rgb(119, 0, 136);\">throws<\/span> <span style=\"color: rgb(0, 0, 0);\">Exception<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5bc6\u7801\u52a0\u5bc6<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">BCryptPasswordEncoder<\/span> <span style=\"color: rgb(0, 0, 0);\">passwordEncoder<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(119, 0, 136);\">new<\/span> <span style=\"color: rgb(0, 0, 0);\">BCryptPasswordEncoder<\/span>();<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u914d\u7f6e\u7528\u6237\u540d\u3001\u5bc6\u7801\uff0c\u8be5\u914d\u7f6e\u65b9\u5f0f\u4e0b\uff0c\u7528\u6237\u540d\u548c\u5bc6\u7801\u4fdd\u5b58\u5728\u5185\u5b58\u4e2d<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">auth<\/span>.<span style=\"color: rgb(0, 0, 0);\">inMemoryAuthentication<\/span>()<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/\u5bc6\u7801\u52a0\u5bc6\u65b9\u5f0f<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">passwordEncoder<\/span>(<span style=\"color: rgb(119, 0, 136);\">new<\/span> <span style=\"color: rgb(0, 0, 0);\">BCryptPasswordEncoder<\/span>())<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">withUser<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"admin\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">password<\/span>(<span style=\"color: rgb(0, 0, 0);\">passwordEncoder<\/span>.<span style=\"color: rgb(0, 0, 0);\">encode<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"123456\"<\/span>)).<span style=\"color: rgb(0, 0, 0);\">roles<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"admin\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">and<\/span>().<span style=\"color: rgb(0, 0, 0);\">withUser<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"admin1\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">password<\/span>(<span style=\"color: rgb(0, 0, 0);\">passwordEncoder<\/span>.<span style=\"color: rgb(0, 0, 0);\">encode<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"123456\"<\/span>)).<span style=\"color: rgb(0, 0, 0);\">roles<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level1\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">and<\/span>().<span style=\"color: rgb(0, 0, 0);\">withUser<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"admin2\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">password<\/span>(<span style=\"color: rgb(0, 0, 0);\">passwordEncoder<\/span>.<span style=\"color: rgb(0, 0, 0);\">encode<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"123456\"<\/span>)).<span style=\"color: rgb(0, 0, 0);\">roles<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level2\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">and<\/span>().<span style=\"color: rgb(0, 0, 0);\">withUser<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"admin3\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">password<\/span>(<span style=\"color: rgb(0, 0, 0);\">passwordEncoder<\/span>.<span style=\"color: rgb(0, 0, 0);\">encode<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"123456\"<\/span>)).<span style=\"color: rgb(0, 0, 0);\">authorities<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level3\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">and<\/span>().<span style=\"color: rgb(0, 0, 0);\">withUser<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"admin0\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">password<\/span>(<span style=\"color: rgb(0, 0, 0);\">passwordEncoder<\/span>.<span style=\"color: rgb(0, 0, 0);\">encode<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"123456\"<\/span>)).<span style=\"color: rgb(0, 0, 0);\">authorities<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"ROLE_level1\"<\/span>, <span style=\"color: rgb(170, 17, 17);\">\"ROLE_level2\"<\/span>, <span style=\"color: rgb(170, 17, 17);\">\"level3\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">}<\/span><\/pre>\n<p cid=\"n58\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"strong\"><strong>hasRole()<\/strong><\/span><span md-inline=\"plain\">\u548c<\/span><span md-inline=\"strong\"><strong>hasAuthority()<\/strong><\/span><span md-inline=\"plain\">\u7528\u6cd5\u662f\u7c7b\u4f3c\u7684\uff0c\u53ea\u4e0d\u8fc7hasRole()\u65b9\u6cd5\u4f1a\u7ed9\u81ea\u5b9a\u4e49\u7684\u89d2\u8272\u540d\u524d\u52a0\u4e0a <\/span><span md-inline=\"strong\"><strong>ROLE_<\/strong><\/span><span md-inline=\"plain\"> \u524d\u7f00<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" data-galleryid=\"\" data-imgfileid=\"100000524\" data-ratio=\"0.23981481481481481\" data-s=\"300,640\"  data-type=\"png\" data-w=\"1080\" style=\"\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152536278.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\"  \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" data-galleryid=\"\" data-imgfileid=\"100000524\" data-ratio=\"0.23981481481481481\" data-s=\"300,640\"  data-type=\"png\" data-w=\"1080\" style=\"\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152536278.png\"  \/><\/noscript><\/p>\n<p cid=\"n60\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u56e0\u6b64\u5728\u81ea\u5b9a\u4e49\u7528\u6237\u65f6\uff0c\u5982\u679c\u4f7f\u7528<\/span><span md-inline=\"strong\"><strong>authorities()<\/strong><\/span><span md-inline=\"plain\">\u7ed9\u7528\u6237\u8bbe\u7f6e\u89d2\u8272\u65f6\uff0c\u9700\u8981\u81ea\u884c\u6dfb\u52a0\u4e0a<\/span><span md-inline=\"strong\"><strong>ROLE_<\/strong><\/span><span md-inline=\"plain\">\u524d\u7f00\u3002<\/span><\/p>\n<p cid=\"n61\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"strong\"><strong>roles()<\/strong><\/span><span md-inline=\"plain\">\u548c<\/span><span md-inline=\"strong\"><strong>authorities()<\/strong><\/span><span md-inline=\"plain\">\u8bbe\u7f6e\u7684\u89d2\u8272\u6216\u6743\u9650\uff0c\u6700\u7ec8\u90fd\u5b58\u653e\u5728<\/span><span md-inline=\"strong\"><strong>authorities<\/strong><\/span><span md-inline=\"plain\">\u53c2\u6570\u4e2d\uff0c\u4e14\u8fd9\u4e24\u4e2a\u65b9\u6cd5\u4f1a\u4e92\u76f8\u8986\u76d6\u5f7c\u6b64\u7684\u503c\u3002<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" data-galleryid=\"\" data-imgfileid=\"100000523\" data-ratio=\"0.65\" data-s=\"300,640\"  data-type=\"png\" data-w=\"980\" style=\"\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152538361.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\"  \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" data-galleryid=\"\" data-imgfileid=\"100000523\" data-ratio=\"0.65\" data-s=\"300,640\"  data-type=\"png\" data-w=\"980\" style=\"\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152538361.png\"  \/><\/noscript><\/p>\n<h2 cid=\"n63\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">4.3 \u6d4b\u8bd5<\/span><\/h2>\n<p cid=\"n64\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u6d4f\u89c8\u5668\u8bbf\u95ee<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" data-galleryid=\"\" data-imgfileid=\"100000519\" data-ratio=\"0.5754985754985755\" data-s=\"300,640\"  data-type=\"png\" data-w=\"351\" style=\"\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152541904.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\"  \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" data-galleryid=\"\" data-imgfileid=\"100000519\" data-ratio=\"0.5754985754985755\" data-s=\"300,640\"  data-type=\"png\" data-w=\"351\" style=\"\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152541904.png\"  \/><\/noscript><\/p>\n<p cid=\"n66\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u4f9d\u6b21\u70b9\u51fb\u7b49\u7ea71\u3001\u7b49\u7ea72\u3001\u7b49\u7ea73\uff0c\u5747\u81ea\u52a8\u8df3\u8f6c\u5230\u6388\u6743\u767b\u5f55\u9875\u9762\uff0c\u767b\u5f55\u5bf9\u5e94\u6743\u9650\u7684\u7528\u6237\u540e\uff0c\u53ef\u6210\u529f\u8bbf\u95ee\u3002<\/span><\/p>\n<p cid=\"n67\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u5176\u4e2d\uff0c\u767b\u5f55admin\u7528\u6237\uff0c\u65e0\u6cd5\u8bbf\u95ee\u4efb\u4f55\u9875\u9762\uff0c\u767b\u5f55admin0\uff0c\u53ef\u8bbf\u95ee\u6240\u6709\u9875\u9762<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" data-galleryid=\"\" data-imgfileid=\"100000521\" data-ratio=\"0.4186046511627907\" data-s=\"300,640\"  data-type=\"png\" data-w=\"473\" style=\"\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152543106.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\"  \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" data-galleryid=\"\" data-imgfileid=\"100000521\" data-ratio=\"0.4186046511627907\" data-s=\"300,640\"  data-type=\"png\" data-w=\"473\" style=\"\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152543106.png\"  \/><\/noscript><\/p>\n<p cid=\"n69\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u767b\u5f55\u6743\u9650\u4e0d\u5339\u914d\u7684\u7528\u6237\uff0c\u62d2\u7edd\u8bbf\u95ee<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" data-galleryid=\"\" data-imgfileid=\"100000520\" data-ratio=\"0.3668639053254438\" data-s=\"300,640\"  data-type=\"png\" data-w=\"676\" style=\"\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152545342.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\"  \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" data-galleryid=\"\" data-imgfileid=\"100000520\" data-ratio=\"0.3668639053254438\" data-s=\"300,640\"  data-type=\"png\" data-w=\"676\" style=\"\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152545342.png\"  \/><\/noscript><\/p>\n<h2 cid=\"n71\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">4.4 \u4f7f\u7528UserDetailsService\u7c7b\u5b9e\u73b0<\/span><\/h2>\n<p cid=\"n72\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"strong\"><strong>UserDetailsServiceImpl<\/strong><\/span><\/p>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n73\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@Service<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(119, 0, 136);\">class<\/span> <span style=\"color: rgb(0, 0, 255);\">UserDetailsServiceImpl<\/span> <span style=\"color: rgb(119, 0, 136);\">implements<\/span> <span style=\"color: rgb(0, 0, 0);\">UserDetailsService<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Override<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(0, 0, 0);\">UserDetails<\/span> <span style=\"color: rgb(0, 0, 0);\">loadUserByUsername<\/span>(<span style=\"color: rgb(0, 136, 85);\">String<\/span> <span style=\"color: rgb(0, 0, 0);\">s<\/span>) <span style=\"color: rgb(119, 0, 136);\">throws<\/span> <span style=\"color: rgb(0, 0, 0);\">UsernameNotFoundException<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">List<\/span><span style=\"color: rgb(152, 26, 26);\">&lt;<\/span><span style=\"color: rgb(0, 0, 0);\">GrantedAuthority<\/span><span style=\"color: rgb(152, 26, 26);\">&gt;<\/span> <span style=\"color: rgb(0, 0, 0);\">roles<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(119, 0, 136);\">if<\/span> (<span style=\"color: rgb(170, 17, 17);\">\"admin1\"<\/span>.<span style=\"color: rgb(0, 0, 0);\">equals<\/span>(<span style=\"color: rgb(0, 0, 0);\">s<\/span>)) {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">roles<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(0, 0, 0);\">AuthorityUtils<\/span>.<span style=\"color: rgb(0, 0, 0);\">commaSeparatedStringToAuthorityList<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"ROLE_level1\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">     } <span style=\"color: rgb(119, 0, 136);\">else<\/span> <span style=\"color: rgb(119, 0, 136);\">if<\/span> (<span style=\"color: rgb(170, 17, 17);\">\"admin2\"<\/span>.<span style=\"color: rgb(0, 0, 0);\">equals<\/span>(<span style=\"color: rgb(0, 0, 0);\">s<\/span>)) {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">roles<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(0, 0, 0);\">AuthorityUtils<\/span>.<span style=\"color: rgb(0, 0, 0);\">commaSeparatedStringToAuthorityList<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"ROLE_level2\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">     } <span style=\"color: rgb(119, 0, 136);\">else<\/span> <span style=\"color: rgb(119, 0, 136);\">if<\/span> (<span style=\"color: rgb(170, 17, 17);\">\"admin3\"<\/span>.<span style=\"color: rgb(0, 0, 0);\">equals<\/span>(<span style=\"color: rgb(0, 0, 0);\">s<\/span>)) {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">roles<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(0, 0, 0);\">AuthorityUtils<\/span>.<span style=\"color: rgb(0, 0, 0);\">commaSeparatedStringToAuthorityList<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level3\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">     } <span style=\"color: rgb(119, 0, 136);\">else<\/span> <span style=\"color: rgb(119, 0, 136);\">if<\/span> (<span style=\"color: rgb(170, 17, 17);\">\"admin0\"<\/span>.<span style=\"color: rgb(0, 0, 0);\">equals<\/span>(<span style=\"color: rgb(0, 0, 0);\">s<\/span>)) {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">roles<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(0, 0, 0);\">AuthorityUtils<\/span>.<span style=\"color: rgb(0, 0, 0);\">createAuthorityList<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"ROLE_level1\"<\/span>, <span style=\"color: rgb(170, 17, 17);\">\"ROLE_level2\"<\/span>, <span style=\"color: rgb(170, 17, 17);\">\"level3\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">     } <span style=\"color: rgb(119, 0, 136);\">else<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">roles<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(0, 0, 0);\">AuthorityUtils<\/span>.<span style=\"color: rgb(0, 0, 0);\">createAuthorityList<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"admin\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">     }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(119, 0, 136);\">return<\/span> <span style=\"color: rgb(119, 0, 136);\">new<\/span> <span style=\"color: rgb(0, 0, 0);\">User<\/span>(<span style=\"color: rgb(0, 0, 0);\">s<\/span>, <span style=\"color: rgb(119, 0, 136);\">new<\/span> <span style=\"color: rgb(0, 0, 0);\">BCryptPasswordEncoder<\/span>().<span style=\"color: rgb(0, 0, 0);\">encode<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"123456\"<\/span>), <span style=\"color: rgb(0, 0, 0);\">roles<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">}<\/span><\/pre>\n<p cid=\"n74\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"strong\"><strong>SecurityConfig<\/strong><\/span><\/p>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n75\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@EnableWebSecurity<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(119, 0, 136);\">class<\/span> <span style=\"color: rgb(0, 0, 255);\">SecurityConfig<\/span> <span style=\"color: rgb(119, 0, 136);\">extends<\/span> <span style=\"color: rgb(0, 0, 0);\">WebSecurityConfigurerAdapter<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Autowired<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">private<\/span> <span style=\"color: rgb(0, 0, 0);\">UserDetailsServiceImpl<\/span> <span style=\"color: rgb(0, 0, 0);\">userDetailsService<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Override<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">protected<\/span> <span style=\"color: rgb(0, 136, 85);\">void<\/span> <span style=\"color: rgb(0, 0, 0);\">configure<\/span>(<span style=\"color: rgb(0, 0, 0);\">HttpSecurity<\/span> <span style=\"color: rgb(0, 0, 0);\">http<\/span>) <span style=\"color: rgb(119, 0, 136);\">throws<\/span> <span style=\"color: rgb(0, 0, 0);\">Exception<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u8bf7\u6c42\u6388\u6743\u7684\u89c4\u5219<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5f00\u542f\u8ba4\u8bc1<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">authorizeRequests<\/span>()<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/\u9996\u9875\u6240\u6709\u4eba\u53ef\u8bbf\u95ee<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">permitAll<\/span>()<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/\u529f\u80fd\u9875\u5bf9\u5e94\u89d2\u8272\u6216\u6743\u9650\u624d\u80fd\u8bbf\u95ee<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/hasRole \u4e3a\u89d2\u8272\u6388\u6743\uff0c\u8868\u793a\u7528\u6237\u62e5\u6709\u6307\u5b9a\u89d2\u8272<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/hasAuthority \u4e3a\u6743\u9650\u6388\u6743\uff0c\u8868\u793a\u7528\u6237\u62e5\u6709\u6307\u5b9a\u6743\u9650<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-1.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasRole<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level1\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-2.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasRole<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level2\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-3.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasAuthority<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level3\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5f00\u542f\u767b\u5f55\uff0c\u65e0\u6743\u9650\u65f6\u8fdb\u5165\u767b\u5f55\u9875\u9762<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">formLogin<\/span>();<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Override<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">protected<\/span> <span style=\"color: rgb(0, 136, 85);\">void<\/span> <span style=\"color: rgb(0, 0, 0);\">configure<\/span>(<span style=\"color: rgb(0, 0, 0);\">AuthenticationManagerBuilder<\/span> <span style=\"color: rgb(0, 0, 0);\">auth<\/span>) <span style=\"color: rgb(119, 0, 136);\">throws<\/span> <span style=\"color: rgb(0, 0, 0);\">Exception<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u4f7f\u7528UserDetailsServiceImpl \u67e5\u8be2\u7528\u6237\u540d\u3001\u5bc6\u7801<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">auth<\/span>.<span style=\"color: rgb(0, 0, 0);\">userDetailsService<\/span>(<span style=\"color: rgb(0, 0, 0);\">userDetailsService<\/span>).<span style=\"color: rgb(0, 0, 0);\">passwordEncoder<\/span>(<span style=\"color: rgb(119, 0, 136);\">new<\/span> <span style=\"color: rgb(0, 0, 0);\">BCryptPasswordEncoder<\/span>());<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">}<\/span><\/pre>\n<p cid=\"n76\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u6d4f\u89c8\u5668\u8bbf\u95ee\uff0c\u6d4b\u8bd5\uff0c\u901a\u8fc7<\/span><\/p>\n<h1 cid=\"n77\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 2.25em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.2;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">5 \u5e38\u7528\u6ce8\u89e3<\/span><\/h1>\n<p cid=\"n143\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"strong\"><strong>\u53ef\u63a7\u5236\u7528\u6237\u8ba4\u8bc1\u8bbf\u95ee\u63a5\u53e3<\/strong><\/span><\/p>\n<h2 cid=\"n78\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">5.1 @Secured()<\/span><\/h2>\n<p cid=\"n79\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"strong\"><strong>\u6821\u9a8c\u7528\u6237\u5177\u6709\u67d0\u4e2a\u89d2\u8272\uff0c\u624d\u53ef\u8bbf\u95ee\u63a5\u53e3<\/strong><\/span><\/p>\n<p cid=\"n80\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u9700\u5728\u542f\u52a8\u7c7b\u5f00\u542f\u6ce8\u89e3<\/span><\/p>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n81\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@EnableGlobalMethodSecurity<\/span>(<span style=\"color: rgb(0, 0, 0);\">securedEnabled<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(34, 17, 153);\">true<\/span>)<\/span><\/pre>\n<p cid=\"n82\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u7136\u540e\u5728\u63a5\u53e3\u65b9\u6cd5\u4e0a\u914d\u7f6e\u6ce8\u89e3<\/span><\/p>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n83\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@RestController<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@RequestMapping<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"user\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(119, 0, 136);\">class<\/span> <span style=\"color: rgb(0, 0, 255);\">UserController<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@GetMapping<\/span>(<span style=\"color: rgb(0, 0, 0);\">value<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(170, 17, 17);\">\"query\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Secured<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"ROLE_level1\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(0, 136, 85);\">String<\/span> <span style=\"color: rgb(0, 0, 0);\">query<\/span>() {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(119, 0, 136);\">return<\/span> <span style=\"color: rgb(170, 17, 17);\">\"\u7528\u6237\u67e5\u8be2\u6210\u529f\"<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@GetMapping<\/span>(<span style=\"color: rgb(0, 0, 0);\">value<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(170, 17, 17);\">\"update\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Secured<\/span>({<span style=\"color: rgb(170, 17, 17);\">\"ROLE_level1\"<\/span>, <span style=\"color: rgb(170, 17, 17);\">\"ROLE_level2\"<\/span>})<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(0, 136, 85);\">String<\/span> <span style=\"color: rgb(0, 0, 0);\">update<\/span>() {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(119, 0, 136);\">return<\/span> <span style=\"color: rgb(170, 17, 17);\">\"\u7528\u6237\u66f4\u65b0\u6210\u529f\"<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">}<\/span><\/pre>\n<h2 cid=\"n84\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">5.2 @PreAuthorize()<\/span><\/h2>\n<p cid=\"n85\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"strong\"><strong>\u5728\u8fdb\u5165\u65b9\u6cd5\u524d\u6821\u9a8c\u7528\u6237\u5177\u6709\u67d0\u4e2a\u6743\u9650\u6216\u89d2\u8272<\/strong><\/span><\/p>\n<p cid=\"n86\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u9700\u5728\u542f\u52a8\u7c7b\u5f00\u542f\u6ce8\u89e3<\/span><\/p>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n87\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@EnableGlobalMethodSecurity<\/span>(<span style=\"color: rgb(0, 0, 0);\">securedEnabled<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(34, 17, 153);\">true<\/span>, <span style=\"color: rgb(0, 0, 0);\">prePostEnabled<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(34, 17, 153);\">true<\/span>)<\/span><\/pre>\n<p cid=\"n88\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u7136\u540e\u5728\u63a5\u53e3\u65b9\u6cd5\u4e0a\u914d\u7f6e\u6ce8\u89e3<\/span><\/p>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n89\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@RestController<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@RequestMapping<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"user\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(119, 0, 136);\">class<\/span> <span style=\"color: rgb(0, 0, 255);\">UserController<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@GetMapping<\/span>(<span style=\"color: rgb(0, 0, 0);\">value<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(170, 17, 17);\">\"delete\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@PreAuthorize<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"hasAnyAuthority('ROLE_level1','level3')\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(0, 136, 85);\">String<\/span> <span style=\"color: rgb(0, 0, 0);\">delete<\/span>() {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(119, 0, 136);\">return<\/span> <span style=\"color: rgb(170, 17, 17);\">\"\u7528\u6237\u5220\u9664\u6210\u529f\"<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">}<\/span><\/pre>\n<h2 cid=\"n90\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">5.3 @PostAuthorize()<\/span><\/h2>\n<p cid=\"n91\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"strong\"><strong>\u5728\u8fdb\u5165\u65b9\u6cd5\u540e\u6821\u9a8c\u7528\u6237\u5177\u6709\u67d0\u4e2a\u6743\u9650\u6216\u89d2\u8272<\/strong><\/span><\/p>\n<p cid=\"n92\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u9700\u5728\u542f\u52a8\u7c7b\u5f00\u542f\u6ce8\u89e3<\/span><\/p>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n93\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@EnableGlobalMethodSecurity<\/span>(<span style=\"color: rgb(0, 0, 0);\">securedEnabled<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(34, 17, 153);\">true<\/span>, <span style=\"color: rgb(0, 0, 0);\">prePostEnabled<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(34, 17, 153);\">true<\/span>)<\/span><\/pre>\n<p cid=\"n94\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u7136\u540e\u5728\u63a5\u53e3\u65b9\u6cd5\u4e0a\u914d\u7f6e\u6ce8\u89e3<\/span><\/p>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n95\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@RestController<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@RequestMapping<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"user\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(119, 0, 136);\">class<\/span> <span style=\"color: rgb(0, 0, 255);\">UserController<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@GetMapping<\/span>(<span style=\"color: rgb(0, 0, 0);\">value<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(170, 17, 17);\">\"delete\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@PostAuthorize<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"hasAnyAuthority('ROLE_level1','level3')\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(0, 136, 85);\">String<\/span> <span style=\"color: rgb(0, 0, 0);\">delete<\/span>() {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(119, 0, 136);\">return<\/span> <span style=\"color: rgb(170, 17, 17);\">\"\u7528\u6237\u5220\u9664\u6210\u529f\"<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">}<\/span><\/pre>\n<h2 cid=\"n96\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">5.4 @PostFilter()<\/span><\/h2>\n<p cid=\"n97\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"strong\"><strong>\u6821\u9a8c\u6743\u9650\u540e\u5bf9\u6570\u636e\u8fdb\u884c\u8fc7\u6ee4\uff0c\u53ea\u8fd4\u56de\u6ee1\u8db3\u6761\u4ef6\u7684\u6570\u636e<\/strong><\/span><\/p>\n<p cid=\"n98\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u65b0\u5efa\u5b9e\u4f53\u7c7b<\/span><\/p>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n99\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@Data<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@AllArgsConstructor<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@NoArgsConstructor<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(119, 0, 136);\">class<\/span> <span style=\"color: rgb(0, 0, 255);\">UserModel<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">private<\/span> <span style=\"color: rgb(0, 136, 85);\">String<\/span> <span style=\"color: rgb(0, 0, 0);\">username<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">private<\/span> <span style=\"color: rgb(0, 136, 85);\">String<\/span> <span style=\"color: rgb(0, 0, 0);\">password<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">}<\/span><\/pre>\n<p cid=\"n100\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u7136\u540e\u5728\u65b9\u6cd5\u4e0a\u52a0\u4e0a\u6ce8\u89e3<\/span><\/p>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n101\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@RestController<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@RequestMapping<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"user\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(119, 0, 136);\">class<\/span> <span style=\"color: rgb(0, 0, 255);\">UserController<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@GetMapping<\/span>(<span style=\"color: rgb(0, 0, 0);\">value<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(170, 17, 17);\">\"queryList\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@PreAuthorize<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"hasAnyAuthority('ROLE_level1','level3')\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@PostFilter<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"filterObject.username == 'test'\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(0, 0, 0);\">List<\/span><span style=\"color: rgb(152, 26, 26);\">&lt;<\/span><span style=\"color: rgb(0, 0, 0);\">UserModel<\/span><span style=\"color: rgb(152, 26, 26);\">&gt;<\/span> <span style=\"color: rgb(0, 0, 0);\">queryList<\/span>() {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">List<\/span><span style=\"color: rgb(152, 26, 26);\">&lt;<\/span><span style=\"color: rgb(0, 0, 0);\">UserModel<\/span><span style=\"color: rgb(152, 26, 26);\">&gt;<\/span> <span style=\"color: rgb(0, 0, 0);\">userList<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(119, 0, 136);\">new<\/span> <span style=\"color: rgb(0, 0, 0);\">ArrayList<\/span><span style=\"color: rgb(152, 26, 26);\">&lt;&gt;<\/span>();<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">userList<\/span>.<span style=\"color: rgb(0, 0, 0);\">add<\/span>(<span style=\"color: rgb(119, 0, 136);\">new<\/span> <span style=\"color: rgb(0, 0, 0);\">UserModel<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"test\"<\/span>, <span style=\"color: rgb(170, 17, 17);\">\"qwerty\"<\/span>));<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">userList<\/span>.<span style=\"color: rgb(0, 0, 0);\">add<\/span>(<span style=\"color: rgb(119, 0, 136);\">new<\/span> <span style=\"color: rgb(0, 0, 0);\">UserModel<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"test2\"<\/span>, <span style=\"color: rgb(170, 17, 17);\">\"asdfgh\"<\/span>));<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">userList<\/span>.<span style=\"color: rgb(0, 0, 0);\">add<\/span>(<span style=\"color: rgb(119, 0, 136);\">new<\/span> <span style=\"color: rgb(0, 0, 0);\">UserModel<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"test3\"<\/span>, <span style=\"color: rgb(170, 17, 17);\">\"zxcvbn\"<\/span>));<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(119, 0, 136);\">return<\/span> <span style=\"color: rgb(0, 0, 0);\">userList<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">}<\/span><\/pre>\n<p cid=\"n102\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u6d4b\u8bd5\uff0c\u6743\u9650\u9a8c\u8bc1\u901a\u8fc7\u540e<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" data-galleryid=\"\" data-imgfileid=\"100000522\" data-ratio=\"0.3361522198731501\" data-s=\"300,640\"  data-type=\"png\" data-w=\"473\" style=\"\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152547961.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\"  \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" data-galleryid=\"\" data-imgfileid=\"100000522\" data-ratio=\"0.3361522198731501\" data-s=\"300,640\"  data-type=\"png\" data-w=\"473\" style=\"\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152547961.png\"  \/><\/noscript><\/p>\n<h2 cid=\"n104\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">5.5 @PreFilter()<\/span><\/h2>\n<p cid=\"n105\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"strong\"><strong>\u6821\u9a8c\u6743\u9650\u540e\u5bf9\u6570\u636e\u8fdb\u884c\u8fc7\u6ee4\uff0c\u53ea\u6709\u6ee1\u8db3\u6761\u4ef6\u7684\u6570\u636e\u624d\u80fd\u4f20\u5165\u63a5\u53e3\u65b9\u6cd5\u4e2d<\/strong><\/span><\/p>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n106\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@RestController<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">@RequestMapping<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"user\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(119, 0, 136);\">class<\/span> <span style=\"color: rgb(0, 0, 255);\">UserController<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@PostMapping<\/span>(<span style=\"color: rgb(0, 0, 0);\">value<\/span> <span style=\"color: rgb(152, 26, 26);\">=<\/span> <span style=\"color: rgb(170, 17, 17);\">\"queryUser\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@PreAuthorize<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"hasAnyAuthority('ROLE_level1','level3')\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@PreFilter<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"filterObject.username == 'test2'\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">public<\/span> <span style=\"color: rgb(0, 0, 0);\">List<\/span><span style=\"color: rgb(152, 26, 26);\">&lt;<\/span><span style=\"color: rgb(0, 0, 0);\">UserModel<\/span><span style=\"color: rgb(152, 26, 26);\">&gt;<\/span> <span style=\"color: rgb(0, 0, 0);\">queryUser<\/span>(<span style=\"color: rgb(85, 85, 85);\">@RequestBody<\/span> <span style=\"color: rgb(0, 0, 0);\">List<\/span><span style=\"color: rgb(152, 26, 26);\">&lt;<\/span><span style=\"color: rgb(0, 0, 0);\">UserModel<\/span><span style=\"color: rgb(152, 26, 26);\">&gt;<\/span> <span style=\"color: rgb(0, 0, 0);\">userModels<\/span>) {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(119, 0, 136);\">return<\/span> <span style=\"color: rgb(0, 0, 0);\">userModels<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">}<\/span><\/pre>\n<p cid=\"n107\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u6d4b\u8bd5\uff0c\u6743\u9650\u9a8c\u8bc1\u901a\u8fc7\u540e<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" data-galleryid=\"\" data-imgfileid=\"100000526\" data-ratio=\"1.3990825688073394\" data-s=\"300,640\"  data-type=\"png\" data-w=\"436\" style=\"\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152549820.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\"  \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" data-galleryid=\"\" data-imgfileid=\"100000526\" data-ratio=\"1.3990825688073394\" data-s=\"300,640\"  data-type=\"png\" data-w=\"436\" style=\"\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152549820.png\"  \/><\/noscript><\/p>\n<h1 cid=\"n109\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 2.25em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.2;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">6 \u8bb0\u4f4f\u6211<\/span><\/h1>\n<p cid=\"n110\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u914d\u7f6e\u7c7b\u4e2d\u5f00\u542f\u8bb0\u4f4f\u6211<\/span><\/p>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n111\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Override<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">protected<\/span> <span style=\"color: rgb(0, 136, 85);\">void<\/span> <span style=\"color: rgb(0, 0, 255);\">configure<\/span>(<span style=\"color: rgb(0, 0, 0);\">HttpSecurity<\/span> <span style=\"color: rgb(0, 0, 0);\">http<\/span>) <span style=\"color: rgb(119, 0, 136);\">throws<\/span> <span style=\"color: rgb(0, 0, 0);\">Exception<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u8bf7\u6c42\u6388\u6743\u7684\u89c4\u5219<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5f00\u542f\u8ba4\u8bc1<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">authorizeRequests<\/span>()<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/\u9996\u9875\u6240\u6709\u4eba\u53ef\u8bbf\u95ee<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">permitAll<\/span>()<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/\u529f\u80fd\u9875\u5bf9\u5e94\u89d2\u8272\u6216\u6743\u9650\u624d\u80fd\u8bbf\u95ee<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/hasRole \u4e3a\u89d2\u8272\u6388\u6743\uff0c\u8868\u793a\u7528\u6237\u62e5\u6709\u6307\u5b9a\u89d2\u8272<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/hasAuthority \u4e3a\u6743\u9650\u6388\u6743\uff0c\u8868\u793a\u7528\u6237\u62e5\u6709\u6307\u5b9a\u6743\u9650<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-1.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasRole<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level1\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-2.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasRole<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level2\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-3.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasAuthority<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level3\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5f00\u542f\u767b\u5f55\uff0c\u65e0\u6743\u9650\u65f6\u8fdb\u5165\u767b\u5f55\u9875\u9762<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">formLogin<\/span>();<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u8bb0\u4f4f\u6211<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">rememberMe<\/span>();<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><\/pre>\n<p cid=\"n112\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u542f\u52a8\u670d\u52a1\uff0c\u8bbf\u95ee\u9875\u9762\uff0c\u767b\u5f55\u9875\u9762\u589e\u52a0\u4e86\u8bb0\u4f4f\u6211\u9009\u62e9\u6846<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" data-galleryid=\"\" data-imgfileid=\"100000525\" data-ratio=\"0.8\" data-s=\"300,640\"  data-type=\"png\" data-w=\"375\" style=\"\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152551536.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\"  \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" data-galleryid=\"\" data-imgfileid=\"100000525\" data-ratio=\"0.8\" data-s=\"300,640\"  data-type=\"png\" data-w=\"375\" style=\"\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152551536.png\"  \/><\/noscript><\/p>\n<p cid=\"n114\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u767b\u5f55\u6210\u529f\u540e\uff0ccookie\u4e2d\u5df2\u4fdd\u5b58\u7528\u6237\u4fe1\u606f\uff0c\u9ed8\u8ba4\u65f6\u95f4\u4e3a2\u5468<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" data-galleryid=\"\" data-imgfileid=\"100000527\" data-ratio=\"0.3039117352056169\" data-s=\"300,640\"  data-type=\"png\" data-w=\"997\" style=\"\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152553991.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\"  \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" data-galleryid=\"\" data-imgfileid=\"100000527\" data-ratio=\"0.3039117352056169\" data-s=\"300,640\"  data-type=\"png\" data-w=\"997\" style=\"\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152553991.png\"  \/><\/noscript><\/p>\n<h1 cid=\"n116\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 2.25em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.2;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">7 \u6ce8\u9500<\/span><\/h1>\n<h2 cid=\"n117\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">7.1 \u914d\u7f6e\u7c7b\u4e2d\u5f00\u542f\u6ce8\u9500<\/span><\/h2>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n118\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Override<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">protected<\/span> <span style=\"color: rgb(0, 136, 85);\">void<\/span> <span style=\"color: rgb(0, 0, 255);\">configure<\/span>(<span style=\"color: rgb(0, 0, 0);\">HttpSecurity<\/span> <span style=\"color: rgb(0, 0, 0);\">http<\/span>) <span style=\"color: rgb(119, 0, 136);\">throws<\/span> <span style=\"color: rgb(0, 0, 0);\">Exception<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u8bf7\u6c42\u6388\u6743\u7684\u89c4\u5219<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5f00\u542f\u8ba4\u8bc1<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">authorizeRequests<\/span>()<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/\u9996\u9875\u6240\u6709\u4eba\u53ef\u8bbf\u95ee<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">permitAll<\/span>()<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/\u529f\u80fd\u9875\u5bf9\u5e94\u89d2\u8272\u6216\u6743\u9650\u624d\u80fd\u8bbf\u95ee<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/hasRole \u4e3a\u89d2\u8272\u6388\u6743\uff0c\u8868\u793a\u7528\u6237\u62e5\u6709\u6307\u5b9a\u89d2\u8272<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/hasAuthority \u4e3a\u6743\u9650\u6388\u6743\uff0c\u8868\u793a\u7528\u6237\u62e5\u6709\u6307\u5b9a\u6743\u9650<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-1.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasRole<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level1\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-2.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasRole<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level2\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-3.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasAuthority<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level3\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5f00\u542f\u767b\u5f55\uff0c\u65e0\u6743\u9650\u65f6\u8fdb\u5165\u767b\u5f55\u9875\u9762<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">formLogin<\/span>();<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u8bb0\u4f4f\u6211<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">rememberMe<\/span>();<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5f00\u542f\u6ce8\u9500\uff0c\u6ce8\u9500\u6210\u529f\u540e\u56de\u9996\u9875<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">logout<\/span>().<span style=\"color: rgb(0, 0, 0);\">logoutSuccessUrl<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><\/pre>\n<h2 cid=\"n119\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">7.2 level-* \u9875\u9762\u589e\u52a0\u6ce8\u9500\u6309\u94ae<\/span><\/h2>\n<pre spellcheck=\"false\" lang=\"html\" cid=\"n120\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">&lt;!DOCTYPE html&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">html<\/span> <span style=\"color: rgb(0, 0, 204);\">lang<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"en\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">head<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">meta<\/span> <span style=\"color: rgb(0, 0, 204);\">charset<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"UTF-8\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>Title<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">head<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">body<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">h1<\/span> <span style=\"color: rgb(0, 0, 204);\">style<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"color: red\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>\u8fd9\u662f\u7528\u6237\u7b49\u7ea71\u53ef\u8bbf\u95ee\u7684\u9875\u9762<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">h1<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">br<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">br<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">a<\/span> <span style=\"color: rgb(0, 0, 204);\">href<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"\/logout\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>\u6ce8\u9500<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">a<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">body<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">html<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><\/pre>\n<p cid=\"n121\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u5176\u4ed6\u4e24\u4e2a\u9875\u9762\u505a\u76f8\u540c\u4fee\u6539<\/span><\/p>\n<p cid=\"n122\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u542f\u52a8\u670d\u52a1\uff0c\u767b\u5f55\u6210\u529f\u540e\u70b9\u51fb\u6ce8\u9500\u6309\u94ae\uff0c\u6ce8\u9500\u6210\u529f\uff0c\u8fd4\u56de\u9996\u9875\uff0c\u8bbf\u95ee\u9875\u9762\u9700\u518d\u6b21\u767b\u5f55<\/span><\/p>\n<h1 cid=\"n123\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 2.25em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.2;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">8 \u81ea\u5b9a\u4e49\u767b\u5f55\u9875<\/span><\/h1>\n<h2 cid=\"n124\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">8.1 \u65b0\u5efa\u767b\u5f55\u9875login.html<\/span><\/h2>\n<pre spellcheck=\"false\" lang=\"html\" cid=\"n125\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">&lt;!DOCTYPE html&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">html<\/span> <span style=\"color: rgb(0, 0, 204);\">lang<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"en\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">head<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">meta<\/span> <span style=\"color: rgb(0, 0, 204);\">charset<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"UTF-8\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>Title<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">meta<\/span> <span style=\"color: rgb(0, 0, 204);\">charset<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"UTF-8\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>Login Page<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">style<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(17, 119, 0);\">body<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">font-family<\/span>: <span style=\"color: rgb(0, 0, 0);\">Arial<\/span>, <span style=\"color: rgb(34, 17, 153);\">sans-serif<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">background-color<\/span>: <span style=\"color: rgb(34, 17, 153);\">#f5f5f5<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">     }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(85, 85, 85);\">.container<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">width<\/span>: <span style=\"color: rgb(17, 102, 68);\">300px<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">margin<\/span>: <span style=\"color: rgb(34, 17, 153);\">auto<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">padding<\/span>: <span style=\"color: rgb(17, 102, 68);\">40px<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">border<\/span>: <span style=\"color: rgb(17, 102, 68);\">1px<\/span> <span style=\"color: rgb(34, 17, 153);\">solid<\/span> <span style=\"color: rgb(34, 17, 153);\">#ccc<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">background-color<\/span>: <span style=\"color: rgb(119, 0, 136);\">white<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">box-shadow<\/span>: <span style=\"color: rgb(17, 102, 68);\">0<\/span> <span style=\"color: rgb(17, 102, 68);\">0<\/span> <span style=\"color: rgb(17, 102, 68);\">10px<\/span> <span style=\"color: rgb(34, 17, 153);\">rgba<\/span>(<span style=\"color: rgb(17, 102, 68);\">0<\/span>, <span style=\"color: rgb(17, 102, 68);\">0<\/span>, <span style=\"color: rgb(17, 102, 68);\">0<\/span>, <span style=\"color: rgb(17, 102, 68);\">0.1<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">     }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(17, 119, 0);\">h2<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">text-align<\/span>: <span style=\"color: rgb(34, 17, 153);\">center<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">     }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(17, 119, 0);\">label<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">display<\/span>: <span style=\"color: rgb(34, 17, 153);\">block<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">margin-bottom<\/span>: <span style=\"color: rgb(17, 102, 68);\">10px<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">     }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(17, 119, 0);\">input<\/span>[<span style=\"color: rgb(17, 119, 0);\">type<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"text\"<\/span>],<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(17, 119, 0);\">input<\/span>[<span style=\"color: rgb(17, 119, 0);\">type<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"password\"<\/span>] {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">width<\/span>: <span style=\"color: rgb(17, 102, 68);\">100%<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">padding<\/span>: <span style=\"color: rgb(17, 102, 68);\">6px<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">border<\/span>: <span style=\"color: rgb(17, 102, 68);\">1px<\/span> <span style=\"color: rgb(34, 17, 153);\">solid<\/span> <span style=\"color: rgb(34, 17, 153);\">#ccc<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">outline<\/span>: <span style=\"color: rgb(34, 17, 153);\">none<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">     }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(17, 119, 0);\">button<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">width<\/span>: <span style=\"color: rgb(17, 102, 68);\">100%<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">padding<\/span>: <span style=\"color: rgb(17, 102, 68);\">10px<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">color<\/span>: <span style=\"color: rgb(119, 0, 136);\">white<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">background-color<\/span>: <span style=\"color: rgb(34, 17, 153);\">#4CAF50<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">cursor<\/span>: <span style=\"color: rgb(34, 17, 153);\">pointer<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">border<\/span>: <span style=\"color: rgb(34, 17, 153);\">none<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">outline<\/span>: <span style=\"color: rgb(34, 17, 153);\">none<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">     }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(17, 119, 0);\">button<\/span>:<span style=\"color: rgb(0, 136, 85);\">hover<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">      <span style=\"color: rgb(0, 0, 0);\">opacity<\/span>: <span style=\"color: rgb(17, 102, 68);\">0.9<\/span>;<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">     }<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">style<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">head<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">body<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">div<\/span> <span style=\"color: rgb(0, 0, 204);\">class<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"container\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">h2<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>\u767b\u5f55<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">h2<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">form<\/span> <span style=\"color: rgb(0, 0, 204);\">action<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"\/login\"<\/span> <span style=\"color: rgb(0, 0, 204);\">method<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"post\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">label<\/span> <span style=\"color: rgb(0, 0, 204);\">for<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"username\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>\u7528\u6237\u540d<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">label<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">input<\/span> <span style=\"color: rgb(0, 0, 204);\">type<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"text\"<\/span> <span style=\"color: rgb(0, 0, 204);\">id<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"username\"<\/span> <span style=\"color: rgb(0, 0, 204);\">name<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"username\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">br<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">br<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">label<\/span> <span style=\"color: rgb(0, 0, 204);\">for<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"password\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>\u5bc6\u7801<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">label<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">input<\/span> <span style=\"color: rgb(0, 0, 204);\">type<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"password\"<\/span> <span style=\"color: rgb(0, 0, 204);\">id<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"password\"<\/span> <span style=\"color: rgb(0, 0, 204);\">name<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"password\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">br<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">br<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">input<\/span> <span style=\"color: rgb(0, 0, 204);\">type<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"checkbox\"<\/span> <span style=\"color: rgb(0, 0, 204);\">name<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"remember-me\"<\/span> <span style=\"color: rgb(0, 0, 204);\">title<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"\u8bb0\u4f4f\u6211\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>\u8bb0\u4f4f\u6211<span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">br<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">br<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">button<\/span> <span style=\"color: rgb(0, 0, 204);\">type<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"submit\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>\u767b \u5f55<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">button<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">form<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">div<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">body<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">html<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><\/pre>\n<h2 cid=\"n126\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">8.2 \u914d\u7f6e\u7c7b\u4e2d\u5f00\u542f\u81ea\u5b9a\u4e49\u767b\u5f55\u9875<\/span><\/h2>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n127\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Override<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">protected<\/span> <span style=\"color: rgb(0, 136, 85);\">void<\/span> <span style=\"color: rgb(0, 0, 255);\">configure<\/span>(<span style=\"color: rgb(0, 0, 0);\">HttpSecurity<\/span> <span style=\"color: rgb(0, 0, 0);\">http<\/span>) <span style=\"color: rgb(119, 0, 136);\">throws<\/span> <span style=\"color: rgb(0, 0, 0);\">Exception<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u8bf7\u6c42\u6388\u6743\u7684\u89c4\u5219<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5f00\u542f\u8ba4\u8bc1<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">authorizeRequests<\/span>()<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/\u9996\u9875\u6240\u6709\u4eba\u53ef\u8bbf\u95ee<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">permitAll<\/span>()<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/\u529f\u80fd\u9875\u5bf9\u5e94\u89d2\u8272\u6216\u6743\u9650\u624d\u80fd\u8bbf\u95ee<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/hasRole \u4e3a\u89d2\u8272\u6388\u6743\uff0c\u8868\u793a\u7528\u6237\u62e5\u6709\u6307\u5b9a\u89d2\u8272<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">        <span style=\"color: rgb(170, 85, 0);\">\/\/hasAuthority \u4e3a\u6743\u9650\u6388\u6743\uff0c\u8868\u793a\u7528\u6237\u62e5\u6709\u6307\u5b9a\u6743\u9650<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-1.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasRole<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level1\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-2.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasRole<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level2\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">antMatchers<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/level-3.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">hasAuthority<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"level3\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5f00\u542f\u767b\u5f55\uff0c\u65e0\u6743\u9650\u65f6\u8fdb\u5165\u767b\u5f55\u9875\u9762<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u81ea\u5b9a\u4e49\u767b\u5f55\u9875<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">formLogin<\/span>().<span style=\"color: rgb(0, 0, 0);\">loginPage<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/login.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">loginProcessingUrl<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/login\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5173\u95edcsrf\u9632\u62a4<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">csrf<\/span>().<span style=\"color: rgb(0, 0, 0);\">disable<\/span>();<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u8bb0\u4f4f\u6211<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">rememberMe<\/span>();<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5f00\u542f\u6ce8\u9500\uff0c\u6ce8\u9500\u6210\u529f\u540e\u56de\u9996\u9875<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">logout<\/span>().<span style=\"color: rgb(0, 0, 0);\">logoutSuccessUrl<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><\/pre>\n<p cid=\"n128\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u8fd9\u91cc\uff0c\u81ea\u5b9a\u4e49\u767b\u5f55\uff0c\u9ed8\u8ba4\u7528\u6237\u53c2\u6570\u662f<\/span><span md-inline=\"strong\"><strong>username<\/strong><\/span><span md-inline=\"plain\">\uff0c\u9ed8\u8ba4\u5bc6\u7801\u53c2\u6570\u662f<\/span><span md-inline=\"strong\"><strong>password<\/strong><\/span><span md-inline=\"plain\">\uff0c\u9ed8\u8ba4\u8bb0\u4f4f\u6211\u53c2\u6570\u662f<\/span><span md-inline=\"strong\"><strong>remember-me<\/strong><\/span><span md-inline=\"plain\">\uff0c\u5982\u679c\u9700\u8981\u81ea\u5b9a\u4e49\u767b\u5f55\u8868\u5355\u7684\u53c2\u6570\uff0c\u505a\u5982\u4e0b\u4fee\u6539<\/span><\/p>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n129\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5f00\u542f\u767b\u5f55\uff0c\u65e0\u6743\u9650\u65f6\u8fdb\u5165\u767b\u5f55\u9875\u9762<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">formLogin<\/span>().<span style=\"color: rgb(0, 0, 0);\">loginPage<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/login.html\"<\/span>).<span style=\"color: rgb(0, 0, 0);\">loginProcessingUrl<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/login\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">usernameParameter<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"username\"<\/span>)<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">         .<span style=\"color: rgb(0, 0, 0);\">passwordParameter<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"password\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u5173\u95edcsrf\u9632\u62a4<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">csrf<\/span>().<span style=\"color: rgb(0, 0, 0);\">disable<\/span>();<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u8bb0\u4f4f\u6211<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">rememberMe<\/span>().<span style=\"color: rgb(0, 0, 0);\">rememberMeParameter<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"remember-me\"<\/span>);<\/span><\/pre>\n<p cid=\"n130\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u542f\u52a8\u670d\u52a1\uff0c\u8bbf\u95ee\u5730\u5740\uff0c\u8df3\u8f6c\u5230\u81ea\u5b9a\u4e49\u767b\u5f55\u9875<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" data-galleryid=\"\" data-imgfileid=\"100000529\" data-ratio=\"0.3388888888888889\" data-s=\"300,640\"  data-type=\"png\" data-w=\"1080\" style=\"\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152556862.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\"  \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" data-galleryid=\"\" data-imgfileid=\"100000529\" data-ratio=\"0.3388888888888889\" data-s=\"300,640\"  data-type=\"png\" data-w=\"1080\" style=\"\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152556862.png\"  \/><\/noscript><\/p>\n<h1 cid=\"n132\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 2.25em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.2;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">9 \u81ea\u5b9a\u4e49403\u9875\u9762<\/span><\/h1>\n<h2 cid=\"n133\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">9.1 \u65b0\u5efa403.html<\/span><\/h2>\n<pre spellcheck=\"false\" lang=\"html\" cid=\"n134\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(85, 85, 85);\">&lt;!DOCTYPE html&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">html<\/span> <span style=\"color: rgb(0, 0, 204);\">lang<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"en\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">head<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">meta<\/span> <span style=\"color: rgb(0, 0, 204);\">charset<\/span>=<span style=\"color: rgb(170, 17, 17);\">\"UTF-8\"<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span>Title<span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">title<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">head<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;<\/span><span style=\"color: rgb(17, 119, 0);\">body<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">\u6743\u9650\u4e0d\u8db3\uff0c\u65e0\u6cd5\u8bbf\u95ee<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">body<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span style=\"color: rgb(17, 119, 0);\">&lt;\/<\/span><span style=\"color: rgb(17, 119, 0);\">html<\/span><span style=\"color: rgb(17, 119, 0);\">&gt;<\/span><\/span><\/pre>\n<h2 cid=\"n135\" mdtype=\"heading\" style=\"break-after: avoid-page;break-inside: avoid;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">9.2 \u914d\u7f6e\u7c7b\u4e2d\u5f00\u542f\u81ea\u5b9a\u4e49403\u9875\u9762<\/span><\/h2>\n<pre spellcheck=\"false\" lang=\"java\" cid=\"n136\" mdtype=\"fences\" style=\"overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding-top: 8px;padding-right: 4px;padding-bottom: 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);letter-spacing: normal;\"><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(85, 85, 85);\">@Override<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">  <span style=\"color: rgb(119, 0, 136);\">protected<\/span> <span style=\"color: rgb(0, 136, 85);\">void<\/span> <span style=\"color: rgb(0, 0, 255);\">configure<\/span>(<span style=\"color: rgb(0, 0, 0);\">HttpSecurity<\/span> <span style=\"color: rgb(0, 0, 0);\">http<\/span>) <span style=\"color: rgb(119, 0, 136);\">throws<\/span> <span style=\"color: rgb(0, 0, 0);\">Exception<\/span> {<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span role=\"presentation\" cm-text=\"\t\" style=\"font-family: var(--monospace);display: inline-block;\">    <\/span><span role=\"presentation\" cm-text=\"\t\" style=\"font-family: var(--monospace);display: inline-block;\">    <\/span><span style=\"color: rgb(170, 85, 0);\">\/\/...\u5176\u4ed6\u4ee3\u7801...<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\"><span cm-text=\"\"><\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(170, 85, 0);\">\/\/\u81ea\u5b9a\u4e49403\u9875\u9762<\/span><\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">    <span style=\"color: rgb(0, 0, 0);\">http<\/span>.<span style=\"color: rgb(0, 0, 0);\">exceptionHandling<\/span>().<span style=\"color: rgb(0, 0, 0);\">accessDeniedPage<\/span>(<span style=\"color: rgb(170, 17, 17);\">\"\/403.html\"<\/span>);<\/span><span role=\"presentation\" style=\"padding-right: 0.1px;\">   }<\/span><\/pre>\n<p cid=\"n137\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u542f\u52a8\u670d\u52a1\uff0c\u6d4f\u89c8\u5668\u8bbf\u95ee\uff0c\u767b\u5f55\u65e0\u6743\u9650\u7528\u6237\u540e\u63d0\u793a<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" data-galleryid=\"\" data-imgfileid=\"100000528\" data-ratio=\"0.2958257713248639\" data-s=\"300,640\"  data-type=\"png\" data-w=\"551\" style=\"\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152558357.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\"  \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" data-galleryid=\"\" data-imgfileid=\"100000528\" data-ratio=\"0.2958257713248639\" data-s=\"300,640\"  data-type=\"png\" data-w=\"551\" style=\"\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152558357.png\"  \/><\/noscript><\/p>\n<p cid=\"n139\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u81f3\u6b64\uff0cSpring Boot\u6574\u5408Spring Security\u5b9e\u73b0\u7528\u6237\u8ba4\u8bc1\u548c\u6388\u6743\u57fa\u672c\u7528\u6cd5\u5df2\u8bb2\u89e3\u5b8c\u6bd5\uff0c\u4e14\u6d4b\u8bd5\u901a\u8fc7\u3002<\/span><\/p>\n<p cid=\"n150\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\">\n<hr style=\"box-sizing: content-box;height: 2px;margin-top: 16px;margin-bottom: 16px;border-width: 0px;border-style: none;border-color: initial;background-color: rgb(231, 231, 231);\"  \/>\n<p cid=\"n148\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">CSDN\uff1a<\/span><span md-inline=\"link\"><span md-inline=\"plain\">https:\/\/blog.csdn.net\/dkbnull\/article\/details\/136920791<\/span><\/span><\/p>\n<p cid=\"n153\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\"><span md-inline=\"plain\">\u77e5\u4e4e\uff1a<\/span><span md-inline=\"link\"><span md-inline=\"plain\">https:\/\/zhuanlan.zhihu.com\/p\/688341417<\/span><\/span><\/p>\n<hr style=\"box-sizing: content-box;height: 2px;margin-top: 16px;margin-bottom: 16px;border-width: 0px;border-style: none;border-color: initial;background-color: rgb(231, 231, 231);\"  \/>\n<p cid=\"n148\" mdtype=\"paragraph\" style=\"orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;\">\n<p style=\"display: none;\"><mp-style-type data-value=\"3\"><\/mp-style-type><\/p>\n<blockquote>\n<p>\u672c\u7bc7\u6587\u7ae0\u6765\u6e90\u4e8e\u5fae\u4fe1\u516c\u4f17\u53f7:                 \u7a0b\u5e8f\u5458null              <\/p>\n<\/blockquote>\n<\/div>\n","raw":"","protected":false},"excerpt":{"rendered":"<p>\u5982\u679c\u6587\u7ae0\u4e2d\u4ee3\u7801\u4e0d\u4fbf\u4e8e\u9605\u8bfb\uff0c\u8bf7\u4f7f\u7528\u7535\u8111\u67e5\u770b\u6216\u70b9\u51fb\u9605\u8bfb\u539f\u6587\u3002 Spring Security\u662f\u9488\u5bf9Spring\u9879\u76ee\u7684\u5b89\u5168\u6846\u67b6\uff0c\u4e5f\u662fSp &#8230;<\/p>\n","protected":false},"author":1,"featured_media":4290,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"emotion":"","emotion_color":"","title_style":"","license":"","footnotes":""},"categories":[7,44],"tags":[],"class_list":["post-4307","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spring-boot","category-spring-security"],"post_thumbnail_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152525689-150x150.jpeg","content_first_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152529353.png","post_medium_image_300":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152525689-300x127.jpeg","post_thumbnail_image_624":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152525689-1024x435.jpeg","post_frist_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152529353.png","post_medium_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152525689-300x127.jpeg","post_large_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152525689-1024x435.jpeg","post_full_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152525689.jpeg","post_all_images":[{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152529353.png","id":"image0"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152529353.png","id":"image1"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152531549.png","id":"image2"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152531549.png","id":"image3"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152534382.png","id":"image4"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152534382.png","id":"image5"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152536278.png","id":"image6"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152536278.png","id":"image7"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152538361.png","id":"image8"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152538361.png","id":"image9"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152541904.png","id":"image10"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152541904.png","id":"image11"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152543106.png","id":"image12"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152543106.png","id":"image13"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152545342.png","id":"image14"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152545342.png","id":"image15"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152547961.png","id":"image16"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152547961.png","id":"image17"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152549820.png","id":"image18"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152549820.png","id":"image19"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152551536.png","id":"image20"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152551536.png","id":"image21"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152553991.png","id":"image22"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152553991.png","id":"image23"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152556862.png","id":"image24"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152556862.png","id":"image25"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152558357.png","id":"image26"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524152558357.png","id":"image27"}],"videoAdId":"","listAd":"0","listAdId":"","listAdEvery":6,"total_comments":0,"category_name":"Spring Boot","post_date":"2024-03-21","like_count":"0","praiseWord":"\u9f13\u52b1","copyright_state":"","excitationAd":"0","rewardedVideoAdId":"","detailAdId":"","detailAd":"0","enterpriseMinapp":"0","audios":[],"postImageUrl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230519082947553.jpg","avatarurls":[],"related_posts":null,"pageviews":294,"next_post_id":4289,"next_post_title":"Spring Boot\u6574\u5408Redis","previous_post_id":4317,"previous_post_title":"Spring Boot\u6574\u5408MyBatis Plus\u914d\u7f6e\u591a\u6570\u636e\u6e90","_links":{"self":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/4307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/comments?post=4307"}],"version-history":[{"count":0,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/4307\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/media\/4290"}],"wp:attachment":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/media?parent=4307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/categories?post=4307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/tags?post=4307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}