Cas单点登录开启Restful接口报错:Method Not Allowed

1、终极目标

浏览器访问:

http://localhost:8080/cas/v1/tickets?username=admin&password=1

想要获取TGT,得到201响应码。

2、浏览器请求

浏览器请求报错,可以理解,因为是GET请求,接口文档要求是POST请求。

报错如下:

Method Not Allowed

The method specified in the request is not allowed for the resource identified by the request URI

You can get technical details here.
Please continue your visit at our home page.

翻译如下:

不允许的方法。

请求URI标识的资源不允许使用请求中指定的方法。

你可以在这里获得技术细节。

请继续访问我们的主页。

截图如下:

在这里插入图片描述
在这里插入图片描述

3、Insomnia请求

使用了POST请求,得到了400响应码。

400指示客户端发送的请求在语法上不正确。

这是为什么,别人都可以发送成功。

在这里插入图片描述

在这里插入图片描述

4、postman请求

别人都可以获取201状态码,生成TGT。我这状态码就是400与405。

思考一下,自己与别人的整体操作过程,有哪些不一样。

解决方法:

1、从官网上下载cas-server,看看是不是自己war包有问题。

2、换不同版本的cas-server,试一下,看是否是版本问题。

3、使用域名进行访问,排除域名问题。

4、开启HTTPS协议,生成令牌,看是否因证书问题导致访问失败。

电视机前的观众朋友们,上边的四种方法,千万不要试,没用。

惨痛的教训,别人都可以,我不可以,我很纳闷,哪里出错了,到处排查原因。

这里,我推荐两款工具,一个是curl工具,另一个是postman。

不得不说,这两个才是比较优秀的测试接口工具。

使用postman,还是没有201,哈哈哈哈哈哈。

接着往下看,看第二张图,咦,怎么出来了,怎么做到的。

大家观察一下,两张图哪里不一样,然后如图所示操作一下就ok了。

第一张图:错误。
在这里插入图片描述

第二张图:201状态码,成功生成TGT。
在这里插入图片描述

第三张图:200状态码,成功生成ST。
在这里插入图片描述

第四张图:200状态码,校验成功,返回用户名。
在这里插入图片描述

在校验ST的时候,有可能遇到这个报错:

在这里插入图片描述

<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
    <cas:authenticationFailure code='INVALID_TICKET'>
		Ticket &#039;ST-1-R6dvKKu6a0ExkSNZaLaa-xiaolaoben&#039; not recognized
	</cas:authenticationFailure>
</cas:serviceResponse>

这个错误是因为你的ST过期了,不能使用了,教你一个傻乎乎的办法。

获取201后,赶快去生成ST,有了ST之后,赶快去校验。

一定要在10秒内完成哦,看你手速了。

Ticket的默认时长是10s。

ticketExpirationPolicies.xml中可以修改时长。

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值