让 CAS 5.1.8 支持http,解决未认证授权服务错误提示问题
2018-03-02 19:41
1916 查看
好不容易将CAS 5.1.8编译完毕,生成war包,并修改配置,支持数据库(oracle)方式认证,部署到tomcat,准备用了,孰料一打开客户端应用程序,跳到CAS,没有账号密码输入框,只有一句刺目的错误提示:
方便各位后来者在搜索引擎上查找答案,附录相关文字:
我刚开始看到这个提示,以为要将应用程序的地址在CAS上注册,这样CAS才会给你认证、提供服务。后来搜索了好久,没看到有人提起。基本都是说其实涉及到https/http认证的问题。因为据说从cas 4.*开始,CAS 就默认只支持https的方式。现在我们这个应用程序都是http的,所以CAS不认。
搜遍了古今中外,最后的解决方案是:
1、修改 \WEB-INF\classes\services\HTTPSandIMAPS-10000001.json
2、修改项目配置文件\WEB-INF\classes\application.properties
基本上,都没有人会提到最后一条:
另外,我看到有人提到要修改
至于这个提示
是去不掉的,除非支持https,或者干脆手动改这个页面。
方便各位后来者在搜索引擎上查找答案,附录相关文字:
未认证授权的服务 CAS的服务记录是空的,没有定义服务。 希望通过CAS进行认证的应用程序必须在服务记录中明确定义。 Application Not Authorized to Use CAS You are not authorized to access the application as your account \ is missing privileges required by the CAS server to authenticate into this service. Please notify your support desk. The application you attempted to authenticate to is not authorized to use CAS. Contact your CAS administrator to learn how you might register and integrate your application with CAS. The services registry of CAS is empty and has no service definitions. \ Applications that wish to authenticate with CAS must explicitly be defined in the services registry.
我刚开始看到这个提示,以为要将应用程序的地址在CAS上注册,这样CAS才会给你认证、提供服务。后来搜索了好久,没看到有人提起。基本都是说其实涉及到https/http认证的问题。因为据说从cas 4.*开始,CAS 就默认只支持https的方式。现在我们这个应用程序都是http的,所以CAS不认。
搜遍了古今中外,最后的解决方案是:
1、修改 \WEB-INF\classes\services\HTTPSandIMAPS-10000001.json
"serviceId" : "^(https|imaps)://.*" 改为==> "serviceId" : "^(https|http|imaps)://.*",
2、修改项目配置文件\WEB-INF\classes\application.properties
cas.tgc.secure=false cas.serviceRegistry.initFromJson=true #这一点真是太重要了!!!!!!!!
基本上,都没有人会提到最后一条:
cas.serviceRegistry.initFromJson=true,所以无论我怎么改HTTPSandIMAPS-10000001.json,都不起作用,永远都是出现红色的错误提示。后来在一个老外的回答里看到有这么一句,我心里知道,应该就是这个问题了。为什么这些答案会隐藏得这么深!
另外,我看到有人提到要修改
c:\tomcat\etc\cas\config\cas.properties,这是什么鬼?其实,就是有些人将上面第二个步骤的配置写在了这里而已。将配置统一写在application.properties不好吗,要分开多处。况且这个etc目录,是CAS运行的时候自动生成的,里面放了日志。它没有位于tomcat里,而是在tomcat所在的盘的根目录下。估计路径是可以改的,但统一写在application.properties比较好吧,CAS能读到的,一点问题没有。
至于这个提示
是去不掉的,除非支持https,或者干脆手动改这个页面。
相关文章推荐
- 如何解决IIS不支持Perl,出现“HTTP 错误403.1-禁止”问题
- 解决XP下iis服务运行asp提示“HTTP 错误 404 - 文件或目录未找到”
- oracle 11g 服务启动时提示1053错误,服务启动不了,重新配置监听解决问题
- 解决windows2003下iis服务运行asp提示“HTTP 错误 404 - 文件或目录未找到”
- CityEngine2012授权提示“试图执行不支持的操作”问题解决
- 无权查看网页 IIS 解决问题:HTTP 错误 401.1 - 未授权登录失败
- CAS 5.x搭建常见问题系列(1).未认证的授权服务
- 腾讯微博Oauth认证页面 提示服务请求参数错误 解决办法
- 解决 iOS 5.1.1 完美越狱后安装破解软件提示“认证失败,授权无效”的问题
- WCF调用时提示错误 "已尝试创建到达不支持 .Net 框架的服务的通道。可能遇到 HTTP 终结点"
- 问题解决_WCF_WCF 接收我服务的 HTTP 响应时发生错误
- (2010-07-16)关于Oracle中的sys用户认证的问题以及EM中老是提示sys用户密码错误和sys用户密码忘记等问题的解决
- 关于"Windows不能在本地计算机启动Apache2.......并参考特定服务错误代码1"问题解决
- “在系统启动时至少有一个服务或驱动程序产生错误”,终于解决这个其实很简单又很烦人的问题
- HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝的解决方法
- 实战解决IIS服务器的“HTTP 500 内部服务器错误”,装了Visual Studio 2005之后重装IIS的问题解决方法
- 解决 WIN2003+IIS6.0 : HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝
- 解决了Xorg的log提示错误的问题
- 服务器出现HTTP500错误解决方法(屏蔽友好错误页,显示真正错误提示)
- 让UpdatePanel支持上传文件:解决当页面显式设置document.domain时提示的500错误