一种集成了Shiro权限管理的SSM系统实现本地配置的方法技术方案

技术编号:19011690 阅读:141 留言:0更新日期:2018-09-22 11:04
本发明专利技术涉及基于Shiro权限管理平台的技术领域,特别涉及一种集成了Shiro权限管理的SSM系统实现本地配置的方法。本发明专利技术的方法是把需要经过Shiro权限控制的Url,通过Key与Value的模式存放在一个属性配置文件里,如果有多个Url要配置,用“,”分割进行存放。然后修改Shiro源码,加载这个配置文件,通过Key获取所有的Value值,经过一定的算法,把Value里的内容按不同的角色添加到权限控制的集合里。本发明专利技术解决了集成了Shiro权限管理的SSM系统不能方便地配置URL管控的问题。

【技术实现步骤摘要】
一种集成了Shiro权限管理的SSM系统实现本地配置的方法
本专利技术涉及Shiro权限管理
,特别涉及一种集成了Shiro权限管理的SSM系统实现本地配置的方法。
技术介绍
在集成了Shiro权限管理的SSM系统中,官方没有提供一套易于理解的、可在本地属性文件中配置Url实现权限管控的功能,必须要求用户在提供的Shiro.xml文件中配置。此文件对于非专业开发人员来说,确实非常难懂,导致一般用户无法配置;为了解决这些问题,需要实现一种简单易懂的权限配置功能。
技术实现思路
本专利技术解决的技术问题在于提供一种集成了Shiro权限管理的SSM系统实现本地配置的方法;解决了集成了Shiro权限管理的SSM系统不能方便地配置URL管控的问题。本专利技术解决上述技术问题的技术方案是:把需要经过Shiro权限控制的Url,通过Key与Value的模式存放在一个属性配置文件里,如果有多个Url要配置,用“,”分割进行存放。然后修改Shiro源码,加载这个配置文件,通过Key获取所有的Value值,经过一定的算法,把Value里的内容按不同的角色添加到权限控制的集合里。从而解决了集成了Shiro权限管理的SSM系统不能方便地配置URL管控的问题。所述的方法具体包括如下步骤:步骤一、打开系统中的config.propertis文件,写入需要权限管控的Url,以Key与Value的方式存放,如果有多个Url,以“,”分割;步骤二、在项目中重新创建一个类,复制Shiro提供的ShiroFilterFactoryBean类的内容到里面;步骤三、找到setFilterChainDefinitions(Stringdefinitions)方法,在方法内部加载config.propertis文件;步骤四、通过定义的Key找到所有的Value值,经过一定的算法,把其按不同的角色添加到权限管控集合中;步骤五、把这个新类替换Shiro.xml文件中的过滤器选项即可。本专利技术的有益效果:实现了一种集成了Shiro权限管理的SSM系统实现可本地配置的方法。本专利技术的方法是是把需要经过Shiro权限控制的Url,通过Key与Value的模式存放在一个属性配置文件里,如果有多个Url要配置,用“,”分割进行存放。然后修改Shiro源码,加载这个配置文件,通过Key获取所有的Value值,经过一定的算法,把Value里的内容按不同的角色添加到权限控制的集合里,从而达到可以在属性文件里方便地配置Url管控的目的。有效解决了集成了Shiro权限管理的SSM系统不能方便地配置URL管控的问题。附图说明下面结合附图对本专利技术进一步说明:图1为本专利技术的流程图。具体实施方式如图1所示,本专利技术采用如下步骤:步骤一、打开系统中的config.propertis文件,写入需要权限管控的Url,以Key与Value的方式存放,如果有多个Url,以“,”分割;如://放行urlopen.url=/open/url1,/open/url2//不放行urlclose.url=/close/url1,/close/url2步骤二、在项目中重新创建一个类,复制Shiro提供的ShiroFilterFactoryBean类的内容到里面;如:publicclassShiroFilterFactoryBeanimplementsFactoryBean,BeanPostProcessor{privateSecurityManagersecurityManager;privateMap<String,Filter>filters;privateMap<String,String>filterChainDefinitionMap;……}步骤三、找到setFilterChainDefinitions(Stringdefinitions)方法,在方法内部加载config.propertis文件;如:publicvoidsetFilterChainDefinitions(Stringdefinitions){Stringconfig=ProFileConfig.getFile(“config”);……}步骤四、通过定义的Key找到所有的Value值,经过一定的算法,把其按不同的角色添加到权限管控集合中;如://读取open.urlStringopenUrl=PropFileConfig.load(config).get("open.url");//读取不入行urlStringcloseUrl=PropFileConfig.load(config).get("close.url");//添加放行urlStringanons="";if(StringUtil.isNotEmpty(openUrl)){//判断不为空if(openUrl.endsWith(",")){//判断以,结尾openUrl=openUrl.substring(0,openUrl.length()-1);}if(openUrl.contains(",")){String[]strs=openUrl.split(",");for(Stringstr:strs){anons+=(""+str+"=anon\n");}}else{anons+=(""+openUrl+"=anon\n");}}definitions=anons+definitions;//添加不放行url……Iniini=newIni();ini.load(definitions);Ini.Sectionsection=ini.getSection(IniFilterChainResolverFactory.URLS);if(CollectionUtils.isEmpty(section)){section=ini.getSection(Ini.DEFAULT_SECTION_NAME);}//添加到集合中setFilterChainDefinitionMap(section);步骤五、把这个新类替换Shiro.xml文件中的过滤器选项即可;如:<beanid="shiroFilter"class="com.sdzy.utils.ShiroFilterFactoryBean"><propertyname="securityManager"ref="securityManager"/>……</bean>。本文档来自技高网...
一种集成了Shiro权限管理的SSM系统实现本地配置的方法

【技术保护点】
1.一种集成了Shiro权限管理的SSM系统实现本地配置的方法,其特征在于:是把需要经过Shiro权限控制的Url,通过Key与Value的模式存放在一个属性配置文件里,如果有多个Url要配置,用“,”分割进行存放;然后修改Shiro源码,加载这个配置文件,通过Key获取所有的Value值,经过一定的算法,把Value里的内容按不同的角色添加到权限控制的集合里;从而解决了集成了Shiro权限管理的SSM系统不能方便地配置URL管控的问题。

【技术特征摘要】
1.一种集成了Shiro权限管理的SSM系统实现本地配置的方法,其特征在于:是把需要经过Shiro权限控制的Url,通过Key与Value的模式存放在一个属性配置文件里,如果有多个Url要配置,用“,”分割进行存放;然后修改Shiro源码,加载这个配置文件,通过Key获取所有的Value值,经过一定的算法,把Value里的内容按不同的角色添加到权限控制的集合里;从而解决了集成了Shiro权限管理的SSM系统不能方便地配置URL管控的问题。2.根据权利要求1所述的集成了Shiro权限管理的SSM系统实现本地配置的方法,其特征在于:通过本地配置代替官方提供的配置方案;所述的方法具体包括如...

【专利技术属性】
技术研发人员:陈林张来卿庞严冬
申请(专利权)人:珠海横琴盛达兆业科技投资有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1