博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二讲---springboot中shiro+cas+权限配置
阅读量:6734 次
发布时间:2019-06-25

本文共 2003 字,大约阅读时间需要 6 分钟。

hot3.png

shiro-cas简介&&背景

       shiro是权限管理框架,利用它实现权限控制。为了实现为多个系统提供统一认证入口,我们需要集成单点登录框架cas。目前部门系统已经实现了shiro-cas集成,现在只需要引入shiro-cas的集成包,并且配置相关信息即可实现单点登录功能。权限系统的引入主要是解决菜单权限的问题,主要需要引入UED集成框架并且进行初始化和配置相关信息。

cas基本的协议过程

28230139_BdZJ.png29221537_fAn9.png

shiro-cas和权限系统引入

1、在web的pom文件中引入shiro-cas依赖和crm权限系统依赖:

<!-- shiro+cas -->

<dependency>
<groupId>com.fpx.shiro</groupId>
<artifactId>shiro-cas-spring-boot-starter</artifactId>
</dependency>

 

<!-- 对接权限系统 -->

<dependency>
<groupId>com.fpx.basic</groupId>
<artifactId>fpx-acms-api</artifactId> 
</dependency>

 

2、在父级的pom文件中设置shiro-cas的版本和crm权限系统api的版本,目前最新的shiro-cas版本是1.1.0-SNAPSHOT:

<fpx.ironforge.shiro>1.2.0-SNAPSHOT</fpx.ironforge.shiro>

<!-- shiro+cas -->

<dependency>
<groupId>com.fpx.shiro</groupId>
<artifactId>shiro-cas-spring-boot-starter</artifactId>
<version>${fpx.ironforge.shiro}</version>
</dependency>

 

3、在profile文件中配置shiro-cas相关信息:

#shiro+cas(测试环境)

登录地址:shiro.login-url=/login(例)
域名映射地址:shiro.server-url=(例)
IP地址:shiro.client-url=xxxxxxx(例)
shiro.filter-chain.1=/,anon
shiro.filter-chain.2=/js/**,anon
shiro.filter-chain.3=/css/**,anon
shiro.filter-chain.4=/images/**,anon

#shiro+cas(UAT环境)

登录地址:shiro.login-url=/login(例)
域名映射地址:shiro.server-url=(例)
IP地址:shiro.client-url=(例)
shiro.filter-chain.1=/,anon
shiro.filter-chain.2=/js/**,anon
shiro.filter-chain.3=/css/**,anon
shiro.filter-chain.4=/images/**,anon
系统的客户端ID(唯一):shiro.clientId=xxxxx(在基础系统部权限系统中加入新系统时自动生成)

 

4、在静态资源中引入UED集成js框架并进行初始化:

(function($, window, IRF, undefined) {

'use strict';
// 加载UED-框架模块
window.UED_FRAME.init({
'clientName' : 'xxx系统', // 客户端系统-名称(必传)
'clientHomeUrl' : '/', // 客户端系统-主页地址
'clientId' : 'xxxxx', // 权限系统-客户端ID(必传)
'userId' : '', // 当前登录用户的ID(必传)
'contextPath' : '', // 客户端系统-上下文路径
'logoutUrl' : '', // 客户端系统-cas退出地址(必传)
'isInternational' : false // 客户端系统是否需要支持国家化(如果菜单需要支持国家化,那么请在权限系统中,配置好相应的菜单国际码,然后再通知组件站点配置对应的国际化资源信息)
});
})(jQuery, window, IRF);

 

5、在权限系统中添加新菜单,并且在controller中引入权限注解@RequiresPermissions:

@RequiresPermissions(""):[双引号中的是权限字符串,对应权限系统配置中的权限字符串]

28230140_1UR9.png

转载于:https://my.oschina.net/linxxbaobao/blog/1543351

你可能感兴趣的文章