相关文章推荐
想表白的茶壶  ·  Spring ...·  1 月前    · 
奋斗的豆浆  ·  LocalTimestamp 类 | ...·  2 年前    · 
月球上的南瓜  ·  python -- tkinter ...·  3 年前    · 
才高八斗的哑铃  ·  c# - How to translate ...·  3 年前    · 

1.CAS登录流程

CAS分为两个部分:CAS Server和CAS Client,每次请求首先进入client,client会识别有没有携带service ticket(CAS Server生成的唯一标识),如果没有则说明未登录,重定向到CAS Server,Server将登录页面发送给用户,用户填写好账号密码再提交到Server,登录通过Server会生成一个service ticket发送到CAS Client中,后续每次发送请求就会携带ticket。流程图如下:
在这里插入图片描述

2.CAS部署

首先下载CASwar包。我这里使用5.3版本,直接下载,配置好tomcat运行即可。
https://gitee.com/zzh971213/cas
当出现以下画面代表启动成功:
在这里插入图片描述
以上是登录地址,退出登录地址把地址中的login改为logout即可
默认的账号密码配置在application.properties中
在这里插入图片描述

3.CAS单点登录对接VUE

①在router—》index.js中配置全局路由钩子,在每个路由进入前调用,下面贴出部分代码

if (
    from.path.includes('/authorize') &&
    to.path.includes(config.project.loginHeaderRouter)
    window.location.href = 'http://localhost:8070/login?service=http://192.168.1.89:8080/#/login';

如果没登录则跳转到CAS的登录页面http://localhost:8070/login,这里重点说一下为什么要加?service=http://192.168.1.89:8080/#/login。是为了让CAS登录成功后重定向到service后面的地址
,在这里可能会报一个错:未认证授权的服务
在这里插入图片描述
解决办法:在HTTPSandIMAPS-10000001.json中将"serviceId" : “^(https|imaps)😕/.“,改为"serviceId” : "^(https|http|imaps)😕/.”,即加上http在这里插入图片描述
效果图:注意地址栏的变化
打开vue项目的登录页
打开vue项目的登录页
登录成功后跳转
在这里插入图片描述
配置退出登录的跳转页:在application.properties中添加一行,这样在输入localhost:8080/logout之后就会默认重定向到www.baidu.com

cas.logout.redirectUrl=http://www.baidu.com
首先跳转cas登出url时,要上?service=你的制定的页面,如下:
http://localhost:8080/cas/logout?service=https://www.baidu.com/
找到cas的配置文件,本人的版本是5.3,配置文件为war包下的此路径:
\WEB-INF\classes\application.properties
注:有的可能是叫 cas.properties
找到配置文件之后,在最后一行添
cas.logout.followS
				
1、springsecurity和cas集成后,springsecurity的登出(本地登出)没有意义。因为本地登出后,再次访问需要授权的链接时,一样会去cas服务端进行验证,而cas服务端没有登出。会返回ticket。cas客户端再次拿着ticket去服务端校验后进行本地登录。 2、cas登出后,如果需要根据service参数跳转到指定链接。需要修改cas.properties文件配置: cas.logout.followServiceRedirects=true 下面附上springsecuri
qq_33525746: 博主,你的这里的是咋实现查询出的结果转变为jsonarray的啊?能不能看看代码啊,我查出来是一个map<string,list>,但不知道怎么转成jsonarray [code=java] //首先从数据库中查出数据 DatabaseEntity databaseEntity = databaseService.getById(dbid); ISQLHelper isqlHelper = SQLHelper.get(databaseEntity.convertTo()); String sql = "SELECT * FROM \"public\".\"" + tablename.toUpperCase() + "\""; JSONArray objects = isqlHelper.queryBySql(sql); [/code] 将数据库中存放的空间数据导出为包含shape文件的压缩包 被秃头支配的恐惧: * 将wkt格式的字符串转成Geometry对象 * @param wkt wkt格式字符串 * @return Geometry public static Geometry wktToGeometry(String wkt) { if (StringUtil.isNull(wkt)) return null; try { return new WKTReader2().read(wkt.trim()); } catch (Exception e) { return null; 将数据库中存放的空间数据导出为包含shape文件的压缩包 Micheal_wxy: 楼主,GeometryUtil.wktToGeometry()这个工具类方法方便分享一下吗,谢谢表情包