• @黑黑的龙 这块问题解决了,生成token失败是因为默认的code失效时间为30s,在使用code换取accessToken时会先去校验code的有效性,由于code有效期只有30s很快就失效了,在properties配置中将code生效时间改大就可以了。
    我想做进一步的拓展,比如code和accessToken不使用内存方式存储,使用自定义的逻辑比如数据库存储、redis存储,你有demo可以参考吗,我看CAS源码里好像不支持

    CAS OAuth2 源码分析

    在工程中引入以下依赖,方便看代码: CAS 对Oauth2的支持主要分5个包,最主要的是 cas-server-support-oauth 包 以下一个一个分析: cas-s...

  • @巨子联盟 第2步,使用code生成token失败,界面显示error=invalid_request,不知道该怎么处理了

    CAS OAuth2 源码分析

    在工程中引入以下依赖,方便看代码: CAS 对Oauth2的支持主要分5个包,最主要的是 cas-server-support-oauth 包 以下一个一个分析: cas-s...

  • 在写demo测试,有几个地方不太懂。
    使用授权码模式:
    1./oauth2.0/authorize,自动跳转登陆页面,登陆后生成的code会存入DefaultTicketRegistry.mapInstance中,通过打断点看到存进去的比如是OC-21-5DRkgGsnOimax0Pn6nTqvsDx-C5nQD1y,但浏览器重定向后的地址中拼接的却是OC-20-3IIbJfyirfLhKcaE-cV-6jTgb1gS6TXs,疑问1;
    2.生成code后,调用/oauth2.0/accessToken,传入步骤1中拿到的code,看到在OAuth20AccessTokenEndpointController.verifyAccessTokenRequest返回false,导致界面看到的是error=invalid_request,跟踪代码最终发现根据url中传入的code去DefaultTicketRegistry.mapInstance校验code的合法性时匹配不到对应的code,这里不知道怎么回事,明明步骤1已经放进去了,疑问2

    CAS OAuth2 源码分析

    在工程中引入以下依赖,方便看代码: CAS 对Oauth2的支持主要分5个包,最主要的是 cas-server-support-oauth 包 以下一个一个分析: cas-s...