日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

SasSHRM中基于shiro的认证授权:系统微服务配置shiro

發布時間:2024/4/13 windows 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SasSHRM中基于shiro的认证授权:系统微服务配置shiro 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#服務配置 server:port: 9002 #spring配置 spring:#1.應用配置application:name: ihrm-system #指定服務名#2.數據庫連接池datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/ihrm?useUnicode=true&characterEncoding=utf8username: rootpassword: 111111#3.JPAjpa:database: MySQLshow-sql: trueopen-in-view: trueredis:host: localhostport: 9999password: 123456 jwt:config:key: saas-ihrmttl: 3600000 package com.learn.system;import com.learn.common.shiro.realm.IhrmRealm; import com.learn.common.shiro.session.CustomSessionManager; import com.learn.system.shiro.realm.UserRealm; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor; import org.apache.shiro.spring.web.ShiroFilterFactoryBean; import org.apache.shiro.web.mgt.DefaultWebSecurityManager; import org.apache.shiro.web.session.mgt.DefaultWebSessionManager; import org.crazycake.shiro.RedisCacheManager; import org.crazycake.shiro.RedisManager; import org.crazycake.shiro.RedisSessionDAO; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import java.util.LinkedHashMap; import java.util.Map;@Configuration public class ShiroConfiguration {//1.創建realm@Beanpublic IhrmRealm getRealm() {return new UserRealm();}//2.創建安全管理器@Beanpublic SecurityManager getSecurityManager(IhrmRealm realm) {DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();securityManager.setRealm(realm);//將自定義的會話管理器注冊到安全管理器中securityManager.setSessionManager(sessionManager());//將自定義的redis緩存管理器注冊到安全管理器中securityManager.setCacheManager(cacheManager());return securityManager;}//3.配置shiro的過濾器工廠/*** 再web程序中,shiro進行權限控制全部是通過一組過濾器集合進行控制**/@Beanpublic ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {//1.創建過濾器工廠ShiroFilterFactoryBean filterFactory = new ShiroFilterFactoryBean();//2.設置安全管理器filterFactory.setSecurityManager(securityManager);//3.通用配置(跳轉登錄頁面,未授權跳轉的頁面)filterFactory.setLoginUrl("/autherror?code=1");//跳轉url地址filterFactory.setUnauthorizedUrl("/autherror?code=2");//未授權的url//4.設置過濾器集合Map<String,String> filterMap = new LinkedHashMap<>();//anon -- 匿名訪問filterMap.put("/sys/login","anon");filterMap.put("/autherror","anon");//注冊//authc -- 認證之后訪問(登錄)filterMap.put("/**","authc");//perms -- 具有某中權限 (使用注解配置授權)filterFactory.setFilterChainDefinitionMap(filterMap);return filterFactory;}@Value("${spring.redis.host}")private String host;@Value("${spring.redis.port}")private int port;@Value("${spring.redis.password}")private String password;/*** 1.redis的控制器,操作redis*/public RedisManager redisManager() {RedisManager redisManager = new RedisManager();redisManager.setHost(host);redisManager.setPort(port);redisManager.setPassword(password);return redisManager;}/*** 2.sessionDao*/public RedisSessionDAO redisSessionDAO() {RedisSessionDAO sessionDAO = new RedisSessionDAO();sessionDAO.setRedisManager(redisManager());return sessionDAO;}/*** 3.會話管理器*/public DefaultWebSessionManager sessionManager() {CustomSessionManager sessionManager = new CustomSessionManager();sessionManager.setSessionDAO(redisSessionDAO());//禁用cookiesessionManager.setSessionIdCookieEnabled(false);//禁用url重寫 url;jsessionid=idsessionManager.setSessionIdUrlRewritingEnabled(false);return sessionManager;}/*** 4.緩存管理器*/public RedisCacheManager cacheManager() {RedisCacheManager redisCacheManager = new RedisCacheManager();redisCacheManager.setRedisManager(redisManager());return redisCacheManager;}//開啟對shior注解的支持@Beanpublic AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();advisor.setSecurityManager(securityManager);return advisor;} } package com.learn.common.controller;import com.learn.common.entity.Result; import com.learn.common.entity.ResultCode; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;@RestController @CrossOrigin public class ErrorController {//公共錯誤跳轉@RequestMapping(value="autherror")public Result autherror(int code) {return code ==1?new Result(ResultCode.UNAUTHENTICATED):new Result(ResultCode.UNAUTHORISE);}}

?

總結

以上是生活随笔為你收集整理的SasSHRM中基于shiro的认证授权:系统微服务配置shiro的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。