国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

SpringBoot 整合 Shiro 密碼登錄的實現代碼

瀏覽:8日期:2023-03-23 18:07:36

導入依賴(pom.xml)

<!--整合Shiro安全框架--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</version> </dependency> <!--集成jwt實現token認證--> <dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.2.0</version> </dependency>

創建 ShiroConfig 配置類

@Configurationpublic class ShiroConfig { /** * ShiroFilterFactoryBean */ @Bean public ShiroFilterFactoryBean getShiroFilterFactoryBean(@Qualifier('securityManager') DefaultWebSecurityManager defaultWebSecurityManager) { ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean(); //設置安全管理器 factoryBean.setSecurityManager(defaultWebSecurityManager); // 添加shiro的內置過濾器 /* * anon:無需認證就可以訪問 * authc:必須認證才能訪問 * user:必須擁有 記住我 功能才能用 * perms:擁有對某個資源的權限能訪問 * role:擁有某個角色權限能訪問 */ Map<String, String> filterMap = new LinkedHashMap<>(); // 放行不需要權限認證的接口 //放行登錄接口 filterMap.put('/login/**', 'anon'); //放行用戶接口 filterMap.put('/', 'anon'); // 網站首頁 //認證管理員接口 filterMap.put('/administrators/**', 'authc'); factoryBean.setFilterChainDefinitionMap(filterMap); // 設置無權限時跳轉的 url // 設置登錄的請求 factoryBean.setLoginUrl('/login/toLogin'); return factoryBean; } /** * 注入 DefaultWebSecurityManager */ @Bean(name = 'securityManager') public DefaultWebSecurityManager getDefaultWebSecurityManager(@Qualifier('customRealm') CustomRealm customRealm) { DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); //關聯CustomRealm securityManager.setRealm(customRealm); return securityManager; } /** * 注入 securityManager */ @Bean public CustomRealm customRealm() { return new CustomRealm(); }}

創建密碼登錄時驗證授權 CustomRealm 類

@Componentpublic class CustomRealm extends AuthorizingRealm { @Autowired AdministratorsService administratorsService; /* * 設置加密方式 */ { HashedCredentialsMatcher mather = new HashedCredentialsMatcher(); // 加密方式 mather.setHashAlgorithmName('md5'); // 密碼進行一次運算 mather.setHashIterations(512); this.setCredentialsMatcher(mather); } /** * 授權 */ @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { System.out.println('————授權————doGetAuthorizationInfo————'); return null; } /** * 認證 */ @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { System.out.println('————認證————doGetAuthenticationInfo————'); UsernamePasswordToken userToken = (UsernamePasswordToken) token; // 連接數據庫 查詢用戶數據 QueryWrapper<Administrators> wrapper = new QueryWrapper<>(); wrapper.eq('username', userToken.getUsername()); Administrators administrators = administratorsService.getOne(wrapper); if (administrators == null) { return null; // 拋出異常 UnknownAccountException } // 密碼認證,shiro做 return new SimpleAuthenticationInfo('', administrators.getPassword(), ''); }}

控制層用戶密碼登錄

//用戶名登錄 @ApiOperation(value = '管理員登錄', notes = '用戶名登錄--不進行攔截') @PostMapping('/doLogin') public String doLogin(@RequestParam('username') String username, @RequestParam('password') String password, HttpSession session,Model model) { // 獲取當前的用戶 Subject subject = SecurityUtils.getSubject(); // 封裝用戶的登錄數據 UsernamePasswordToken token = new UsernamePasswordToken(username, password); try { subject.login(token); //保存session會話 管理員名字 session.setAttribute('adname', username); return 'admin'; } catch (UnknownAccountException e) { model.addAttribute('usererror', '用戶名錯誤!請重新輸入。'); return 'login'; } catch (IncorrectCredentialsException ice) { model.addAttribute('pwerror', '密碼錯誤!請重新輸入。'); return 'login'; } }

到此這篇關于SpringBoot 整合 Shiro 密碼登錄的實現代碼的文章就介紹到這了,更多相關SpringBoot 整合 Shiro 密碼登錄內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 日韩精品视频美在线精品视频 | 欧美激情一级欧美精品 | 欧美一级免费大片 | 亚洲国产一级毛片 | 免费看a级肉片 | 91久久国产精品视频 | 日韩a一级欧美一级在线播放 | 精品国产看高清国产毛片 | 222aaa免费国产在线观看 | 久草免费看 | 国产亚洲精品2021自在线 | 欧美性色xo影院在线观看 | 国产网址在线 | 91资源在线 | 国产精品午夜免费观看网站 | 免费亚洲黄色 | 日韩久久影院 | 国产一区二区三区在线观看精品 | 国内精品久久影院 | 亚洲欧美成人综合久久久 | 手机在线观看黄色网址 | 久久精品一区二区三区日韩 | 国产一区在线免费观看 | 国产精品日韩一区二区三区 | 国产成人精品一区二区不卡 | 久久爰www免费人成 久久曰视频 | 特级生活片 | 久久视频在线 | 日韩在线亚洲 | 美女黄色片免费 | 欧美成人ass| 国产在视频线精品视频www666 | 欧美成一级 | 成人免费毛片一区二区三区 | 成人丝袜激情一区二区 | 三级网址在线 | 日本成年人视频网站 | 一级a美女毛片 | 我们2018在线完整免费观看 | 久久ri精品高清一区二区三区 | 亚洲精品一区二区手机在线 |