<rp id="kjvfw"></rp>

      \n

      Hello, <\/h4>\n

      注銷登錄<\/a><\/h4>\n

      管理員頁面<\/a><\/h4>\n

      普通用戶頁面<\/a><\/h4>\n<\/body>\n<\/html><\/pre>

      (2)login.html<\/p>

      \n\n\n    \n    Title<\/title>\n<\/head>\n<body>
      <h1><a href="http://www.miracleart.cn/">国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂</a></h1>\n<div>\n    <form action=\"\/doLogin\" method=\"post\">\n        <input type=\"text\" name=\"username\"><br>\n        <input type=\"password\" name=\"password\"><br>\n        <div th:text=\"${error}\"><\/div>\n        <input type=\"submit\" value=\"登錄\">\n    <\/form>\n<\/div>\n<\/body>\n<\/html><\/pre><p>(3)user.html<\/p><pre class='brush:php;toolbar:false;'><!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <title>Title<\/title>\n<\/head>\n<body>\n<h2>普通用戶頁面<\/h2>\n<\/body>\n<\/html><\/pre><p>(4)admin.html<\/p><pre class='brush:php;toolbar:false;'><!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <title>Title<\/title>\n<\/head>\n<body>\n<h2>管理員頁面<\/h2>\n<\/body>\n<\/html><\/pre><p>(5)unauthorized.html<\/p><pre class='brush:php;toolbar:false;'><!DOCTYPE html>\n<html lang=\"en\" xmlns:th=\"http:\/\/www.thymeleaf.org\">\n<head>\n    <meta charset=\"UTF-8\">\n    <title>Title<\/title>\n<\/head>\n<body>\n<div>\n    <h4>未獲授權(quán),非法訪問<\/h4>\n    <h4 th:text=\"${error}\"><\/h4>\n<\/div>\n<\/body>\n<\/html><\/pre><h4>3. 測試<\/h4>\n<p>啟動(dòng)項(xiàng)目,訪問登錄頁面,使用 sang\/123 登錄<\/p>\n<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/164\/168371214980474.png\" alt=\"SpringBoot安全管理之Shiro框架怎么使用\"><\/p>\n<p>注意:由于 sang 用戶不具備 admin 角色,因此登錄成功后的頁面沒有前往管理員頁面的超鏈接。<\/p>\n<p>然后使用 admin\/123 登錄。<\/p>\n<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/164\/168371214971173.png\" alt=\"SpringBoot安全管理之Shiro框架怎么使用\"><\/p>\n<p>如果用戶使用 sang 登錄,然后去訪問:http:\/\/localhost:8080\/admin,會(huì)跳轉(zhuǎn)到未授權(quán)頁面<\/p>\n<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/164\/168371215063096.png\" alt=\"SpringBoot安全管理之Shiro框架怎么使用\"><\/p>"}	</script>
      	
      <meta http-equiv="Cache-Control" content="no-transform" />
      <meta http-equiv="Cache-Control" content="no-siteapp" />
      <script>var V_PATH="/";window.onerror=function(){ return true; };</script>
      </head>
      
      <body data-commit-time="2023-12-28T14:50:12+08:00" class="editor_body body2_2">
      	<link rel="stylesheet" type="text/css" href="/static/csshw/stylehw.css">
      <header>
          <div   id="377j5v51b"   class="head">
              <div   id="377j5v51b"   class="haed_left">
                  <div   id="377j5v51b"   class="haed_logo">
                      <a href="http://www.miracleart.cn/zh/" title="" class="haed_logo_a">
                          <img src="/static/imghw/logo.png" alt="" class="haed_logoimg">
                      </a>
                  </div>
                  <div   id="377j5v51b"   class="head_nav">
                      <div   id="377j5v51b"   class="head_navs">
                          <a href="javascript:;" title="社區(qū)" class="head_nava head_nava-template1">社區(qū)</a>
                          <div   class="377j5v51b"   id="dropdown-template1" style="display: none;">
                              <div   id="377j5v51b"   class="languagechoose">
                                  <a href="http://www.miracleart.cn/zh/article.html" title="文章" class="languagechoosea on">文章</a>
                                  <a href="http://www.miracleart.cn/zh/faq/zt" title="合集" class="languagechoosea">合集</a>
                                  <a href="http://www.miracleart.cn/zh/wenda.html" title="問答" class="languagechoosea">問答</a>
                              </div>
                          </div>
                      </div>
      
                      <div   id="377j5v51b"   class="head_navs">
                          <a href="javascript:;" title="學(xué)習(xí)" class="head_nava head_nava-template1_1">學(xué)習(xí)</a>
                          <div   class="377j5v51b"   id="dropdown-template1_1" style="display: none;">
                              <div   id="377j5v51b"   class="languagechoose">
                                  <a href="http://www.miracleart.cn/zh/course.html" title="課程" class="languagechoosea on">課程</a>
                                  <a href="http://www.miracleart.cn/zh/dic/" title="編程詞典" class="languagechoosea">編程詞典</a>
                              </div>
                          </div>
                      </div>
      
                      <div   id="377j5v51b"   class="head_navs">
                          <a href="javascript:;" title="工具庫" class="head_nava head_nava-template1_2">工具庫</a>
                          <div   class="377j5v51b"   id="dropdown-template1_2" style="display: none;">
                              <div   id="377j5v51b"   class="languagechoose">
                                  <a href="http://www.miracleart.cn/zh/toolset/development-tools" title="開發(fā)工具" class="languagechoosea on">開發(fā)工具</a>
                                  <a href="http://www.miracleart.cn/zh/toolset/website-source-code" title="網(wǎng)站源碼" class="languagechoosea">網(wǎng)站源碼</a>
                                  <a href="http://www.miracleart.cn/zh/toolset/php-libraries" title="PHP 庫" class="languagechoosea">PHP 庫</a>
                                  <a href="http://www.miracleart.cn/zh/toolset/js-special-effects" title="JS特效" class="languagechoosea on">JS特效</a>
                                  <a href="http://www.miracleart.cn/zh/toolset/website-materials" title="網(wǎng)站素材" class="languagechoosea on">網(wǎng)站素材</a>
                                  <a href="http://www.miracleart.cn/zh/toolset/extension-plug-ins" title="擴(kuò)展插件" class="languagechoosea on">擴(kuò)展插件</a>
                              </div>
                          </div>
                      </div>
      
                      <div   id="377j5v51b"   class="head_navs">
                          <a href="http://www.miracleart.cn/zh/ai" title="AI工具" class="head_nava head_nava-template1_3">AI工具</a>
                      </div>
      
                      <div   id="377j5v51b"   class="head_navs">
                          <a href="javascript:;" title="休閑" class="head_nava head_nava-template1_3">休閑</a>
                          <div   class="377j5v51b"   id="dropdown-template1_3" style="display: none;">
                              <div   id="377j5v51b"   class="languagechoose">
                                  <a href="http://www.miracleart.cn/zh/game" title="游戲下載" class="languagechoosea on">游戲下載</a>
                                  <a href="http://www.miracleart.cn/zh/mobile-game-tutorial/" title="游戲教程" class="languagechoosea">游戲教程</a>
      
                              </div>
                          </div>
                      </div>
                  </div>
              </div>
                          <div   id="377j5v51b"   class="head_search">
                      <input id="key_words"  onkeydown="if (event.keyCode == 13) searchs('zh')" class="search-input" type="text" autocomplete="off" name="keywords" required="required" placeholder="Block,address,transaction,news" value="">
                      <a href="javascript:;" title="搜索"  onclick="searchs('zh')"><img src="/static/imghw/find.png" alt="搜索"></a>
                  </div>
                      <div   id="377j5v51b"   class="head_right">
                  <div   id="377j5v51b"   class="haed_language">
                      <a href="javascript:;" class="layui-btn haed_language_btn">簡體中文<i class="layui-icon layui-icon-triangle-d"></i></a>
                      <div   class="377j5v51b"   id="dropdown-template" style="display: none;">
                          <div   id="377j5v51b"   class="languagechoose">
                                                      <a href="javascript:;" title="簡體中文" class="languagechoosea">簡體中文</a>
                                                      <a href="javascript:setlang('en');" title="English" class="languagechoosea">English</a>
                                                      <a href="javascript:setlang('zh-tw');" title="繁體中文" class="languagechoosea">繁體中文</a>
                                                      <a href="javascript:setlang('ja');" title="日本語" class="languagechoosea">日本語</a>
                                                      <a href="javascript:setlang('ko');" title="???" class="languagechoosea">???</a>
                                                      <a href="javascript:setlang('ms');" title="Melayu" class="languagechoosea">Melayu</a>
                                                      <a href="javascript:setlang('fr');" title="Fran?ais" class="languagechoosea">Fran?ais</a>
                                                      <a href="javascript:setlang('de');" title="Deutsch" class="languagechoosea">Deutsch</a>
                                                  </div>
                      </div>
                  </div>
                  <span id="377j5v51b"    class="head_right_line"></span>
                                  <div style="display: block;" id="login" class="haed_login ">
                          <a href="javascript:;"  title="Login" class="haed_logina ">Login</a>
                      </div>
                      <div style="display: block;" id="reg" class="head_signup login">
                          <a href="javascript:;"  title="singup" class="head_signupa">singup</a>
                      </div>
                  
              </div>
          </div>
      </header>
      
      	
      	<main>
      		<div   id="377j5v51b"   class="Article_Details_main">
      			<div   id="377j5v51b"   class="Article_Details_main1">
      							<div   id="377j5v51b"   class="Article_Details_main1L">
      					<div   id="377j5v51b"   class="Article_Details_main1Lmain" id="Article_Details_main1Lmain">
      						<div   id="377j5v51b"   class="Article_Details_main1L1">目錄</div>
      						<div   id="377j5v51b"   class="Article_Details_main1L2" id="Article_Details_main1L2">
      							<!-- 左側(cè)懸浮,文章定位標(biāo)題1 id="Article_Details_main1L2s_1"-->
      															<div   id="377j5v51b"   class="Article_Details_main1L2s ">
      									<a href="#Shiro-簡介" title="Shiro 簡介" >Shiro 簡介</a>
      								</div>
      																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
      									<a href="#整合-Shiro" title="整合 Shiro" >整合 Shiro</a>
      								</div>
      																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
      									<a href="#創(chuàng)建項(xiàng)目" title="1. 創(chuàng)建項(xiàng)目" >1. 創(chuàng)建項(xiàng)目</a>
      								</div>
      																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
      									<a href="#Shiro基本配置" title="2. Shiro基本配置" >2. Shiro基本配置</a>
      								</div>
      																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
      									<a href="#測試" title="3. 測試" >3. 測試</a>
      								</div>
      														</div>
      					</div>
      				</div>
      							<div   id="377j5v51b"   class="Article_Details_main1M">
      					<div   id="377j5v51b"   class="phpgenera_Details_mainL1">
      						<a href="http://www.miracleart.cn/zh/" title="首頁"
      							class="phpgenera_Details_mainL1a">首頁</a>
      						<img src="/static/imghw/top_right.png" alt="" />
      												<a href="http://www.miracleart.cn/zh/java/"
      							class="phpgenera_Details_mainL1a">Java</a>
      						<img src="/static/imghw/top_right.png" alt="" />
      												<a href="http://www.miracleart.cn/zh/java-article.html"
      							class="phpgenera_Details_mainL1a">java教程</a>
      						<img src="/static/imghw/top_right.png" alt="" />
      						<span>SpringBoot安全管理之Shiro框架怎么使用</span>
      					</div>
      					
      					<div   id="377j5v51b"   class="Articlelist_txts">
      						<div   id="377j5v51b"   class="Articlelist_txts_info">
      							<h1 class="Articlelist_txts_title">SpringBoot安全管理之Shiro框架怎么使用</h1>
      							<div   id="377j5v51b"   class="Articlelist_txts_info_head">
      								<div   id="377j5v51b"   class="author_info">
      									<a href="http://www.miracleart.cn/zh/member/164.html"  class="author_avatar">
      									<img class="lazy"  data-src="https://img.php.cn/upload/avatar/000/000/164/59190898474f6485.png" src="/static/imghw/default1.png" alt="PHPz">
      									</a>
      									<div   id="377j5v51b"   class="author_detail">
      																			<a href="http://www.miracleart.cn/zh/member/164.html" class="author_name">PHPz</a>
                                      										</div>
      								</div>
                      			</div>
      							<span id="377j5v51b"    class="Articlelist_txts_time">May 10, 2023 pm	 05:49 PM</span>
      															<div   id="377j5v51b"   class="Articlelist_txts_infos">
      																			<span id="377j5v51b"    class="Articlelist_txts_infoss on">springboot</span>
      																			<span id="377j5v51b"    class="Articlelist_txts_infoss ">shiro</span>
      																	</div>
      														
      						</div>
      					</div>
      					<hr />
      					<div   id="377j5v51b"   class="article_main php-article">
      						<div   id="377j5v51b"   class="article-list-left detail-content-wrap content">
      						<ins class="adsbygoogle"
      							style="display:block; text-align:center;"
      							data-ad-layout="in-article"
      							data-ad-format="fluid"
      							data-ad-client="ca-pub-5902227090019525"
      							data-ad-slot="3461856641">
      						</ins>
      						
      
      					<h3 id="Shiro-簡介">Shiro 簡介</h3>
      <p>Apache Shiro 是一個(gè)開源的輕量級的 Java 安全框架,它提供身份驗(yàn)證、授權(quán)、密碼管理以及會(huì)話管理等功能。相對于 Spring Security ,Shiro 框架更加直觀、易用,同時(shí)也能提供健壯的安全性。</p>
      <p>在傳統(tǒng)的 SSM 框架中,手動(dòng)整合 Shiro 的配置步驟還是比較多的,針對 Spring Boot ,Shiro 官方提供了 shiro-spring-boot-web-starter 用來簡化 Shiro 在 Spring Boot 中的配置。</p>
      <h3 id="整合-Shiro">整合 Shiro</h3>
      <h4 id="創(chuàng)建項(xiàng)目">1. 創(chuàng)建項(xiàng)目</h4>
      <p>首先創(chuàng)建一個(gè)普通的 Spring Boot Web 項(xiàng)目,添加 Shiro 依賴以及頁面模板依賴</p><pre class='brush:php;toolbar:false;'><dependency>
        <groupId>org.apache.shiro</groupId>
        <artifactId>shiro-spring-boot-web-starter</artifactId>
        <version>1.4.0</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
      </dependency>
      <dependency>
        <groupId>com.github.theborakompanioni</groupId>
        <artifactId>thymeleaf-extras-shiro</artifactId>
        <version>2.0.0</version>
      </dependency></pre><p>這里不需要添加 spring-boot-starter-web 依賴,shiro-spring-boot-web-starter 中已經(jīng)依賴了 spring-boot-starter-web 。同時(shí),此處使用 Thymeleaf 模板,為了在 Thymeleaf 使用 shiro 標(biāo)簽,加入了 thymeleaf-extras-shiro 依賴。</p><h4 id="Shiro基本配置">2. Shiro基本配置</h4><p>在 application.properties 中配置 Shiro 的基本信息</p><blockquote><p># 開啟 Shiro 配置,默認(rèn)為 true<br/>shiro.enabled=true<br/># 開啟 Shiro Web 配置,默認(rèn)為 true<br/>shiro.web.enabled=true<br/># 配置登錄地址,默認(rèn)為 /login.jsp<br/>shiro.loginUrl=/login<br/># 配置登錄成功的地址,默認(rèn)為 /<br/>shiro.successUrl=/index<br/># 未獲授權(quán)默認(rèn)跳轉(zhuǎn)地址<br/>shiro.unauthorizedUrl=/unauthorized<br/># 是否允許通過 URL 參數(shù)實(shí)現(xiàn)會(huì)話跟蹤,如果網(wǎng)站支持 Cookie,可以關(guān)閉此選項(xiàng),默認(rèn)為 true<br/>shiro.sessionManager.sessionIdUrlRewritingEnabled=true<br/># 是否允許通過 Cookie 實(shí)現(xiàn)會(huì)話跟蹤,默認(rèn)為 true<br/>shiro.sessionManager.sessionIdCookieEnabled=true</p></blockquote><p>然后在 Java 代碼中配置 Shiro ,提供兩個(gè)最基本的 Bean 即可</p><pre class='brush:php;toolbar:false;'>@Configuration
      public class ShiroConfig {
          @Bean
          public Realm realm() {
              TextConfigurationRealm realm = new TextConfigurationRealm();
              realm.setUserDefinitions("sang=123,user\n admin=123,admin");
              realm.setRoleDefinitions("admin=read,write\n user=read");
              return realm;
          }
          @Bean
          public ShiroFilterChainDefinition shiroFilterChainDefinition() {
              DefaultShiroFilterChainDefinition chainDefinition =
                      new DefaultShiroFilterChainDefinition();
              chainDefinition.addPathDefinition("/login", "anon");
              chainDefinition.addPathDefinition("/doLogin", "anon");
              chainDefinition.addPathDefinition("/logout", "logout");
              chainDefinition.addPathDefinition("/**", "authc");
              return chainDefinition;
          }
          @Bean
          public ShiroDialect shiroDialect() {
              return new ShiroDialect();
          }
      }</pre><p>代碼解釋:</p><ul class=" list-paddingleft-2"><li><p>這里提供兩個(gè)關(guān)鍵的 Bean ,一個(gè)是 Realm,另一個(gè)是 ShiroFilterChainDefinition 。至于 ShiroDialect 則是為了支持在 Thymeleaf 中使用 Shiro 標(biāo)簽,如果不在 Thymeleaf 中使用 Shiro 標(biāo)簽,那么可以不提供 ShiroDialect</p></li><li><p>Realm 可以是自定義的 Realm,也可以是 Shiro 提供的 Realm,簡單起見,此處沒有配置數(shù)據(jù)庫連接,直接配置了兩個(gè)用戶:sang/123 和 admin/123 ,分別對應(yīng)角色 user 和 admin。</p></li><li><p>ShiroFilterChainDefinition Bean 中配置了基本的過濾規(guī)則 ,“/login” 和 “/doLogin”,可以匿名訪問,“/logout”是一個(gè)注銷登錄請求,其余請求則都需要認(rèn)證后才能訪問</p></li></ul><p>然后配置登錄接口以及頁面訪問接口</p><pre class='brush:php;toolbar:false;'>@Controller
      public class UserController {
          @PostMapping("/doLogin")
          public String doLogin(String username, String password, Model model) {
              UsernamePasswordToken token = new UsernamePasswordToken(username, password);
              Subject subject = SecurityUtils.getSubject();
              try {
                  subject.login(token);
              } catch (AuthenticationException e) {
                  model.addAttribute("error", "用戶名或密碼輸入錯(cuò)誤!");
                  return "login";
              }
              return "redirect:/index";
          }
          @RequiresRoles("admin")
          @GetMapping("/admin")
          public String admin() {
              return "admin";
          }
          @RequiresRoles(value = {"admin", "user"}, logical = Logical.OR)
          @GetMapping("/user")
          public String user() {
              return "user";
          }
      }</pre><p>代碼解釋:</p><ul class=" list-paddingleft-2"><li><p>在 doLogin 方法中,首先構(gòu)建一個(gè) UsernamePasswordToken 實(shí)例,然后獲取一個(gè) Subject 對象并調(diào)用該對象中的 login 方法執(zhí)行登錄操作,在登錄操作執(zhí)行過程中,當(dāng)有異常拋出時(shí),說明登錄失敗,攜帶錯(cuò)誤信息返回登錄視圖;當(dāng)?shù)卿洺晒r(shí),則重定向到“/index”</p></li><li><p>接下來暴露兩個(gè)接口“/admin”和“/user”,對于“/admin”接口,需要具有 admin 角色才可以訪問;對于“/user”接口,具備 admin 角色 和 user角色其中任意一個(gè)即可訪問</p></li></ul><p>對于其他不需要角色就能訪問的接口,直接在 WebMvc 中配置即可</p><pre class='brush:php;toolbar:false;'>@Configuration
      public class WebMvcConfig implements WebMvcConfigurer{
          @Override
          public void addViewControllers(ViewControllerRegistry registry) {
              registry.addViewController("/login").setViewName("login");
              registry.addViewController("/index").setViewName("index");
              registry.addViewController("/unauthorized").setViewName("unauthorized");
          }
      }</pre><p>接下來創(chuàng)建全局異常處理器進(jìn)行全局異常處理,此處主要是處理授權(quán)異常</p><pre class='brush:php;toolbar:false;'>@ControllerAdvice
      public class ExceptionController {
          @ExceptionHandler(AuthorizationException.class)
          public ModelAndView error(AuthorizationException e) {
              ModelAndView mv = new ModelAndView("unauthorized");
              mv.addObject("error", e.getMessage());
              return mv;
          }
      }</pre><p>當(dāng)用戶訪問未授權(quán)的資源時(shí),跳轉(zhuǎn)到 unauthorized 視圖中,并攜帶出錯(cuò)誤信息。</p><p>配置完成后,最后在 resources/templates 目錄下創(chuàng)建 5 個(gè) HTML 頁面進(jìn)行測試。</p><p>(1)index.html</p><pre class='brush:php;toolbar:false;'><!DOCTYPE html>
      <html lang="en" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
      <h4>Hello, <shiro:principal/></h4>
      <h4><a href="/logout" rel="external nofollow" >注銷登錄</a></h4>
      <h4><a shiro:hasRole="admin" href="/admin" rel="external nofollow" >管理員頁面</a></h4>
      <h4><a shiro:hasAnyRoles="admin,user" href="/user" rel="external nofollow" >普通用戶頁面</a></h4>
      </body>
      </html></pre><p>(2)login.html</p><pre class='brush:php;toolbar:false;'><!DOCTYPE html>
      <html lang="en" xmlns:th="http://www.thymeleaf.org">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
      <div>
          <form action="/doLogin" method="post">
              <input type="text" name="username"><br>
              <input type="password" name="password"><br>
              <div th:text="${error}"></div>
              <input type="submit" value="登錄">
          </form>
      </div>
      </body>
      </html></pre><p>(3)user.html</p><pre class='brush:php;toolbar:false;'><!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
      <h2>普通用戶頁面</h2>
      </body>
      </html></pre><p>(4)admin.html</p><pre class='brush:php;toolbar:false;'><!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
      <h2>管理員頁面</h2>
      </body>
      </html></pre><p>(5)unauthorized.html</p><pre class='brush:php;toolbar:false;'><!DOCTYPE html>
      <html lang="en" xmlns:th="http://www.thymeleaf.org">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
      <div>
          <h4>未獲授權(quán),非法訪問</h4>
          <h4 th:text="${error}"></h4>
      </div>
      </body>
      </html></pre><h4 id="測試">3. 測試</h4>
      <p>啟動(dòng)項(xiàng)目,訪問登錄頁面,使用 sang/123 登錄</p>
      <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/164/168371214980474.png" class="lazy" alt="SpringBoot安全管理之Shiro框架怎么使用"></p>
      <p>注意:由于 sang 用戶不具備 admin 角色,因此登錄成功后的頁面沒有前往管理員頁面的超鏈接。</p>
      <p>然后使用 admin/123 登錄。</p>
      <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/164/168371214971173.png" class="lazy" alt="SpringBoot安全管理之Shiro框架怎么使用"></p>
      <p>如果用戶使用 sang 登錄,然后去訪問:http://localhost:8080/admin,會(huì)跳轉(zhuǎn)到未授權(quán)頁面</p>
      <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/164/168371215063096.png" class="lazy" alt="SpringBoot安全管理之Shiro框架怎么使用"></p><p>以上是SpringBoot安全管理之Shiro框架怎么使用的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!</p>
      
      
      						</div>
      					</div>
      					<div   id="377j5v51b"   class="wzconShengming_sp">
      						<div   id="377j5v51b"   class="bzsmdiv_sp">本站聲明</div>
      						<div>本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn</div>
      					</div>
      				</div>
      
      				<ins class="adsbygoogle"
           style="display:block"
           data-ad-format="autorelaxed"
           data-ad-client="ca-pub-5902227090019525"
           data-ad-slot="2507867629"></ins>
      
      
      
      				<div   id="377j5v51b"   class="AI_ToolDetails_main4sR">
      
      
      				<ins class="adsbygoogle"
              style="display:block"
              data-ad-client="ca-pub-5902227090019525"
              data-ad-slot="3653428331"
              data-ad-format="auto"
              data-full-width-responsive="true"></ins>
          
      
      
      					<!-- <div   id="377j5v51b"   class="phpgenera_Details_mainR4">
      						<div   id="377j5v51b"   class="phpmain1_4R_readrank">
      							<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
      								<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      									onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      									src="/static/imghw/hotarticle2.png" alt="" />
      								<h2>熱門文章</h2>
      							</div>
      							<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottom">
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/1796821119.html" title="指南:恒星刀片保存文件位置/保存文件丟失/不保存" class="phpgenera_Details_mainR4_bottom_title">指南:恒星刀片保存文件位置/保存文件丟失/不保存</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<span>4 周前</span>
      										<span>By DDD</span>
      									</div>
      								</div>
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/1796827210.html" title="Oguri Cap Build Guide |漂亮的德比志" class="phpgenera_Details_mainR4_bottom_title">Oguri Cap Build Guide |漂亮的德比志</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<span>2 周前</span>
      										<span>By Jack chen</span>
      									</div>
      								</div>
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/1796828723.html" title="Agnes Tachyon Build Guide |漂亮的德比志" class="phpgenera_Details_mainR4_bottom_title">Agnes Tachyon Build Guide |漂亮的德比志</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<span>1 周前</span>
      										<span>By Jack chen</span>
      									</div>
      								</div>
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/1796821436.html" title="沙丘:覺醒 - 高級行星學(xué)家Quest演練" class="phpgenera_Details_mainR4_bottom_title">沙丘:覺醒 - 高級行星學(xué)家Quest演練</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<span>4 周前</span>
      										<span>By Jack chen</span>
      									</div>
      								</div>
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/1796821278.html" title="約會(huì)一切:德克和哈珀關(guān)系指南" class="phpgenera_Details_mainR4_bottom_title">約會(huì)一切:德克和哈珀關(guān)系指南</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<span>4 周前</span>
      										<span>By Jack chen</span>
      									</div>
      								</div>
      														</div>
      							<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
      								<a href="http://www.miracleart.cn/zh/article.html">顯示更多</a>
      							</div>
      						</div>
      					</div> -->
      
      
      											<div   id="377j5v51b"   class="phpgenera_Details_mainR3">
      							<div   id="377j5v51b"   class="phpmain1_4R_readrank">
      								<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
      									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      										onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      										src="/static/imghw/hottools2.png" alt="" />
      									<h2>熱AI工具</h2>
      								</div>
      								<div   id="377j5v51b"   class="phpgenera_Details_mainR3_bottom">
      																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
      											<a href="http://www.miracleart.cn/zh/ai/undress-ai-tool" title="Undress AI Tool" class="phpmain_tab2_mids_top_img">
      												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173410641626608.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Undress AI Tool" />
      											</a>
      											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
      												<a href="http://www.miracleart.cn/zh/ai/undress-ai-tool" title="Undress AI Tool" class="phpmain_tab2_mids_title">
      													<h3>Undress AI Tool</h3>
      												</a>
      												<p>免費(fèi)脫衣服圖片</p>
      											</div>
      										</div>
      																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
      											<a href="http://www.miracleart.cn/zh/ai/undresserai-undress" title="Undresser.AI Undress" class="phpmain_tab2_mids_top_img">
      												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173411540686492.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Undresser.AI Undress" />
      											</a>
      											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
      												<a href="http://www.miracleart.cn/zh/ai/undresserai-undress" title="Undresser.AI Undress" class="phpmain_tab2_mids_title">
      													<h3>Undresser.AI Undress</h3>
      												</a>
      												<p>人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片</p>
      											</div>
      										</div>
      																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
      											<a href="http://www.miracleart.cn/zh/ai/ai-clothes-remover" title="AI Clothes Remover" class="phpmain_tab2_mids_top_img">
      												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173411552797167.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="AI Clothes Remover" />
      											</a>
      											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
      												<a href="http://www.miracleart.cn/zh/ai/ai-clothes-remover" title="AI Clothes Remover" class="phpmain_tab2_mids_title">
      													<h3>AI Clothes Remover</h3>
      												</a>
      												<p>用于從照片中去除衣服的在線人工智能工具。</p>
      											</div>
      										</div>
      																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
      											<a href="http://www.miracleart.cn/zh/ai/clothoffio" title="Clothoff.io" class="phpmain_tab2_mids_top_img">
      												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173411529149311.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Clothoff.io" />
      											</a>
      											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
      												<a href="http://www.miracleart.cn/zh/ai/clothoffio" title="Clothoff.io" class="phpmain_tab2_mids_title">
      													<h3>Clothoff.io</h3>
      												</a>
      												<p>AI脫衣機(jī)</p>
      											</div>
      										</div>
      																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
      											<a href="http://www.miracleart.cn/zh/ai/video-swap" title="Video Face Swap" class="phpmain_tab2_mids_top_img">
      												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173414504068133.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Video Face Swap" />
      											</a>
      											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
      												<a href="http://www.miracleart.cn/zh/ai/video-swap" title="Video Face Swap" class="phpmain_tab2_mids_title">
      													<h3>Video Face Swap</h3>
      												</a>
      												<p>使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!</p>
      											</div>
      										</div>
      																</div>
      								<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
      									<a href="http://www.miracleart.cn/zh/ai">顯示更多</a>
      								</div>
      							</div>
      						</div>
      					
      
      
      					<div   id="377j5v51b"   class="phpgenera_Details_mainR4">
      						<div   id="377j5v51b"   class="phpmain1_4R_readrank">
      							<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
      								<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      									onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      									src="/static/imghw/hotarticle2.png" alt="" />
      								<h2>熱門文章</h2>
      							</div>
      							<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottom">
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/1796821119.html" title="指南:恒星刀片保存文件位置/保存文件丟失/不保存" class="phpgenera_Details_mainR4_bottom_title">指南:恒星刀片保存文件位置/保存文件丟失/不保存</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<span>4 周前</span>
      										<span>By DDD</span>
      									</div>
      								</div>
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/1796827210.html" title="Oguri Cap Build Guide |漂亮的德比志" class="phpgenera_Details_mainR4_bottom_title">Oguri Cap Build Guide |漂亮的德比志</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<span>2 周前</span>
      										<span>By Jack chen</span>
      									</div>
      								</div>
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/1796828723.html" title="Agnes Tachyon Build Guide |漂亮的德比志" class="phpgenera_Details_mainR4_bottom_title">Agnes Tachyon Build Guide |漂亮的德比志</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<span>1 周前</span>
      										<span>By Jack chen</span>
      									</div>
      								</div>
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/1796821436.html" title="沙丘:覺醒 - 高級行星學(xué)家Quest演練" class="phpgenera_Details_mainR4_bottom_title">沙丘:覺醒 - 高級行星學(xué)家Quest演練</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<span>4 周前</span>
      										<span>By Jack chen</span>
      									</div>
      								</div>
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/1796821278.html" title="約會(huì)一切:德克和哈珀關(guān)系指南" class="phpgenera_Details_mainR4_bottom_title">約會(huì)一切:德克和哈珀關(guān)系指南</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<span>4 周前</span>
      										<span>By Jack chen</span>
      									</div>
      								</div>
      														</div>
      							<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
      								<a href="http://www.miracleart.cn/zh/article.html">顯示更多</a>
      							</div>
      						</div>
      					</div>
      
      
      											<div   id="377j5v51b"   class="phpgenera_Details_mainR3">
      							<div   id="377j5v51b"   class="phpmain1_4R_readrank">
      								<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
      									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      										onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      										src="/static/imghw/hottools2.png" alt="" />
      									<h2>熱工具</h2>
      								</div>
      								<div   id="377j5v51b"   class="phpgenera_Details_mainR3_bottom">
      																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
      											<a href="http://www.miracleart.cn/zh/toolset/development-tools/92" title="記事本++7.3.1" class="phpmain_tab2_mids_top_img">
      												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58ab96f0f39f7357.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="記事本++7.3.1" />
      											</a>
      											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
      												<a href="http://www.miracleart.cn/zh/toolset/development-tools/92" title="記事本++7.3.1" class="phpmain_tab2_mids_title">
      													<h3>記事本++7.3.1</h3>
      												</a>
      												<p>好用且免費(fèi)的代碼編輯器</p>
      											</div>
      										</div>
      																			<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
      											<a href="http://www.miracleart.cn/zh/toolset/development-tools/93" title="SublimeText3漢化版" class="phpmain_tab2_mids_top_img">
      												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58ab97a3baad9677.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="SublimeText3漢化版" />
      											</a>
      											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
      												<a href="http://www.miracleart.cn/zh/toolset/development-tools/93" title="SublimeText3漢化版" class="phpmain_tab2_mids_title">
      													<h3>SublimeText3漢化版</h3>
      												</a>
      												<p>中文版,非常好用</p>
      											</div>
      										</div>
      																			<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
      											<a href="http://www.miracleart.cn/zh/toolset/development-tools/121" title="禪工作室 13.0.1" class="phpmain_tab2_mids_top_img">
      												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58ab97ecd1ab2670.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="禪工作室 13.0.1" />
      											</a>
      											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
      												<a href="http://www.miracleart.cn/zh/toolset/development-tools/121" title="禪工作室 13.0.1" class="phpmain_tab2_mids_title">
      													<h3>禪工作室 13.0.1</h3>
      												</a>
      												<p>功能強(qiáng)大的PHP集成開發(fā)環(huán)境</p>
      											</div>
      										</div>
      																			<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
      											<a href="http://www.miracleart.cn/zh/toolset/development-tools/469" title="Dreamweaver CS6" class="phpmain_tab2_mids_top_img">
      												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58d0e0fc74683535.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="Dreamweaver CS6" />
      											</a>
      											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
      												<a href="http://www.miracleart.cn/zh/toolset/development-tools/469" title="Dreamweaver CS6" class="phpmain_tab2_mids_title">
      													<h3>Dreamweaver CS6</h3>
      												</a>
      												<p>視覺化網(wǎng)頁開發(fā)工具</p>
      											</div>
      										</div>
      																			<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
      											<a href="http://www.miracleart.cn/zh/toolset/development-tools/500" title="SublimeText3 Mac版" class="phpmain_tab2_mids_top_img">
      												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58d34035e2757995.png?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="SublimeText3 Mac版" />
      											</a>
      											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
      												<a href="http://www.miracleart.cn/zh/toolset/development-tools/500" title="SublimeText3 Mac版" class="phpmain_tab2_mids_title">
      													<h3>SublimeText3 Mac版</h3>
      												</a>
      												<p>神級代碼編輯軟件(SublimeText3)</p>
      											</div>
      										</div>
      																	</div>
      								<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
      									<a href="http://www.miracleart.cn/zh/ai">顯示更多</a>
      								</div>
      							</div>
      						</div>
      										
      
      					
      					<div   id="377j5v51b"   class="phpgenera_Details_mainR4">
      						<div   id="377j5v51b"   class="phpmain1_4R_readrank">
      							<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
      								<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      									onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      									src="/static/imghw/hotarticle2.png" alt="" />
      								<h2>熱門話題</h2>
      							</div>
      							<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottom">
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/gmailyxdlrkzn" title="gmail郵箱登陸入口在哪里" class="phpgenera_Details_mainR4_bottom_title">gmail郵箱登陸入口在哪里</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
      											<img src="/static/imghw/eyess.png" alt="" />
      											<span>8638</span>
      										</div>
      										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
      											<img src="/static/imghw/tiezi.png" alt="" />
      											<span>17</span>
      										</div>
      									</div>
      								</div>
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/java-tutorial" title="Java教程" class="phpgenera_Details_mainR4_bottom_title">Java教程</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
      											<img src="/static/imghw/eyess.png" alt="" />
      											<span>1783</span>
      										</div>
      										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
      											<img src="/static/imghw/tiezi.png" alt="" />
      											<span>16</span>
      										</div>
      									</div>
      								</div>
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/cakephp-tutor" title="CakePHP 教程" class="phpgenera_Details_mainR4_bottom_title">CakePHP 教程</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
      											<img src="/static/imghw/eyess.png" alt="" />
      											<span>1728</span>
      										</div>
      										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
      											<img src="/static/imghw/tiezi.png" alt="" />
      											<span>56</span>
      										</div>
      									</div>
      								</div>
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/laravel-tutori" title="Laravel 教程" class="phpgenera_Details_mainR4_bottom_title">Laravel 教程</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
      											<img src="/static/imghw/eyess.png" alt="" />
      											<span>1579</span>
      										</div>
      										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
      											<img src="/static/imghw/tiezi.png" alt="" />
      											<span>28</span>
      										</div>
      									</div>
      								</div>
      															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
      									<a href="http://www.miracleart.cn/zh/faq/php-tutorial" title="PHP教程" class="phpgenera_Details_mainR4_bottom_title">PHP教程</a>
      									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
      										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
      											<img src="/static/imghw/eyess.png" alt="" />
      											<span>1443</span>
      										</div>
      										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
      											<img src="/static/imghw/tiezi.png" alt="" />
      											<span>31</span>
      										</div>
      									</div>
      								</div>
      														</div>
      							<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
      								<a href="http://www.miracleart.cn/zh/faq/zt">顯示更多</a>
      							</div>
      						</div>
      					</div>
      				</div>
      			</div>
      							<div   id="377j5v51b"   class="Article_Details_main2">
      					<div   id="377j5v51b"   class="phpgenera_Details_mainL4">
      						<div   id="377j5v51b"   class="phpmain1_2_top">
      							<a href="javascript:void(0);" class="phpmain1_2_top_title">Related knowledge<img
      									src="/static/imghw/index2_title2.png" alt="" /></a>
      						</div>
      						<div   id="377j5v51b"   class="phpgenera_Details_mainL4_info">
      
      													<div   id="377j5v51b"   class="phphistorical_Version2_mids">
      								<a href="http://www.miracleart.cn/zh/faq/553384.html" title="Springboot怎么集成Jasypt實(shí)現(xiàn)配置文件加密" class="phphistorical_Version2_mids_img">
      									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/000/887/227/168558094759392.png?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Springboot怎么集成Jasypt實(shí)現(xiàn)配置文件加密" />
      								</a>
      								<a href="http://www.miracleart.cn/zh/faq/553384.html" title="Springboot怎么集成Jasypt實(shí)現(xiàn)配置文件加密" class="phphistorical_Version2_mids_title">Springboot怎么集成Jasypt實(shí)現(xiàn)配置文件加密</a>
      								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 01, 2023 am	 08:55 AM</span>
      								<p class="Articlelist_txts_p">Jasypt介紹Jasypt是一個(gè)java庫,它允許開發(fā)員以最少的努力為他/她的項(xiàng)目添加基本的加密功能,并且不需要對加密工作原理有深入的了解用于單向和雙向加密的高安全性、基于標(biāo)準(zhǔn)的加密技術(shù)。加密密碼,文本,數(shù)字,二進(jìn)制文件...適合集成到基于Spring的應(yīng)用程序中,開放API,用于任何JCE提供程序...添加如下依賴:com.github.ulisesbocchiojasypt-spring-boot-starter2.1.1Jasypt好處保護(hù)我們的系統(tǒng)安全,即使代碼泄露,也可以保證數(shù)據(jù)源的</p>
      							</div>
      														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
      								<a href="http://www.miracleart.cn/zh/faq/554254.html" title="怎么在SpringBoot中使用Redis實(shí)現(xiàn)分布式鎖" class="phphistorical_Version2_mids_img">
      									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/000/887/227/168575139384131.png?x-oss-process=image/resize,m_fill,h_207,w_330" alt="怎么在SpringBoot中使用Redis實(shí)現(xiàn)分布式鎖" />
      								</a>
      								<a href="http://www.miracleart.cn/zh/faq/554254.html" title="怎么在SpringBoot中使用Redis實(shí)現(xiàn)分布式鎖" class="phphistorical_Version2_mids_title">怎么在SpringBoot中使用Redis實(shí)現(xiàn)分布式鎖</a>
      								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 03, 2023 am	 08:16 AM</span>
      								<p class="Articlelist_txts_p">一、Redis實(shí)現(xiàn)分布式鎖原理為什么需要分布式鎖在聊分布式鎖之前,有必要先解釋一下,為什么需要分布式鎖。與分布式鎖相對就的是單機(jī)鎖,我們在寫多線程程序時(shí),避免同時(shí)操作一個(gè)共享變量產(chǎn)生數(shù)據(jù)問題,通常會(huì)使用一把鎖來互斥以保證共享變量的正確性,其使用范圍是在同一個(gè)進(jìn)程中。如果換做是多個(gè)進(jìn)程,需要同時(shí)操作一個(gè)共享資源,如何互斥呢?現(xiàn)在的業(yè)務(wù)應(yīng)用通常是微服務(wù)架構(gòu),這也意味著一個(gè)應(yīng)用會(huì)部署多個(gè)進(jìn)程,多個(gè)進(jìn)程如果需要修改MySQL中的同一行記錄,為了避免操作亂序?qū)е屡K數(shù)據(jù),此時(shí)就需要引入分布式鎖了。想要實(shí)現(xiàn)分</p>
      							</div>
      														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
      								<a href="http://www.miracleart.cn/zh/faq/554495.html" title="SpringBoot怎么自定義Redis實(shí)現(xiàn)緩存序列化" class="phphistorical_Version2_mids_img">
      									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/000/887/227/168576314558962.png?x-oss-process=image/resize,m_fill,h_207,w_330" alt="SpringBoot怎么自定義Redis實(shí)現(xiàn)緩存序列化" />
      								</a>
      								<a href="http://www.miracleart.cn/zh/faq/554495.html" title="SpringBoot怎么自定義Redis實(shí)現(xiàn)緩存序列化" class="phphistorical_Version2_mids_title">SpringBoot怎么自定義Redis實(shí)現(xiàn)緩存序列化</a>
      								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 03, 2023 am	 11:32 AM</span>
      								<p class="Articlelist_txts_p">1、自定義RedisTemplate1.1、RedisAPI默認(rèn)序列化機(jī)制基于API的Redis緩存實(shí)現(xiàn)是使用RedisTemplate模板進(jìn)行數(shù)據(jù)緩存操作的,這里打開RedisTemplate類,查看該類的源碼信息publicclassRedisTemplateextendsRedisAccessorimplementsRedisOperations,BeanClassLoaderAware{//聲明了key、value的各種序列化方式,初始值為空@NullableprivateRedisSe</p>
      							</div>
      														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
      								<a href="http://www.miracleart.cn/zh/faq/554791.html" title="springboot讀取文件打成jar包后訪問不到怎么解決" class="phphistorical_Version2_mids_img">
      									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/202306/03/2023060316381913142.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="springboot讀取文件打成jar包后訪問不到怎么解決" />
      								</a>
      								<a href="http://www.miracleart.cn/zh/faq/554791.html" title="springboot讀取文件打成jar包后訪問不到怎么解決" class="phphistorical_Version2_mids_title">springboot讀取文件打成jar包后訪問不到怎么解決</a>
      								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 03, 2023 pm	 04:38 PM</span>
      								<p class="Articlelist_txts_p">springboot讀取文件,打成jar包后訪問不到最新開發(fā)出現(xiàn)一種情況,springboot打成jar包后讀取不到文件,原因是打包之后,文件的虛擬路徑是無效的,只能通過流去讀取。文件在resources下publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input</p>
      							</div>
      														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
      								<a href="http://www.miracleart.cn/zh/faq/552711.html" title="SpringBoot怎么集成Redisson實(shí)現(xiàn)延遲隊(duì)列" class="phphistorical_Version2_mids_img">
      									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/000/465/014/168542881738698.png?x-oss-process=image/resize,m_fill,h_207,w_330" alt="SpringBoot怎么集成Redisson實(shí)現(xiàn)延遲隊(duì)列" />
      								</a>
      								<a href="http://www.miracleart.cn/zh/faq/552711.html" title="SpringBoot怎么集成Redisson實(shí)現(xiàn)延遲隊(duì)列" class="phphistorical_Version2_mids_title">SpringBoot怎么集成Redisson實(shí)現(xiàn)延遲隊(duì)列</a>
      								<span id="377j5v51b"    class="Articlelist_txts_time">May 30, 2023 pm	 02:40 PM</span>
      								<p class="Articlelist_txts_p">使用場景1、下單成功,30分鐘未支付。支付超時(shí),自動(dòng)取消訂單2、訂單簽收,簽收后7天未進(jìn)行評價(jià)。訂單超時(shí)未評價(jià),系統(tǒng)默認(rèn)好評3、下單成功,商家5分鐘未接單,訂單取消4、配送超時(shí),推送短信提醒……對于延時(shí)比較長的場景、實(shí)時(shí)性不高的場景,我們可以采用任務(wù)調(diào)度的方式定時(shí)輪詢處理。如:xxl-job今天我們采</p>
      							</div>
      														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
      								<a href="http://www.miracleart.cn/zh/faq/553795.html" title="Springboot+Mybatis-plus不使用SQL語句進(jìn)行多表添加怎么實(shí)現(xiàn)" class="phphistorical_Version2_mids_img">
      									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/000/887/227/168567524423731.png?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Springboot+Mybatis-plus不使用SQL語句進(jìn)行多表添加怎么實(shí)現(xiàn)" />
      								</a>
      								<a href="http://www.miracleart.cn/zh/faq/553795.html" title="Springboot+Mybatis-plus不使用SQL語句進(jìn)行多表添加怎么實(shí)現(xiàn)" class="phphistorical_Version2_mids_title">Springboot+Mybatis-plus不使用SQL語句進(jìn)行多表添加怎么實(shí)現(xiàn)</a>
      								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 02, 2023 am	 11:07 AM</span>
      								<p class="Articlelist_txts_p">在Springboot+Mybatis-plus不使用SQL語句進(jìn)行多表添加操作我所遇到的問題準(zhǔn)備工作在測試環(huán)境下模擬思維分解一下:創(chuàng)建出一個(gè)帶有參數(shù)的BrandDTO對象模擬對后臺(tái)傳遞參數(shù)我所遇到的問題我們都知道,在我們使用Mybatis-plus中進(jìn)行多表操作是極其困難的,如果你不使用Mybatis-plus-join這一類的工具,你只能去配置對應(yīng)的Mapper.xml文件,配置又臭又長的ResultMap,然后再去寫對應(yīng)的sql語句,這種方法雖然看上去很麻煩,但具有很高的靈活性,可以讓我們</p>
      							</div>
      														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
      								<a href="http://www.miracleart.cn/zh/faq/637521.html" title="SpringBoot與SpringMVC的比較及差別分析" class="phphistorical_Version2_mids_img">
      									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/000/465/014/170381897118822.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="SpringBoot與SpringMVC的比較及差別分析" />
      								</a>
      								<a href="http://www.miracleart.cn/zh/faq/637521.html" title="SpringBoot與SpringMVC的比較及差別分析" class="phphistorical_Version2_mids_title">SpringBoot與SpringMVC的比較及差別分析</a>
      								<span id="377j5v51b"    class="Articlelist_txts_time">Dec 29, 2023 am	 11:02 AM</span>
      								<p class="Articlelist_txts_p">SpringBoot和SpringMVC都是Java開發(fā)中常用的框架,但它們之間有一些明顯的差異。本文將探究這兩個(gè)框架的特點(diǎn)和用途,并對它們的差異進(jìn)行比較。首先,我們來了解一下SpringBoot。SpringBoot是由Pivotal團(tuán)隊(duì)開發(fā)的,它旨在簡化基于Spring框架的應(yīng)用程序的創(chuàng)建和部署。它提供了一種快速、輕量級的方式來構(gòu)建獨(dú)立的、可執(zhí)行</p>
      							</div>
      														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
      								<a href="http://www.miracleart.cn/zh/faq/553148.html" title="SpringBoot中的@Import注解怎么使用" class="phphistorical_Version2_mids_img">
      									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
      										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/202305/31/2023053118254981970.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="SpringBoot中的@Import注解怎么使用" />
      								</a>
      								<a href="http://www.miracleart.cn/zh/faq/553148.html" title="SpringBoot中的@Import注解怎么使用" class="phphistorical_Version2_mids_title">SpringBoot中的@Import注解怎么使用</a>
      								<span id="377j5v51b"    class="Articlelist_txts_time">May 31, 2023 pm	 06:25 PM</span>
      								<p class="Articlelist_txts_p">一、@Import引入普通類@Import引入普通的類可以幫助我們把普通的類定義為Bean。@Import可以添加在@SpringBootApplication(啟動(dòng)類)、@Configuration(配置類)、@Component(組件類)對應(yīng)的類上。注意:@RestController、@Service、@Repository都屬于@Component@SpringBootApplication@Import(ImportBean.class)//通過@Import注解把ImportBean</p>
      							</div>
      													</div>
      
      													<a href="http://www.miracleart.cn/zh/java/" class="phpgenera_Details_mainL4_botton">
      								<span>See all articles</span>
      								<img src="/static/imghw/down_right.png" alt="" />
      							</a>
      											</div>
      				</div>
      					</div>
      	</main>
      	<footer>
          <div   id="377j5v51b"   class="footer">
              <div   id="377j5v51b"   class="footertop">
                  <img src="/static/imghw/logo.png" alt="">
                  <p>公益在線PHP培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!</p>
              </div>
              <div   id="377j5v51b"   class="footermid">
                  <a href="http://www.miracleart.cn/zh/about/us.html">關(guān)于我們</a>
                  <a href="http://www.miracleart.cn/zh/about/disclaimer.html">免責(zé)聲明</a>
                  <a href="http://www.miracleart.cn/zh/update/article_0_1.html">Sitemap</a>
              </div>
              <div   id="377j5v51b"   class="footerbottom">
                  <p>
                      ? php.cn All rights reserved
                  </p>
              </div>
          </div>
      </footer>
      
      <input type="hidden" id="verifycode" value="/captcha.html">
      
      
      
      
      		<link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css?2' type='text/css' media='all' />
      	
      	
      	
      	
      	
      
      	
      	
      
      
      
      
      
      
      <footer>
      <div class="friendship-link">
      <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p>
      <a href="http://www.miracleart.cn/" title="国产av日韩一区二区三区精品">国产av日韩一区二区三区精品</a>
      
      <div class="friend-links">
      
      
      </div>
      </div>
      
      </footer>
      
      
      <script>
      (function(){
          var bp = document.createElement('script');
          var curProtocol = window.location.protocol.split(':')[0];
          if (curProtocol === 'https') {
              bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
          }
          else {
              bp.src = 'http://push.zhanzhang.baidu.com/push.js';
          }
          var s = document.getElementsByTagName("script")[0];
          s.parentNode.insertBefore(bp, s);
      })();
      </script>
      </body><div id="habh9" class="pl_css_ganrao" style="display: none;"><tfoot id="habh9"></tfoot><track id="habh9"><th id="habh9"></th></track><progress id="habh9"><meter id="habh9"></meter></progress><sup id="habh9"><i id="habh9"></i></sup><li id="habh9"></li><tt id="habh9"><center id="habh9"><output id="habh9"><th id="habh9"></th></output></center></tt><legend id="habh9"><pre id="habh9"><span id="habh9"></span></pre></legend><video id="habh9"></video><strong id="habh9"><dl id="habh9"><legend id="habh9"></legend></dl></strong><div id="habh9"><blockquote id="habh9"></blockquote></div><tbody id="habh9"><small id="habh9"><table id="habh9"><strong id="habh9"></strong></table></small></tbody><dfn id="habh9"><rp id="habh9"></rp></dfn><input id="habh9"><dl id="habh9"></dl></input><pre id="habh9"><button id="habh9"><video id="habh9"><track id="habh9"></track></video></button></pre><b id="habh9"><em id="habh9"><strong id="habh9"></strong></em></b><td id="habh9"></td><form id="habh9"><optgroup id="habh9"><th id="habh9"></th></optgroup></form><cite id="habh9"><style id="habh9"></style></cite><pre id="habh9"></pre><dfn id="habh9"><var id="habh9"></var></dfn><button id="habh9"></button><progress id="habh9"></progress><font id="habh9"></font><mark id="habh9"></mark><source id="habh9"></source><sup id="habh9"><center id="habh9"><tbody id="habh9"><font id="habh9"></font></tbody></center></sup><div id="habh9"></div><ul id="habh9"><kbd id="habh9"><tbody id="habh9"></tbody></kbd></ul><strong id="habh9"></strong><output id="habh9"><del id="habh9"></del></output><source id="habh9"></source><ul id="habh9"><kbd id="habh9"><dfn id="habh9"></dfn></kbd></ul><b id="habh9"><rp id="habh9"></rp></b><menu id="habh9"><ol id="habh9"><strong id="habh9"><p id="habh9"></p></strong></ol></menu><small id="habh9"></small><mark id="habh9"></mark><s id="habh9"></s><pre id="habh9"></pre><form id="habh9"><dfn id="habh9"><big id="habh9"><ins id="habh9"></ins></big></dfn></form><tr id="habh9"></tr><tbody id="habh9"><small id="habh9"><style id="habh9"></style></small></tbody><pre id="habh9"><ul id="habh9"><kbd id="habh9"></kbd></ul></pre><p id="habh9"></p><mark id="habh9"></mark><output id="habh9"></output><big id="habh9"></big><dfn id="habh9"><code id="habh9"><pre id="habh9"></pre></code></dfn><style id="habh9"><rt id="habh9"><source id="habh9"><th id="habh9"></th></source></rt></style><cite id="habh9"><fieldset id="habh9"><rt id="habh9"></rt></fieldset></cite><label id="habh9"><style id="habh9"><menu id="habh9"></menu></style></label><p id="habh9"><big id="habh9"><form id="habh9"><address id="habh9"></address></form></big></p><tbody id="habh9"><optgroup id="habh9"><th id="habh9"><strong id="habh9"></strong></th></optgroup></tbody><option id="habh9"><track id="habh9"><th id="habh9"></th></track></option><ruby id="habh9"><b id="habh9"><small id="habh9"></small></b></ruby><nobr id="habh9"></nobr><input id="habh9"><dl id="habh9"></dl></input><tr id="habh9"></tr><thead id="habh9"></thead><xmp id="habh9"><thead id="habh9"><font id="habh9"><pre id="habh9"></pre></font></thead></xmp><em id="habh9"></em><code id="habh9"><strong id="habh9"><p id="habh9"></p></strong></code><small id="habh9"><noframes id="habh9"><li id="habh9"></li></noframes></small><div id="habh9"><big id="habh9"><xmp id="habh9"><em id="habh9"></em></xmp></big></div><ol id="habh9"><tfoot id="habh9"><thead id="habh9"><td id="habh9"></td></thead></tfoot></ol><nav id="habh9"></nav><span id="habh9"><tr id="habh9"><menuitem id="habh9"></menuitem></tr></span><s id="habh9"></s><address id="habh9"><sup id="habh9"><center id="habh9"><delect id="habh9"></delect></center></sup></address><dfn id="habh9"></dfn><li id="habh9"><code id="habh9"><strong id="habh9"><menu id="habh9"></menu></strong></code></li><sup id="habh9"><center id="habh9"></center></sup><p id="habh9"></p><object id="habh9"></object><ins id="habh9"><tr id="habh9"></tr></ins><thead id="habh9"></thead><tr id="habh9"><button id="habh9"></button></tr><listing id="habh9"></listing><listing id="habh9"><strong id="habh9"><cite id="habh9"></cite></strong></listing><li id="habh9"></li><cite id="habh9"><strike id="habh9"></strike></cite><label id="habh9"></label><listing id="habh9"></listing><form id="habh9"></form><small id="habh9"></small><strong id="habh9"><p id="habh9"><strike id="habh9"><wbr id="habh9"></wbr></strike></p></strong><object id="habh9"><s id="habh9"><fieldset id="habh9"><dl id="habh9"></dl></fieldset></s></object><object id="habh9"></object><th id="habh9"><div id="habh9"></div></th><source id="habh9"><pre id="habh9"><span id="habh9"><font id="habh9"></font></span></pre></source><pre id="habh9"></pre><kbd id="habh9"><tbody id="habh9"><optgroup id="habh9"><nav id="habh9"></nav></optgroup></tbody></kbd><cite id="habh9"><style id="habh9"></style></cite><p id="habh9"></p><sub id="habh9"><center id="habh9"></center></sub><listing id="habh9"><strong id="habh9"><cite id="habh9"></cite></strong></listing><s id="habh9"></s><blockquote id="habh9"><sub id="habh9"><b id="habh9"></b></sub></blockquote><ol id="habh9"><strike id="habh9"><progress id="habh9"></progress></strike></ol><th id="habh9"></th><wbr id="habh9"></wbr><pre id="habh9"></pre><big id="habh9"></big><dfn id="habh9"><label id="habh9"><pre id="habh9"></pre></label></dfn><center id="habh9"></center><p id="habh9"></p><em id="habh9"></em><center id="habh9"></center><small id="habh9"></small><ol id="habh9"></ol><legend id="habh9"><div id="habh9"><dd id="habh9"></dd></div></legend><label id="habh9"><input id="habh9"></input></label><input id="habh9"></input><sup id="habh9"><progress id="habh9"><delect id="habh9"></delect></progress></sup><sub id="habh9"></sub><th id="habh9"><tbody id="habh9"><pre id="habh9"><style id="habh9"></style></pre></tbody></th><output id="habh9"></output><em id="habh9"></em><span id="habh9"></span><samp id="habh9"></samp><address id="habh9"></address><address id="habh9"><sub id="habh9"><center id="habh9"><acronym id="habh9"></acronym></center></sub></address><nav id="habh9"><strong id="habh9"></strong></nav><big id="habh9"></big><dfn id="habh9"></dfn><span id="habh9"></span><small id="habh9"><style id="habh9"></style></small><output id="habh9"><tt id="habh9"><tr id="habh9"></tr></tt></output><em id="habh9"><u id="habh9"><option id="habh9"><tr id="habh9"></tr></option></u></em><center id="habh9"><acronym id="habh9"></acronym></center><strong id="habh9"></strong><ol id="habh9"><fieldset id="habh9"><thead id="habh9"><s id="habh9"></s></thead></fieldset></ol><form id="habh9"><optgroup id="habh9"></optgroup></form><kbd id="habh9"><form id="habh9"><optgroup id="habh9"></optgroup></form></kbd><legend id="habh9"></legend><td id="habh9"></td><blockquote id="habh9"><samp id="habh9"><center id="habh9"><acronym id="habh9"></acronym></center></samp></blockquote><font id="habh9"></font><kbd id="habh9"></kbd><dfn id="habh9"></dfn><th id="habh9"></th><tfoot id="habh9"><center id="habh9"></center></tfoot><td id="habh9"></td><del id="habh9"></del><span id="habh9"><legend id="habh9"><menuitem id="habh9"></menuitem></legend></span><tbody id="habh9"><tr id="habh9"><menuitem id="habh9"><ul id="habh9"></ul></menuitem></tr></tbody><small id="habh9"><ruby id="habh9"><rp id="habh9"></rp></ruby></small><acronym id="habh9"><ins id="habh9"><ul id="habh9"></ul></ins></acronym><sub id="habh9"><progress id="habh9"><meter id="habh9"></meter></progress></sub></div>
      
      </html>